From 852d25cd186ec0f39334858a852c5b16043b79f7 Mon Sep 17 00:00:00 2001 From: Vasiliy Stelmachenok Date: Fri, 5 Jul 2024 23:22:55 +0300 Subject: [PATCH] generic-system-acceleration: Rework mkinitcpio stuff --- docs/source/generic-system-acceleration.rst | 92 +++++++++++++-------- 1 file changed, 57 insertions(+), 35 deletions(-) diff --git a/docs/source/generic-system-acceleration.rst b/docs/source/generic-system-acceleration.rst index 1d29e81..f555bd6 100644 --- a/docs/source/generic-system-acceleration.rst +++ b/docs/source/generic-system-acceleration.rst @@ -525,44 +525,60 @@ ALSA - это тот самый звук (условно, на самом дел .. index:: startup-acceleration, networkmanager, service, .. _startup-acceleration: -=================================================================== -Ускорение загрузки системы (Отключение NetworkManager-wait-online) -=================================================================== +=========================== +Ускорение загрузки системы +=========================== + +.. index:: networkmanager, service, systemd +.. _disable_network_manager_wait: + +-------------------------------------- +Отключение NetworkManager-wait-online +-------------------------------------- В большинстве случаев для настройки интернет подключения вы, скорее всего, будете использовать NetworkManager, т.к. он является в этом -деле швейцарским ножом и поставляется по умолчанию. Однако, если вы -пропишите команду *systemd-analyze blame*, то узнаете, что он -задерживает загрузку системы примерно на ~4 секунды. Чтобы это -исправить выполните:: +деле швейцарским ножом и поставляется по умолчанию во многих средах +рабочего стола. Однако, если вы пропишите команду ``systemd-analyze +blame``, то узнаете, что он задерживает загрузку системы в среднем на +~4 секунды. Очевидно, это совсем не то, что нам хотелось бы видеть от +службы для управления интернет подключением. Так как данная служба +всего лишь занимается ожиданием установки соединения, то мы можем +просто отключить её (замаскировать). Чтобы это сделать выполните +команду:: sudo systemctl mask NetworkManager-wait-online.service .. index:: startup-acceleration, hdd, lz4, mkinitcpio -.. _speed-up-hdd-startup: - ------------------------------------------------------------------------- -Ускорение загрузки ядра на HDD накопителях (*Только для жестких дисков*) ------------------------------------------------------------------------- - -Убедитесь, что пакет `lz4 -`_ установлен:: - - sudo pacman -S lz4 +.. _speed-up-initramfs-unpack: + +------------------------------- +Ускорение распаковки initramfs +------------------------------- + +Как уже было сказано, initramfs - это начальное загрузочное окружение, +которое идет в дополнение к образу ядра Linux и должно содержать в +себе все необходимые ядру модули и утилиты для его правильной загрузки +(прежде всего необходимые для монтирования корневого раздела). Для +экономии места на загрузочном разделе данное окружение поставляется в +виде саморасжимаемого архива, который распаковывается на лету во время +загрузки системы. В Arch Linux программа для генерации initramfs - +mkinitcpio, по умолчанию сжимает их при помощи алгоритма zstd, который +имеет оптимальные показатели скорости сжатия и расжатия. При этом +понятно, что скорость сжатия initramfs не так важна, как скорость +расжатия - ведь она напрямую влияет на скорость загрузки системы. +Поэтому для ускорения данного процесса лучше всего использовать +алгоритм с самой быстрой скоростью расжатия - ``lz4``. + +Чтобы использовать ``lz4`` в качестве основного алгоритма сжатия для +initramfs нам следует отредактировать конфигурационный файл +``/etc/mkinitcpio.conf`` и добавить в него следующие строчки: -Отредактируйте файл::: - - sudo nano /etc/mkinitcpio.conf - -Теперь выполните следующие действия: - -- Добавьте *lz4 lz4_compress* в массив *MODULES* (ограничен скобками) -- Раскомментируйте или добавьте строку с надписью *COMPRESSION="lz4"* -- Добавьте строку если её нет - *COMPRESSION_OPTIONS="-9"* -- Добавите *shutdown* в массив *HOOKS* (ограничен скобками) +.. code-block:: shell + :caption: ``/etc/mkinitcpio.conf`` -Это ускорит загрузку системы на слабых жёстких дисках благодаря более -подходящему методу сжатия образов ядра. + COMPRESSION="lz4" + COMPRESSION_OPTIONS="-9" Не забываем обновить все образы initramfs после проделанных изменений:: @@ -576,24 +592,30 @@ ALSA - это тот самый звук (условно, на самом дел Ускорение загрузки системы c помощью systemd -------------------------------------------- -Есть ещё способ ускорить загрузку системы, используя систему инициализации systemd -Для этого нужно убрать ``base`` и ``udev`` из массива HOOKS, и заменить их -на ``systemd`` что бы он выглядел примерно так +Есть ещё способ ускорить загрузку системы, используя систему +инициализации systemd, указав её использование на самом раннем этапе +загрузки ядра внутри initramfs окружения. Для этого нужно убрать +``base`` и ``udev`` из массива ``HOOKS`` в файле +``/etc/mkinitcpio.conf``, и заменить их на ``systemd`` чтобы он +выглядел примерно так: .. code-block:: shell :caption: sudo nano /etc/mkinitcpio.conf - HOOKS=(systemd autodetect modconf block filesystems keyboard) + HOOKS=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck) +.. warning:: Для систем с зашифрованным корневым разделом к + представленному перечню хуков вам также следует добавить + ``sd-encrypt`` через пробел сразу после хука ``sd-vconsole``. -Это немного увеличит образ initramfs, но заметно может ускорить запуск системы. +Это немного увеличит образ initramfs, но заметно может ускорить запуск +системы на пару секунд. Не забываем обновить все образы initramfs после проделанных изменений:: sudo mkinitcpio -P - ====================== Твики драйверов Mesa ======================