Hi, habra people!
Along with the release of mkinitcpio 0.8.2, we added support for mounting / usr from early userspace, if / usr is located on a separate partition. Whoever shouted the loudest there “we want a feature, the essence is as follows ..”, well, now it is and it should be tested.
To make it work, you need two things:
')
1) Enable the shutdown hook in /etc/mkinitcpio.conf. It will copy the contents of the initramfs to / run / initramfs during the boot process and add a small script (SUDDENLY called shutdown). When turned off, initscripts will mount the API filesystems to / run / initramfs, switch to this new root and then unmount the real file systems.
At the time of writing, it all works as stupid as possible. Complex systems such as LVM do not understand, and encryption mappings do not close. Perhaps this will be added in the next release.
2) Add the fsck hook to /etc/mkinitcpio.conf. If / usr has a file system that is different from the root file system, you need to add it to autodetect. If you don’t add this hook, a lot of sad things can happen (and after that you will go crying that Archa is for the red-eyed people, and you need to throw Debian Stable urgently :) Perhaps in the next release, the hook will become smart enough to handle binaries from the root and / usr only.
This fsck hook is recommended for absolutely everyone, and not only for those who have a separate / usr. Running fsck in early userspace means that the disk can be checked before mounting - so you can repair it without rebooting.
When using systemd, everything should work the same way. The shutdown script is ignored, and the root will not be rechecked due to the presence of the signal file, which appeared in / run / initramfs.
(Responsible for the disgrace - Dave Reizner.)
Happy new updates, gentlemen!