Вопрос или проблема
Я пытаюсь минимизировать время загрузки как можно больше. В настоящее время я использую Void Linux с EFISTUB и dracut в качестве менеджера инициализации. Теперь я хочу использовать bootchart, чтобы проверить, где я могу улучшить, но не могу заставить его работать. Похоже, что в более старых версиях dracut можно было использовать
dracut -f -a bootchart
, чтобы включить пакет bootchart, и использовать rdinit=/sbin/bootchartd
, чтобы запустить его при загрузке, но в dracut, похоже, больше нет модуля bootchart.
Ответ или решение
Для того чтобы использовать Bootchart (или Bootchart2) на системе с Dracut и EFISTUB, вам нужно выполнить несколько шагов. Поскольку в более новых версиях Dracut модуль Bootchart больше не включён по умолчанию, вам нужно будет настроить его установку и инициализацию вручную. Вот пошаговая инструкция:
Шаг 1: Установка Bootchart
Сначала убедитесь, что у вас установлен пакет Bootchart. В большинстве дистрибутивов Linux его можно установить через менеджер пакетов. Например, в Void Linux вы можете использовать следующее:
xbps-install bootchart
Шаг 2: Настройка Dracut
Поскольку модуль Bootchart больше не включён в Dracut по умолчанию, вам нужно создать пользовательский модуль для Bootchart. Для этого выполните следующие действия:
-
Создайте каталог для пользовательских модулей Dracut (если его ещё нет):
mkdir -p /usr/lib/dracut/modules.d/90bootchart
-
Создайте файл
module-setup.sh
в этом каталоге:nano /usr/lib/dracut/modules.d/90bootchart/module-setup.sh
-
Вставьте следующий код в файл
module-setup.sh
:dracut_add_initqueue() { inst /usr/bin/bootchartd inst /usr/share/bootchart/bootchart.conf } dracut_add_setup() { modprobe bootchart || true }
-
Сделайте файл исполняемым:
chmod +x /usr/lib/dracut/modules.d/90bootchart/module-setup.sh
Шаг 3: Генерация нового initramfs
После создания модуля Bootchart вам нужно пересоздать образ initramfs с новыми параметрами:
dracut -f
Шаг 4: Настройка загрузки
Вам нужно будет передать параметр rdinit=/sbin/bootchartd
в параметры загрузки. Для этого отредактируйте ваш загрузчик, например, если вы используете rEFInd или другой загрузчик, добавьте этот параметр в строку, которая загружает ваше ядро. Например:
"Linux MyKernelOptions rdinit=/sbin/bootchartd"
Шаг 5: Перезагрузка и получение графика загрузки
Теперь, когда вы перезагрузите свою систему, Bootchart будет запущен. После завершения загрузки, график загрузки будет сохранен в /var/log/bootchart
. Чтобы просмотреть его, вы можете использовать Bootchart Viewer:
bootchart view /var/log/bootchart
Заключение
Теперь вы должны быть в состоянии успешно использовать Bootchart для анализа процесса загрузки в вашей системе с Dracut и EFISTUB. Это позволит вам увидеть, какие процессы занимают больше всего времени, и предоставит возможность оптимизировать загрузку системы и уменьшить время старта. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.