Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > Ядро 2.6.28 не видит initrd


Автор: JekaZZ 15.1.2009, 20:06
Сейчас установлено модульное ядро 2.6.14, sata модули грузятся с initrd.
Качаю новое ядро 2.6.28. 
Распаковываю, проверяю что в ядро включено ext3 и initramfs/initrd. Ни одной опции не меняю.
Собираю ядро: 
Код
make

Устанавливаю модули: 
Код
make modules_install

Делаю новую ветку /boot/initrd-tree-new, копирую с нее все из предыдущей /boot/initrd-tree, убираю ненужные модули.
Собитраю initrd
Код

mkinitrd -k 2.6.28 -r /dev/sda1 -f xfs -o /boot/initrd-2.6.28-new.gz -s /boot/initrd-tree-new


Копирую новое ядро в /boot/vmlinuz-2.6.28
В grub добавляю запись:

Код

title  2.6.28
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.28
        initrd /boot/initrd-2.6.28-new.gz


В итоге - ядро не монтирует initrd:

RAMDISK: Compressed image found at block 0
List of all partitions:
0b00     1048575 sr0 driver: sr
0000   78150744 sda driver: sd
  0001       1959898 sda1
  0002       987997 sda2
  0003                 1 sda3
  0005    75200233 sda5
No filesystem could mount root, tried: ext3 vfat msdos iso9660
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,1)


С дровами все в порядке, так как на монолитном новом ядре без initrd система грузится. Но мне нужен initrd. Потому что обязательно нужен bootsplash.
В чем дело? 
И можно ли сделать графическую загрузке без bootsplash и initrd? Мне нужно в загрузку вставить конкретную картинку и нужен progress.

Автор: nickless 16.1.2009, 19:24
Какой это дистр и какая там версия mkinitrd, у меня например там даже таких опций нет. Вот эта например:
Цитата(JekaZZ @  15.1.2009,  19:06 Найти цитируемый пост)
-f xfs
что делает?

Цитата(JekaZZ @  15.1.2009,  19:06 Найти цитируемый пост)
No filesystem could mount root, tried: ext3 vfat msdos iso9660

А какая там файловая система?

http://fbsplash.berlios.de или http://splashy.alioth.debian.org/wiki/ (вместо bootsplash) пробовал? Посмотри еще http://en.gentoo-wiki.com/wiki/Initramfs и http://en.gentoo-wiki.com/wiki/Fbsplash.

Цитата(JekaZZ @  15.1.2009,  19:06 Найти цитируемый пост)
Но мне нужен initrd. Потому что обязательно нужен bootsplash.

Вообще-то initrd там нужен только для того, чтобы сплэш появился сразу, а не после того как ядро примонтирует root и запустит пару демонов.

Автор: JekaZZ 30.1.2009, 15:39
наконец снова добрался до этой темы. и снова проблемы.

nickless, спасибо за ссылки. использую splashutils. Но и с ним непонятки.
Картинка при загрузке появляется, но потом затирается сообщениями консоли. Наверное нужно в загрузочные скрипты добавить обновление картинки. И мне нужен progress.
Читал http://en.gentoo-wiki.com/wiki/Fbsplash и так и не монял как это сделать. Оно все сделано для gentoo, а  у меня slaskware 12.1.
Почитал прилагающуюся доку, но тоже так и не понял что нужно для прогресса.
Подскажите, пожалуйста.

Автор: JekaZZ 30.1.2009, 18:04
Нашел http://mirror.hosting-concepts.com/pub/yoper/non-yoper/arts/gensplash.html использовать splashutils в Slackware.
Прежде всего надо было компилить с опциями -DCONFIG_DEPRECATED -DCONFIG_TTY. А потом использовать указанные в статье скрипты.
Но осталась проблема - текст поверх картинки все равно лезет. Немнго помогает вызов splash_util -cmd=repaint (то есть полная перерисовка, а не как в скрипте), но все равно видно появляющийся на вермя текст. Как от него избавиться??????

Автор: JekaZZ 30.1.2009, 20:34
Проблему решил так: перевел вывод init-а на вторую консоль.
grub.conf:
Код

.......
kernel  /boot/kernel-2.6.28.2 console=tty2
......



К стати, с bootsplash такие бубны не нужны были, все работало сразу.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)