Skip to content

Commit

Permalink
generic-system-acceleration: Rework mkinitcpio stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
ventureoo committed Jul 5, 2024
1 parent 6ccd257 commit 852d25c
Showing 1 changed file with 57 additions and 35 deletions.
92 changes: 57 additions & 35 deletions docs/source/generic-system-acceleration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
<https://archlinux.org/packages/core/x86_64/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 после проделанных
изменений::
Expand All @@ -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
======================
Expand Down

0 comments on commit 852d25c

Please sign in to comment.