Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   Запуск ASPLinux 12 с USB флешки (http://forum.oszone.net/showthread.php?t=100592)

kycb-kycb 13-02-2008 17:13 739480

Запуск ASPLinux 12 с USB флешки
 
Добрый вечер (утро, день, ночь :) )

Имею я одну проблему (точнее видимо она меня имеет). Не могу решить уже больше недели, пробовал гуглить, обращался в офф. форум ASPLinux - результат нулевой.
Имеется флешка 2 Gb, размечена на 2 раздела по 1 Gb. На второй раздел установлен дистрибутив ASPLinux 12, файловая система ext2.
Далее в той же системе, но установленной на винте, был создан образ initrd, и кинут в папку /boot на разделе флешки.

mkinitrd запускался с такими параметрами:

Код:

mkinitrd --with-usb --preload=ehci-hcd --preload=usb-storage --preload=scsi_mod --preload=sd_mod --fstab=/media/usb/etc/fstab /media/usb/boot/usbinitrd-`uname -r`.img `uname -r`
Запуск производится загрузчиком Grub. Вот фрагмент grub.conf:

Код:

root (hd0,1)
kernel /boot/vmlinuz-2.6.22.9-91.0.120asp root=/dev/sda2 ro rhgb
initrd /boot/usbinitrd-2.6.22.9-91.0.120asp.img

файл /etc/fstab:

Код:

/dev/sda2              /                      ext2    defaults        1 1
tmpfs                  /dev/shm                tmpfs  defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                  /sys                    sysfs  defaults        0 0
proc                    /proc                  proc    defaults        0 0

При загрузке /dev/sda обнаруживается, отображается информация о блоках, объёме устройства (2097 Мб кажется) и так же выводится строка

Код:

sda: sda1 sda2
или что-то вроде того. В общем факт тот, что флешка определяется корректно.
Далее я вижу следующую картину:

Код:

Creating root device.
Mounting root filesystem.
Setting up other filesystems.
Setting up new root fs
no fstab.sys, mounting internal defaults
Switching to new root and running init.
unmounting old /dev
unmounting old /proc
unmounting old /sys
/bin/sh: root=/dev/sda2: No such file or directory
Kernel panic - not syncing: Attempted to kill init!

При помощи cpio распаковал образ initrd, привожу содержимое файла init из этого образа:

Код:

#!/bin/nash

mount -t proc /proc /proc
setquiet
echo Mounting proc filesystem
echo Mounting sysfs filesystem
mount -t sysfs /sys /sys
echo Creating /dev
mount -o mode=0755 -t tmpfs /dev /dev
mkdir /dev/pts
mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts
mkdir /dev/shm
mkdir /dev/mapper
echo Creating initial device nodes
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
mknod /dev/systty c 4 0
mknod /dev/tty c 5 0
mknod /dev/console c 5 1
mknod /dev/ptmx c 5 2
mknod /dev/rtc c 10 135
mknod /dev/tty0 c 4 0
mknod /dev/tty1 c 4 1
mknod /dev/tty2 c 4 2
mknod /dev/tty3 c 4 3
mknod /dev/tty4 c 4 4
mknod /dev/tty5 c 4 5
mknod /dev/tty6 c 4 6
mknod /dev/tty7 c 4 7
mknod /dev/tty8 c 4 8
mknod /dev/tty9 c 4 9
mknod /dev/tty10 c 4 10
mknod /dev/tty11 c 4 11
mknod /dev/tty12 c 4 12
mknod /dev/ttyS0 c 4 64
mknod /dev/ttyS1 c 4 65
mknod /dev/ttyS2 c 4 66
mknod /dev/ttyS3 c 4 67
echo Setting up hotplug.
hotplug
echo Creating block device nodes.
mkblkdevs
echo "Loading ehci-hcd.ko module"
insmod /lib/ehci-hcd.ko
echo "Loading ohci-hcd.ko module"
insmod /lib/ohci-hcd.ko
echo "Loading uhci-hcd.ko module"
insmod /lib/uhci-hcd.ko
mount -t usbfs /proc/bus/usb /proc/bus/usb
echo "Loading scsi_mod.ko module"
insmod /lib/scsi_mod.ko
echo "Loading sd_mod.ko module"
insmod /lib/sd_mod.ko
echo "Loading usb-storage.ko module"
insmod /lib/usb-storage.ko
echo Waiting for driver initialization.
stabilized /proc/bus/usb/devices
echo "Loading mbcache.ko module"
insmod /lib/mbcache.ko
echo "Loading ext2.ko module"
insmod /lib/ext2.ko
echo "Loading libata.ko module"
insmod /lib/libata.ko
echo "Loading pata_amd.ko module"
insmod /lib/pata_amd.ko
echo Waiting for driver initialization.
stabilized --hash --interval 250 /proc/scsi/scsi
echo "Loading ata_generic.ko module"
insmod /lib/ata_generic.ko
echo "Loading sata_nv.ko module"
insmod /lib/sata_nv.ko
echo Waiting for driver initialization.
stabilized --hash --interval 250 /proc/scsi/scsi
insmod /lib/scsi_wait_scan.ko
rmmod scsi_wait_scan
mkblkdevs
echo Creating root device.
mkrootdev -t ext2 -o defaults,ro /dev/sda2
echo Mounting root filesystem.
mount /sysroot
echo Setting up other filesystems.
setuproot
echo Switching to new root and running init.
switchroot
echo Booting has failed.
sleep -1

