nvbn 27.03.2010 06:20
Archlinux — Оптимизация загрузки. Сравнение sysvinit, upstart и quick-init.
Система, на которой проводилось тестированиеЖелезо: c2d t5750 (2 ядра по 2ггц),2gb RAM, rhd 3470Ядро - 2.6.33 ZEN-1
DAEMONS=(!syslog-ng hal networkmanager kdm @crond @alsa @laptop-mode @acpi-support @bluetooth @gpm @distccd @mysqld @sensors)
sysvinitЭто init система установленная в arch по умолчанию.
Загрузка до kdm - 13 секунд
До рабочего состояния - 21 секунда
bootchart:
upstartПервоначально была разработана для дистрибутива Ubuntu, но затем стала использоваться и в других дистрибутивах Linux, например в Fedora как замена предыдущей системы.
Установка
Устанавливается из AUR, конфликтует с sysvinit:
1 |
|
Статистика
Загрузка до kdm - 12 секундДо рабочего состояния - 17 секунд
bootchart:
quick-initСпециально разработанный для arch набор init скриптов
Установка
Ставится поверх традиционного sysvinit из AUR:
1 |
|
После установки вставьте выведенный текст в /etc/qinit.sysinit после 28 строчки.
В кинфиге должно выглядеть приблизительно так:
############################### HARD DISK NODES ###############################
#past it here
/bin/mknod -m 660 /dev/sda1 b 8 1
/bin/mknod -m 660 /dev/sda2 b 8 2
/bin/mknod -m 660 /dev/sda3 b 8 3
/bin/mknod -m 660 /dev/sda4 b 8 4
#############
Статистика
Загрузка до kdm - 8 секундДо рабочего состояния - 13 секунд
bootchart:
ИтогиСамым быстрым и самым простым в установки из нестандартных оказался quick-init, никаких ошибок во время использования каждой из систем замечено не было. Лично я уже давно использую quick-init и вам советую.
Заработало. Загружается действительно намного быстрее!
Проблема была в следующем:
У меня два жесткий диска: один с виндой и NTFS (/dev/sda), а второй с любимым арчем (/dev/sdb). Я просто не стал копировать строчки с /dev/sda в /etc/qinit.sysinit и все отлично заработало.
Проблема была в следующем:
У меня два жесткий диска: один с виндой и NTFS (/dev/sda), а второй с любимым арчем (/dev/sdb). Я просто не стал копировать строчки с /dev/sda в /etc/qinit.sysinit и все отлично заработало.
те кторые стартуют в фоне, система продолжает загрузку не дожидаясь окончания их запуска.
С quick-init система запускается конечно быстрее (только загрузилось ядро и сразу появляется приглашение к вводу логина), но есть ряд проблем.
Во-первых, установка шрифта для консоли производится в бекграунде когда уже видно приглашение для ввода логина - как следствие экран моргает и все что было написано на экране до этого события - пропадает. Неудобно.
Во-вторых, консоль не локализуется и все, что должно выводиться кириллицей, выводится квадратиками. В /etc/qinit.sysinit огромный кусок кода, судя по всему отвечающий за локализацию, попросту заккоментирован. После его раскомментирования и правки, чтобы он ставил локаль ru.RU.UTF-8, а не en_US, проблема не исчезает - консоль по прежнему не хочет локализовываться.
В третьих, почему-то не стартует HAL, хотя код для его старта присутствует в /etc/qinit.multi.
В итоге, пока-что откатился обратно на простой sysinit - там таких проблем нет.
Во-первых, установка шрифта для консоли производится в бекграунде когда уже видно приглашение для ввода логина - как следствие экран моргает и все что было написано на экране до этого события - пропадает. Неудобно.
Во-вторых, консоль не локализуется и все, что должно выводиться кириллицей, выводится квадратиками. В /etc/qinit.sysinit огромный кусок кода, судя по всему отвечающий за локализацию, попросту заккоментирован. После его раскомментирования и правки, чтобы он ставил локаль ru.RU.UTF-8, а не en_US, проблема не исчезает - консоль по прежнему не хочет локализовываться.
В третьих, почему-то не стартует HAL, хотя код для его старта присутствует в /etc/qinit.multi.
В итоге, пока-что откатился обратно на простой sysinit - там таких проблем нет.
все что было написано на экране до этого события - пропадает
по-моему, дело не в шрифтах
консоль по прежнему не хочет локализовываться
так шрифты же. Наверняка просто шрифт в консоли не поддерживает кириллицу или не успевает подгрузиться.
Шрифт точно поддерживает киррилицу - с обычным sysinit все работает отлично.
Я ждал некоторое время, но все равно почему-то консоль не локализовывалась. =((
Я ждал некоторое время, но все равно почему-то консоль не локализовывалась. =((
Была такая же проблема, но удалось ее решить. Потребовалось раскомментировать секцию
if < -n "$CONSOLEFONT" >; then
stat_busy "Loading Console Font: $CONSOLEFONT"
#CONSOLEMAP in UTF-8 shouldn't be used
if < -n "$CONSOLEMAP" > && echo "$LOCALE" | /bin/grep -qi utf ; then
CONSOLEMAP=""
fi
for i in /dev/tty<0-9>*; do
if < -n "$CONSOLEMAP" >; then
/usr/bin/setfont -m $CONSOLEMAP $CONSOLEFONT -C ${i} >/dev/null 2>&1
else
/usr/bin/setfont $CONSOLEFONT -C ${i} >/dev/null 2>&1
fi
done
if < $? -ne 0 >; then
stat_fail
else
for i in /dev/tty<0-9>*; do
printf "\e(K" > ${i}
done
# the $CONSOLE check helps us avoid this when running scripts from cron
echo 'if < "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 >; then printf "\e(K"; fi' >>/etc/profile.d/locale.sh
stat_done
fi
fi
в /etc/qinit.sysinit. В качестве консольного в rc.conf у меня установлен:
CONSOLEFONT=ter-u16b
из пакета terminus-font
if < -n "$CONSOLEFONT" >; then
stat_busy "Loading Console Font: $CONSOLEFONT"
#CONSOLEMAP in UTF-8 shouldn't be used
if < -n "$CONSOLEMAP" > && echo "$LOCALE" | /bin/grep -qi utf ; then
CONSOLEMAP=""
fi
for i in /dev/tty<0-9>*; do
if < -n "$CONSOLEMAP" >; then
/usr/bin/setfont -m $CONSOLEMAP $CONSOLEFONT -C ${i} >/dev/null 2>&1
else
/usr/bin/setfont $CONSOLEFONT -C ${i} >/dev/null 2>&1
fi
done
if < $? -ne 0 >; then
stat_fail
else
for i in /dev/tty<0-9>*; do
printf "\e(K" > ${i}
done
# the $CONSOLE check helps us avoid this when running scripts from cron
echo 'if < "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 >; then printf "\e(K"; fi' >>/etc/profile.d/locale.sh
stat_done
fi
fi
в /etc/qinit.sysinit. В качестве консольного в rc.conf у меня установлен:
CONSOLEFONT=ter-u16b
из пакета terminus-font
Расскоментировал указанные строчки но проблему это не решило. При загрузке на экране видны строчки, свидетельствующие о загрузке соответствующих фонтов и раскладок.
Что самое интересно, если в грабе отключить загрузку с консолями с фреймбуфером и загружаться в обычной текстовой консоли, то после мигания экрана (когда появляется приглашение ввести login) фреймбуфер внезапно оказывается запущенным! Как такое возможно и кто может сделать это из юзерспейса??
Что самое интересно, если в грабе отключить загрузку с консолями с фреймбуфером и загружаться в обычной текстовой консоли, то после мигания экрана (когда появляется приглашение ввести login) фреймбуфер внезапно оказывается запущенным! Как такое возможно и кто может сделать это из юзерспейса??
Настроил KMS, установил slim - все проблемы исчезли. Чудеса, да и только...
Во-вторых, консоль не локализуется и все, что должно выводиться кириллицей, выводится квадратиками.
Угу, но выше есть решение.
почему-то не стартует HAL
У меня стартует, но хал подменён девайскитом.
экран моргает и все что было написано на экране до этого события - пропадает
Ничего такого не проявляется
С халом разобрался. Хал запускается из qinit.multi и его нужно удалить из секции DAEMONS в /etc/rc.conf. После перезагрузки с халом все будет в порядке.
Спасибо за новую информацию о quick init. Приду в понедельник на работу - буду колдовать :)
После установки quick init, у меня стало появляться сообщение
На форуме прочёл, если запускается HAL, то демона DBUS можно удалить из rc.conf
Так, что дополнение к статье.
Failed to start message bus: The pid file "/var/run/dbus.pid" exists, if the message bus is not running, remove this file
На форуме прочёл, если запускается HAL, то демона DBUS можно удалить из rc.conf
Так, что дополнение к статье.
мотивирует заняться прочищением моей бубунты, которая стартует за 1:19
вроде бы разработчики обещают в 10.04 запуск секунд за 10. У них какой-то бзик на этой почве :(
Пришлось загружаться в SingleMode. Я удалил quick-init и тут обнаружил, что "резервный" inittab.original оказался не моим, а стандартным ArchLinux'овым. Даже уровень запуска там стоял 3 (у меня стоит 5).
У меня есть подозрение, что сие произошло потому что моя корневая файловая система ext4. Не могли бы вы сказать, какого типа у вас корневая файловая система?