Как заставить работать bootchart (или bootchart2) на системе с dracut и efistub?

Вопрос или проблема

Я пытаюсь минимизировать время загрузки как можно больше. В настоящее время я использую 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. Для этого выполните следующие действия:

  1. Создайте каталог для пользовательских модулей Dracut (если его ещё нет):

    mkdir -p /usr/lib/dracut/modules.d/90bootchart
  2. Создайте файл module-setup.sh в этом каталоге:

    nano /usr/lib/dracut/modules.d/90bootchart/module-setup.sh
  3. Вставьте следующий код в файл module-setup.sh:

    dracut_add_initqueue() {
       inst /usr/bin/bootchartd
       inst /usr/share/bootchart/bootchart.conf
    }
    
    dracut_add_setup() {
       modprobe bootchart || true
    }
  4. Сделайте файл исполняемым:

    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. Это позволит вам увидеть, какие процессы занимают больше всего времени, и предоставит возможность оптимизировать загрузку системы и уменьшить время старта. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.

Оцените материал
Добавить комментарий

Капча загружается...