Improving performance/Boot process (Русский)

From ArchWiki
Jump to navigation Jump to search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Предисловие

Ускорение загрузки системы может быть обеспечено уменьшением время ожидания и изучением того как взаимодействуют некоторые системные файлы и скрипты. В этой статье сделана попытка описать способы уменьшения времени загрузки системы.

Изменение загрузочных файлов

/etc/inittab

Асинхронный запуск

Note: Использование этого способа не гарантирует, что все демоны будут запущены до Xorg. Это может вызвать проблемы, если какие-то программы требуют чтобы dbus был запущен (ck-launch-session, gnome, kde, и т.д.).

Скрипты-initscripts могут запускаться асинхронно вместо того чтобы запускаться строго по порядку.

# Используйте once вместо of 
rc::sysinit:/etc/rc.sysinit
rs:S1:once:/etc/rc.single
rm:2345:once:/etc/rc.multi
rh:06:once:/etc/rc.shutdown
su:S:once:/sbin/sulogin -p

Закомментируйте неиспользуемые терминалы

agetty - консольный теримнал, который вызывается Ctrl+Alt+F1-6.

#Закомментируйте неиспользуемые терминалы. Если требуется только два теримнала (tty1 и tty2 inittab будет выглядеть так:
c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux
c2:2345:respawn:/sbin/agetty -8 38400 tty2 linux
#c3:2345:respawn:/sbin/agetty -8 38400 tty3 linux
#c4:2345:respawn:/sbin/agetty -8 38400 tty4 linux
#c5:2345:respawn:/sbin/agetty -8 38400 tty5 linux
#c6:2345:respawn:/sbin/agetty -8 38400 tty6 linux

Кроме того, рекомендуется использовать более легкие терминалы, таких как Template:Package Official, (mingetty, которые лишёны printfs и скомпилированы с Template:Package Official).

# pacman -S fgetty

Измените слелующие строки в /etc/inittab для того, чтобы использовать fgetty:

c1:2345:respawn:/sbin/fgetty tty1 linux
c2:2345:respawn:/sbin/fgetty tty2 linux

/boot/grub/menu.lst

Удалите параметр разрешения vga= framebuffer и добавьте fastboot и quiet в параметры загрузки ядра:

kernel /vmlinuz26 root=/dev/disk/by-uuid/UUID ro fastboot quiet

/etc/mkinitcpio.conf

Удалите HOOKS, которые вам не нужны и рассмотрите возможность использования только base (иногда udev также необходим), а также необходимые MODULES для вашего корневого раздела (и клавиатуры, вместо USBInput).

Больше информации можно узнать в этой статье.

/etc/rc.conf

Уменьшить загрузку системы можно также с помощью отключения автозагрузки модулей.

MOD_AUTOLOAD="no"

и в ручную внесите необходимые вам модули в секцию HARDWARE в строку MODULES=().

В секции NETWORKING отключите все не используемые сетевые интерфейсы.

INTERFACES=(lo eth2 !eth0 !eth1 !eth3)

Ручная настройка параметров сети также может немного ускорить загрузку.

Найдите и удалите все неиспользуемые демоны:

DAEMONS=(alsa network gdm)

Затем переместите ваш Xdm в начало, а остальные демоны запускайте в фоновом режиме.

DAEMONS=(@gdm @alsa @network)

Также демоны необходимо распалагать в определённом порядке, т.к. часто они зависят друг от друга. Например демон hal зависит от dbus.

/lib/udev/load-modules.sh

В некоторых системы процесс загрузки udev занимает слишком много времени. Последние версии пакета Template:Package Official включают не только новые udev бинарники, но и оптимизированные скрипты. Template:Filename определяет логику занесения модулей в чёрный список. Этот скрипт хорошо написан, но этот скрипт запускается для каждого модуля, что замедляет процесс загрузки. В статье Speed Up udev более подробно описываются способы обхода этой проблемы.

/etc/rc.sysinit

Этот скрипт отвечает за большую часть вывода, который вы видите во время загрузки системы, т.е. это критический системный файл, который вызывает другие файлы, такие как rc.conf, и загружает модули, монтирует файловые системы, обрабатывает ошибки.

Некоторые строки в этом файле могут быть не нужны вам. Удалив или закомментировав их, вы можете выйграть несколько секунд при загрузке системы. Но учтите, что вы делаете это на свой страх и риск. Например, если у вас нет RAID, LVM или шифрования, то вы можете удалить сроки, отвечающие за это.

Вы тажке можете добавить амперсант (&) для параллельного запуска команд, но будьте осторожны, т.к. в последющих чатсях скрипта другие команды могут ожидать завершения предыдущих.

См. также

Systemd