Изначально это был перевод статьи из Арчевики, но позже я наткнулся на баг, не позволяющий разместить статью, поэтому перевод был опубликован в блоге. Он изменён. Размещение в Арчевики уже не имеет смысла, так как даже англоязычная версия там помечена как устаревшая, на сколько я понял, в связи с тем, что bootchart у арчеводов никто не поддерживает.
Откройте /boot/grub/menu.lst и скопируйте/вставьте запись. Добавьте "init=/sbin/bootchartd" в строку с ядром. Как правило запись будет выглядеть примерно так:
# (1) Arch Linux Bootchart
title Arch Linux
root (hd0,0)
kernel /vmlinuz26 root=/dev/disk/by-uuid/d531ff5b-de65-499a-9942-d18682375163 ro vga=37C init=/sbin/bootchartd
initrd /kernel26.img
Проделайте те же операции с /boot/grub/grub.cfg, приведя его примерно к такому виду:
# (0) Arch Linux
menuentry "Arch Linux" {
set root=(hd0,1)
linux /boot/vmlinuz26 root=/dev/sda1 ro
initrd /boot/kernel26.img
}
# (1) Arch Linux with Bootchart
menuentry "Arch Linux with Bootchart" {
set root=(hd0,1)
linux /boot/vmlinuz26 root=/dev/sda1 ro init=/sbin/bootchartd
initrd /boot/kernel26.img
}
Теперь вы можете перезагрузиться и выбрать новую опцию с Bootchart.
Этот метод опасен (вы можете получить не загружаемую систему) - его стоит использовать только если первый не подходит. При использовании такого подхода вы не только должны будете остановить bootchartd вручную после загрузки (или он заполнит всё пространство жёсткого диска), но ещё он будет запускаться каждый раз при загрузке. А также любые изменения в /etc/rc.sysinit будут сбрасываться каждый раз при обновлении пакета initscripts. Положительная сторона состоит в том, что bootchart будет отображать, что происходит после логина.
Теперь добавляем эту строку:
/sbin/bootchartd start
в /etc/rc.sysinit
Это делается примерно так: После строки
stat_busy "Configuring System Clock"
Написать эту:
/sbin/bootchartd start
Введите команду от пользователя root:
/sbin/bootchartd stop
Или с помощью sudo, если он настроен:
sudo /sbin/bootchartd stop
Generating a chart
Bootchart-render не может сгенерировать изображение и выдаёт сообщение вида:
/var/log/bootchart.tgz not found
Откройте /sbin/bootchartd (это простой скрипт) и добавьте в строку с dm свой вариант. К примеру, slim:
# The processes we have to wait for
local exit_proc="gdmgreeter gdm-binary kdm_greet kdm slim"
Bootchart-render не может сгенерировать изображение и выдаёт сообщение вида:
/usr/bin/bootchart-render: line 2: java: command not found
Установите community/jre и внесите /opt/jre/bin в список переменных PATH для пользователя от которого запускается bootchart-render.
В ~/.bash_profile это будет выглядеть примерно так:
PATH=$PATH:/usr/sbin:/sbin:$HOME/bin:/opt/java/jre/bin
- Введение
- Установка Bootchart
- Запуск Bootchart
- Настройка загрузчика
- Grub
- Grub 2
- Настройка rc.sysinit
- Редактирование /etc/rc.sysinit
- Остановка bootchartd после логина
- Генерация графика
- Решение проблем
- Пример графика загрузки
Введение
Bootchart это удобный инструмент используемый для профилирования результатов загрузки Linux, в основном используется при процессе ускорения загрузки. Он включает демон bootchartd и bootchart-render, который используется для генерирования графика с результатом.
Установка Bootchart
Установка bootchart производится с помощью пакетного менеджера. В Arch Linux пакет называется 'bootchart'.
pacman -S bootchart
Запуск Bootchart
Для использования bootchart вы можете воспользоваться одним из двух способов, как процессом init в вашем загрузчике или запустив его вручную из какого-либо скрипта инициализации (предпочтительно rc.sysinit). Но если вы запустите bootchartd вручную, то и останавливать его тоже нужно будет вручную. Будьте осторожны на этом шаге.
Настройка загрузчика
Главное - сделайте резервную копию загрузочной записи меню и добавьте в параметры загрузки 'init=/sbin/bootchartd'. Когда загрузчик запустится, bootchart остановится только при появлении приглашения входа.
Grub
Откройте /boot/grub/menu.lst и скопируйте/вставьте запись. Добавьте "init=/sbin/bootchartd" в строку с ядром. Как правило запись будет выглядеть примерно так:
# (1) Arch Linux Bootchart
title Arch Linux
root (hd0,0)
kernel /vmlinuz26 root=/dev/disk/by-uuid/d531ff5b-de65-499a-9942-d18682375163 ro vga=37C init=/sbin/bootchartd
initrd /kernel26.img
Grub 2
Проделайте те же операции с /boot/grub/grub.cfg, приведя его примерно к такому виду:
# (0) Arch Linux
menuentry "Arch Linux" {
set root=(hd0,1)
linux /boot/vmlinuz26 root=/dev/sda1 ro
initrd /boot/kernel26.img
}
# (1) Arch Linux with Bootchart
menuentry "Arch Linux with Bootchart" {
set root=(hd0,1)
linux /boot/vmlinuz26 root=/dev/sda1 ro init=/sbin/bootchartd
initrd /boot/kernel26.img
}
Теперь вы можете перезагрузиться и выбрать новую опцию с Bootchart.
Настройка rc.sysinit
Этот метод опасен (вы можете получить не загружаемую систему) - его стоит использовать только если первый не подходит. При использовании такого подхода вы не только должны будете остановить bootchartd вручную после загрузки (или он заполнит всё пространство жёсткого диска), но ещё он будет запускаться каждый раз при загрузке. А также любые изменения в /etc/rc.sysinit будут сбрасываться каждый раз при обновлении пакета initscripts. Положительная сторона состоит в том, что bootchart будет отображать, что происходит после логина.
Редактируем /etc/rc.sysinit
Теперь добавляем эту строку:
/sbin/bootchartd start
в /etc/rc.sysinit
Это делается примерно так: После строки
stat_busy "Configuring System Clock"
Написать эту:
/sbin/bootchartd start
Остановка bootchartd после логина
Введите команду от пользователя root:
/sbin/bootchartd stop
Или с помощью sudo, если он настроен:
sudo /sbin/bootchartd stop
Generating a chart
Генерация графика
Для генерации графика загрузки запустите в каталоге, котором есть право на запись:
bootchart-render
Будет сгенерировано изображение с графиком 'bootchart.png'. Для этого нужно иметь Java runtime (jre) в установленном виде.
bootchart-render
Будет сгенерировано изображение с графиком 'bootchart.png'. Для этого нужно иметь Java runtime (jre) в установленном виде.
Решение проблем.
Bootchart-render не может сгенерировать изображение и выдаёт сообщение вида:
/var/log/bootchart.tgz not found
Откройте /sbin/bootchartd (это простой скрипт) и добавьте в строку с dm свой вариант. К примеру, slim:
# The processes we have to wait for
local exit_proc="gdmgreeter gdm-binary kdm_greet kdm slim"
Bootchart-render не может сгенерировать изображение и выдаёт сообщение вида:
/usr/bin/bootchart-render: line 2: java: command not found
Установите community/jre и внесите /opt/jre/bin в список переменных PATH для пользователя от которого запускается bootchart-render.
В ~/.bash_profile это будет выглядеть примерно так:
PATH=$PATH:/usr/sbin:/sbin:$HOME/bin:/opt/java/jre/bin
Комментариев нет:
Отправить комментарий