пытался разобраться. Выходит, что всё до строки switchroot выполняется относительно нормально. В том числе и монтирование /dev/sda2. Однако после возникает проблема, уже явно не в initrd.
Знает кто-нибудь причину этого странного поведения и как можно исправить?

fossil 13-02-2008 20:25 739626

Ну начнем с того, что иметь такой fstab просто не серьездно. Так как более менее реальное использование данной флешки будет возможно только на одном компьютере. Потому что у вас используются лейблы устройств, а не конкретные имена устройств. Допустим что будет если на системе уже есть флешка или хард с лейблом sda2? Что тогда? Тогда нужно менять fstab?

Вообще на вашем месте я бы использовал squashfs как универсал. Прим. он используется в livecd дистрибутивах.
http://en.wikipedia.org/wiki/SquashFS

Да и кстати людей с похожей проблемой навалом.
http://forums.fedoraforum.org/forum/...nal+hard+drive
http://forums.fedoraforum.org/forum/...nal+hard+drive
http://www.linuxquestions.org/questi...a-help-493893/
http://lists.xensource.com/archives/.../msg00555.html
http://www.google.ru/search?q=no+fst...ient=firefox-a

kycb-kycb 13-02-2008 21:49 739693

Цитата:

Цитата fossil
Ну начнем с того, что иметь такой fstab просто не серьездно. Так как более менее реальное использование данной флешки будет возможно только на одном компьютере.»

Думаю вы просто не поняли проблемы. С этим инитрамдиском USB флешка всегда будет определяться ПЕРВОЙ, раньше всех HDD и CD приводов. Она в любом случае будет иметь имя /dev/sda.

Цитата:

Цитата fossil
Потому что у вас используются лейблы устройств, а не конкретные имена устройств. »

Как раз наоборот, у меня используются имена устройств, а не лейблы. Лейбл в файле fstab так и обозначается
Код:

LABEL=<имя_лейбла>
Цитата:

Цитата fossil
Вообще на вашем месте я бы использовал squashfs как универсал. »

На моём месте я бы использовал ASPLinux 12. Если бы я не хотел запустить с флешки именно этот дистрибутив, то не парил бы ни кому (и себе в первую очередь) мозги.

Если бы вы хоть немного внимания уделили нижней части моего поста, то увидели бы, что ядро не ругается на /dev/sda2. Уже позже ошибку выдаёт /bin/sh, а не ядро.


Время: 16:33.

Время: 16:33.
© OSzone.net 2001-