LINUX.ORG.RU

/dev/sr0 not exist при загрузке Debian

 ,


0

1

В общем, пишу уже от некоего отчаяния - потому что до Нового года собирал по приводимому ниже шаблону систему и все прекрасно работало. Причем не менял ничего - даже .iso Дебиана использовал тот же - только сейчас все падает на этапе загрузки.

Создаю на виртуалке свеженькую систему Debian, все там устанавливаю и настраиваю что нужно. Затем вырубаю (комментариями) монтирование кФС в /etc/fstab и дописываю туда:

none / tmpfs defaults 0 0
Дальше, собираю свой initramfs, закомментируя в /usr/share/initramfs-tools/scripts/local строки:
# checkfs ${ROOT} root
# mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} ${rootmnt}
а, затем, добавляя подмонтирование моей кФС из .tar.gz:
mkdir /ramboottmp
mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} /ramboottmp
mount -t tmpfs -o size=100% none ${rootmnt}
cd ${rootmnt}
tar -zxf /ramboottmp/ram.tar.gz
umount /ramboottmp
, где файл ram.tar.gz создается командой
busybox tar -czf /кудахотимсохранить/ram.tar.gz *
, выполняемой из корня собранной и настроенной целевой системы Debian (снаружи, разумеется, путем подмонтирования диска виртуалки в loop режиме). По сути, ram.tar.gz это и есть нужная кФС, которую при загрузке нужно развернуть в оперативную память.

Дальше создаю свой initramfs:

/sbin/mkinitramfs -o /initrd-ram.img
, и сохраняю его.

Дальше в директорию кладу: ram.tar.gz и isolinux (всю директорию), а в директорию isolinux кладу ядро и свой initrd-ram.img.

В isolinux.cfg вношу:

DEFAULT MyLive
LABEL MyLive
linux /isolinux/ЯДРО
APPEND initrd=/isolinux/initrd-ram.img root=/dev/sr0 rw

Собираю диск командой:

genisoimage -o disk.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R /ПУТЬ-К-ДИРЕКТОРИИ-ГДЕ-ВСЕ-ЛЕЖИТ

Повторюсь, до НГ собирал по этой схеме не один раз и все прекрасно работало. Сейчас же в процессе загрузки выдает

ALERT! /dev/sr0 does not exist. Dropping to a shell!

Очевидно, что система не находит мое устройство, содержащее кФС (параметр root= из isolinux.cfg).

Более того, выдача lsmod показывает, что вообще ни один модуль не загружен, а выдача ls /dev, действительно, не содержит ни sr0 ни чего либо аналогичного (ничего похожего на диски в принципе).

Попытка подгрузить модули привода командами

insmod sr_mod
insmod cdrom
insmod scsi_mod
ничего тоже не дает - просто проглатывается консолью без выдачи ошибки, но выдача lsmod по прежнему пуста.

И, главное, - ведь грузиться то все начало в любом случае с CD-привода!!! Так как он перестает быть виден на каком то участке загрузки, если он (CD-привод) был успешно подтянут ранее, с него запустился isolinux и ядро! КАК?!?

Реально опускаются руки - один и тот же путь приходится проходить по несколько раз и каждый раз какая то новая хрень. Причем даже намека нет на мысль куда смотреть...

То, что с диска прочитался загрузчик и прочитал ядро и то, что уже запущеное ядро этот диск увидит - не особо связанные вещи. Ядро работает через свой драйвер, а загрузчик не знаю через что (может через биос), но точно не через ядерный драйвер (ведь ядра ещё нет).

firkax ★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.