Ускорение загрузки системы#

Ускорение распаковки initramfs#

Как уже было сказано, initramfs - это начальное загрузочное окружение, которое идет в дополнение к образу ядра Linux и должно содержать в себе все необходимые ядру модули и утилиты для его правильной загрузки (прежде всего необходимые для монтирования корневого раздела). Для экономии места на загрузочном разделе данное окружение поставляется в виде саморасжимаемого архива, который распаковывается на лету во время загрузки системы. В Arch Linux программа для генерации initramfs - mkinitcpio, по умолчанию сжимает их при помощи алгоритма zstd, который имеет оптимальные показатели скорости сжатия и расжатия. При этом понятно, что скорость сжатия initramfs не так важна, как скорость расжатия - ведь она напрямую влияет на скорость загрузки системы. Поэтому для ускорения данного процесса лучше всего использовать алгоритм с самой быстрой скоростью расжатия - lz4.

Чтобы использовать lz4 в качестве основного алгоритма сжатия для initramfs, нам следует отредактировать конфигурационный файл /etc/mkinitcpio.conf и добавить в него следующие строчки:

/etc/mkinitcpio.conf#
 COMPRESSION="lz4"
 COMPRESSION_OPTIONS=(-9)

Не забываем обновить все образы initramfs после проделанных изменений:

sudo mkinitcpio -P

Ускорение загрузки системы c помощью systemd#

Есть ещё способ ускорить загрузку системы, используя систему инициализации systemd, указав её использование на самом раннем этапе загрузки ядра внутри initramfs окружения. Для этого нужно убрать base и udev из массива HOOKS в файле /etc/mkinitcpio.conf, и заменить их на systemd чтобы он выглядел примерно так:

sudo nano /etc/mkinitcpio.conf#
 HOOKS=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck)

Предупреждение

Для систем с зашифрованным корневым разделом к представленному перечню хуков вам также следует добавить sd-encrypt через пробел сразу после хука sd-vconsole.

Это немного увеличит образ initramfs, но заметно может ускорить запуск системы на пару секунд.

Не забываем обновить все образы initramfs после проделанных изменений:

sudo mkinitcpio -P