This is specifically written for Arch Linux users, even so many of those methods can be applied to other distributions as well, because they are using the same packages. Little changes might be needed depending on the configuration of those packages.
force preboot environment
In order to get into the base hook of
mkinitcpio even so nothing is broken
can be specified as kernel parameter. It is called
APPEND ... break=premount when using syslinux as boot manager.
manually booting from the preboot environment
In order to boot manually
mount /dev/md1 /new_root/
exec /usr/bin/switch_root /new_root /sbin/init
exec will effectivly replace the current process (which is 1) with the new process, which is
switch_root in the first place, but which also uses exec to execute its second parameter, so that finally
/sbin/init gets executed as process 1. With
/sbin/init being part of
systemd it would have leat to the error
trying to run as user instance but the system has not been booted with systemd in case it gets executed with a PID other than 1.
mkinitcpio’s systemd hook
In order to use encrypted file systems together with the new
systemd hook one needs another hook, which depends on it and which is called
sd-encrypt. It might get in your way, that because systemd now manages the order in which devices get initialized, that device mapping from
/etc/crypttab do not fit any longer. It is therefore advised to use
/dev/disk/by-label/usb-key like paths even in