Improve Boot Performance (Русский)
Contents |
Предисловие
Ускорение загрузки системы может быть обеспечено уменьшением время ожидания и изучением того как взаимодействуют некоторые системные файлы и скрипты. В этой статье сделана попытка описать способы уменьшения времени загрузки системы.
Изменение загрузочных файлов
/etc/inittab
Асинхронный запуск
init-скрипты могут запускаться асинхронно вместо того чтобы запускаться строго по порядку.
# Используйте 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
Кроме того, рекомендуется использовать более легкие терминалы, таких как fgetty, (mingetty, которые лишёны printfs и скомпилированы с dietlibc).
# pacman -S fgetty
Измените слелующие строки в /etc/inittab для того, чтобы использовать fgetty:
c1:2345:respawn:/sbin/fgetty tty1 linux c2:2345:respawn:/sbin/fgetty tty2 linux
Удалите параметр разрешения 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.
/etc/rc.sysinit
Этот скрипт отвечает за большую часть вывода, который вы видите во время загрузки системы, т.е. это критический системный файл, который вызывает другие файлы, такие как rc.conf, и загружает модули, монтирует файловые системы, обрабатывает ошибки.
Некоторые строки в этом файле могут быть не нужны вам. Удалив или закомментировав их, вы можете выйграть несколько секунд при загрузке системы. Но учтите, что вы делаете это на свой страх и риск. Например, если у вас нет RAID, LVM или шифрования, то вы можете удалить сроки, отвечающие за это.
Вы тажке можете добавить амперсант (&) для параллельного запуска команд, но будьте осторожны, т.к. в последющих чатсях скрипта другие команды могут ожидать завершения предыдущих.