boot.rst 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. .. ARU (c) 2018 - 2025, Pavel Priluckiy, Vasiliy Stelmachenok and contributors
  2. ARU is licensed under a
  3. Creative Commons Attribution-ShareAlike 4.0 International License.
  4. You should have received a copy of the license along with this
  5. work. If not, see <https://creativecommons.org/licenses/by-sa/4.0/>.
  6. .. _boot:
  7. ***************************
  8. Ускорение загрузки системы
  9. ***************************
  10. .. index:: startup-acceleration, hdd, lz4, mkinitcpio
  11. .. _speed-up-initramfs-unpack:
  12. -------------------------------
  13. Ускорение распаковки initramfs
  14. -------------------------------
  15. Как уже было сказано, initramfs - это начальное загрузочное окружение,
  16. которое идет в дополнение к образу ядра Linux и должно содержать в
  17. себе все необходимые ядру модули и утилиты для его правильной загрузки
  18. (прежде всего необходимые для монтирования корневого раздела). Для
  19. экономии места на загрузочном разделе данное окружение поставляется в
  20. виде саморасжимаемого архива, который распаковывается на лету во время
  21. загрузки системы. В Arch Linux программа для генерации initramfs -
  22. mkinitcpio, по умолчанию сжимает их при помощи алгоритма zstd, который
  23. имеет оптимальные показатели скорости сжатия и расжатия. При этом
  24. понятно, что скорость сжатия initramfs не так важна, как скорость
  25. расжатия - ведь она напрямую влияет на скорость загрузки системы.
  26. Поэтому для ускорения данного процесса лучше всего использовать
  27. алгоритм с самой быстрой скоростью расжатия - ``lz4``.
  28. Чтобы использовать ``lz4`` в качестве основного алгоритма сжатия для
  29. initramfs, нам следует отредактировать конфигурационный файл
  30. ``/etc/mkinitcpio.conf`` и добавить в него следующие строчки:
  31. .. code-block:: shell
  32. :caption: ``/etc/mkinitcpio.conf``
  33. COMPRESSION="lz4"
  34. COMPRESSION_OPTIONS=(-9)
  35. Не забываем обновить все образы initramfs после проделанных
  36. изменений::
  37. sudo mkinitcpio -P
  38. .. index:: startup-acceleration, hdd, ssd, systemd, mkinitcpio
  39. .. _speed-up-systemd-startup:
  40. --------------------------------------------
  41. Ускорение загрузки системы c помощью systemd
  42. --------------------------------------------
  43. Есть ещё способ ускорить загрузку системы, используя систему
  44. инициализации systemd, указав её использование на самом раннем этапе
  45. загрузки ядра внутри initramfs окружения. Для этого нужно убрать
  46. ``base`` и ``udev`` из массива ``HOOKS`` в файле
  47. ``/etc/mkinitcpio.conf``, и заменить их на ``systemd`` чтобы он
  48. выглядел примерно так:
  49. .. code-block:: shell
  50. :caption: sudo nano /etc/mkinitcpio.conf
  51. HOOKS=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck)
  52. .. warning:: Для систем с зашифрованным корневым разделом к
  53. представленному перечню хуков вам также следует добавить
  54. ``sd-encrypt`` через пробел сразу после хука ``sd-vconsole``.
  55. Это немного увеличит образ initramfs, но заметно может ускорить запуск
  56. системы на пару секунд.
  57. Не забываем обновить все образы initramfs после проделанных
  58. изменений::
  59. sudo mkinitcpio -P
  60. .. vim:set textwidth=70: