Привет, потсоны!
Вместе с релизом mkinitcpio 0.8.2 добавили поддержку монтирования /usr из early userspace, в случае если /usr расположено на отдельном разделе. Кто там кричал «хотим фичу, суть такова..», ну вот, теперь она есть и ее надо тестировать.
Чтобы заработало, нужно две вещи:
1) Включить хук shutdown в /etc/mkinitcpio.conf. Он скопирует содержимое initramfs в /run/initramfs в ходе начальной загрузки и добавит небольшой скрипт (ВНЕЗАПНО называющийся shutdown). При выключении, initscripts смонтирует API filesystems в /run/initramfs, переключится на этот новый корень и затем подряд отмонтирует реальные файловые системы.
На момент написания, всё это работает максимально тупо. Не разбираются сложные системы, такие как LVM, и не закрываются шифровальные маппинги. Возможно, это добавится в следующем релизе.
2) Добавить хук fsck в /etc/mkinitcpio.conf. В случае если /usr имеет файловую систему, отличающуюся от файловой системы корня, нужно добавлять его до autodetect. Если вы не добавите этот хук, может случится много грустных вещей (и после этого вы пойдете ныть в толксы что Арча — для красноглазой школоты, и нужно валить на какое-нибудь отродье мамонта типа Debian Stable :). Быть может, в следующем релизе хук станет достаточно умным, чтобы обрабатывать бинарники только из корня и /usr.
Этот хук fsck рекомендуется абсолютно всем, а не только тем, у кого отдельный /usr. Запуск fsck в early userspace означает, что диск может быть проверен до монтирования — поэтому чинить можно без перезагрузки.
При использовании systemd всё должно работать точно так же. Скрипт shutdown игнорируется, а корень не будет перепроверяться из-за наличия сигнального файла, появившегося в /run/initramfs.
(Ответственный за безобразие — Дейв Рейзнер.)
Happy new updates, gentlemen!