LINUX.ORG.RU
ФорумAdmin

Настройка initrd


0

0

Юзаю дистрибутив Debian Lenny.

Как создать образ initrd вроде знаю, используется команда

update-initramfs -c -k <файл ядра>
Я так понимаю при этом архивируется каталог /usr/share/initramfs-tools и этот архив и становится initrd-образом. Но как настраивается этот каталог, есть ли какие-то инструменты? А то вот хочу сделать так, чтобы демон ALSA не запускался на этапе initrd, что-то мне сдаётся что именно из-за этого ALSA не работает. И чтобы на этапе initrd видеорежим не менялся с 1 обратно на 0.

★★★★★

initramfs не_может запустить демон потому что нет супервизора init.

system-root ★★★★★
()

system-root писал

initramfs не_может запустить демон потому что нет супервизора init

Как раз init в каталоге /usr/share/initramfs-tools присутствует.

sunny1983 ★★★★★
() автор топика

>Я так понимаю при этом архивируется каталог /usr/share/initramfs-tools

Нет. Этот каталог содержит _возможные_ компоненты создаваемого initrd. Т.е. если у тебя нет шифрованных дисков, то /usr/share/initramfs-tools/scripts/local-top/cryptroot в initrd включаться не будет.

$ file $(which update-initramfs )
/usr/sbin/update-initramfs: POSIX shell script text executable

;)

А то вот хочу сделать так, чтобы демон ALSA не запускался на этапе initrd


Что в твоём понимании есть «демон ALSA»? Звуковая система ALSA работает в ядре. В init скриптах только загрузка/восстановление параметров конфигурации alsa.

Отключить модули можно через директиву blacklist в /etc/modprobe.d/*.conf

ЗЫ. Для лучшего понимания, распакуй Initrd и исследуй сколько влезет :)

mkdir /tmp/understanding_initrd && cd /tmp/understanding_initrd && cat /boot/initrd.img-$(uname -r) | gunzip | cpio -i --make-directories

router ★★★★★
()
Ответ на: комментарий от router

>что-то мне сдаётся что именно из-за этого ALSA не работает.

sudo alsaconf

пробовал?

router ★★★★★
()

Для лучшего понимания, распакуй Initrd и исследуй сколько влезет :)

mkdir /tmp/understanding_initrd && cd /tmp/understanding_initrd && cat /boot/initrd.img-$(uname -r) | gunzip | cpio -i --make-directories

Ну как распаковать его это понятно, но интересует больше как он запаковывается. Что можно в нём изменить и какие существуют инструменты для этого изменения?

Если вы мне подскажете как вывести на экран полный лог загрузки, я смогу предоставить сюда все сообщения выводимые на экран этапе initrd и сказать что именно мне в этих сообщениях не нравится и что я хочу изменить.

sunny1983 ★★★★★
() автор топика

router, dmesg выводит только лог загрузки ядра, а интересует то что происходит после: initrd, инициализационные скрипты

Booster, вы хотите сказать что руководство для Gentoo подойдёт и для Debian?

sunny1983 ★★★★★
() автор топика
Ответ на: комментарий от sunny1983

>router, dmesg выводит только лог загрузки ядра, а интересует то что происходит после: initrd, инициализационные скрипты

Там не только загрузка а вообще все логи от ядра. От других источников есть в /var/log/syslog. Если ты ищешь сообщения типа 'Starting MTA: exim4', то они в syslog не попадают, т.к. выводятся непосредственно на консоль.

Ну как распаковать его это понятно, но интересует больше как он запаковывается


Это понять немудрено ;)

$ file $(which update-initramfs )

/usr/sbin/update-initramfs: POSIX shell script text executable



update-initramfs при необходимости создаёт резервную копию(man 5 update-initramfs.conf) и вызывает mkinitramfs

* mkinitramfs последовательно запускает скрипты:
/usr/share/initramfs-tools/scripts/functions
/usr/share/initramfs-tools/hook-functions
/usr/share/initramfs-tools/conf.d/
/usr/share/initramfs-tools/conf-hooks.d/

*Убеждается, что мы используем достаточно новое ядро
* определяет способ сжатия ramdisk'а
* определяет необходимые модули ядра
* создаёт структуру каталогов будущего ramdisk'а
* копирует модули
* копирует необходимые скрипты
* разное
* запаковывает ядро

router ★★★★★
()
Ответ на: комментарий от router

Это краткое изложение скриптов. Мог бы и сам прочитать ;)

Определяйся, что именно ты хочешь изменить и смотри в скрипте /usr/sbin/mkinitrd, как именно это следует делать.

router ★★★★★
()
Ответ на: комментарий от router

Как уже было сказно, для исследования созданного ramdisk его нужно распаковать. Дальше смотри, что прописано в скрипте по имени init

router ★★★★★
()

router, огромное спасибо за информацю! Вечером буду исследовать (сейчас ничего не могу сказать, на работе под виндой сижу). Скорее всего вопросы ещё будут и скорее всего буду пытаться отключать некоторые хуки. Кстати наткнулся тут на статью Оптимизация initramfs в Debian. Автор статьи утверждает, что единственный легальный способ отключения хуков - это удаление пакетов, содержащих ненужные хуки. Вы тоже так считаете или есть другие способы?

А вопрос о логировании загрузки я решил вывести в отдельную тему: http://www.linux.org.ru/forum/admin/5339331

sunny1983 ★★★★★
() автор топика
Ответ на: комментарий от sunny1983

Можно написать патч к mkinitrd, который добавляет в конфиг возможность отключать некоторые хуки (перечисленные в параметре, все и т.д.), связаться с мейнтейнером и попросить включить этот патч в пакет. Вполне легальный способ :)

router ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.