Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

initrd von cdrom als loader f. usb-stick

2 views
Skip to first unread message

Raimund Huemmer

unread,
Feb 22, 2006, 6:15:44 PM2/22/06
to
Ich habe auf einem USB-Stick Debian mit Kernel 2.6.8.2
installiert. Nun möchte ich dieses System nutzen, kann es
aber mangels Hardware mit entsprechender BIOS-Unterstützung
nirgends direkt booten. Deshalb möchte ich mit einer CDROM
booten, eine initrd starten und da aus ins System auf
dem USB-Stick zu gelangen.

Es gibt zwar Massen von HOWTOS die z.B. Knoppix u.a. Live-Systeme auf
USB-Stick beschreiben, aber alle gehen davon aus, dass man "direkt"
bootet. Irgendwie komme ich mit der Realisierung meines Vorhabens
nicht weiter:

Bis jetzt habe ich folgendes beisammen:

raimund@scylla:> ls -l myisolinux/isolinux/
total 4076
-rw-rw-rw- 1 root wheel 2048 Dec 24 03:16 boot.cat
-rw-rw-rw- 1 root wheel 842 Mar 5 2005 f1.txt
-rw-rw-rw- 1 root wheel 3016584 Dec 24 03:16 initrd.gz
-r--r--r-- 1 root wheel 9396 Feb 21 23:33 isolinux.bin
-rw-rw-rw- 1 raimund wheel 276 Feb 21 23:24 isolinux.cfg
-rw-rw-rw- 1 root wheel 67 Mar 5 2005 isolinux.txt
-rw-rw-rw- 1 root wheel 9519 Mar 5 2005 splash.rle
-rw-rw-rw- 1 root wheel 1096740 Dec 24 03:16 vmlinuz

Damit kann ich grundsätzlich mit

$> mkisofs -o output.iso -r -b
isolinux/isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4
-boot-info-table myisolinux

eine bootbare CD basteln. Was ich nicht auf die Reihe bringe, ist das
rechtzeitige Einbinden der USB-Module und das Mounten des root-filesystems
(/dev/sda1) des USB-Sticks.

Kann mir jemand ein Beispiel geben, wie isolinux.cfg und /linuxrc in
der initrd genau auszuschauen hat?

Danke im Voraus.

Gruss
Raimund

--
Life's too short to read boring signatures


Matthias Merz

unread,
Mar 8, 2006, 7:20:31 AM3/8/06
to
Hallo,

Raimund Huemmer schrieb:


> Ich habe auf einem USB-Stick Debian mit Kernel 2.6.8.2
> installiert. Nun möchte ich dieses System nutzen, kann es
> aber mangels Hardware mit entsprechender BIOS-Unterstützung
> nirgends direkt booten. Deshalb möchte ich mit einer CDROM
> booten, eine initrd starten und da aus ins System auf
> dem USB-Stick zu gelangen.

OK, sowas habe ich mal für eine Sun gebastelt (also Debian auf
SPARC-Hardware), da deren OpenFirmware auch nicht von USB booten kann.
Nach einigem Rumprobieren hatte ich das System dann tatsächlich soweit.
Für Details müsste ich aber nachsehen, das könnte ein paar Tage dauern,
bis ich wieder an die Maschine rankomme.

> Bis jetzt habe ich folgendes beisammen: [...]


> eine bootbare CD basteln. Was ich nicht auf die Reihe bringe, ist das
> rechtzeitige Einbinden der USB-Module und das Mounten des root-filesystems
> (/dev/sda1) des USB-Sticks.
>
> Kann mir jemand ein Beispiel geben, wie isolinux.cfg und /linuxrc in
> der initrd genau auszuschauen hat?

Hmm, bei meinen Versuchen hatte ich das mit "linuxrc" aufgegeben; dafür
war ich irgendwie auch zu doof. Auf Hinweis eines Bekannten habe ich in
der initrd einfach ein Skript /sbin/init angelegt und darin die nötigen
Dinge erledigt - Nach Stunden erfolgloser Versuche mit linuxrc lief es
damit innerhalb kurzer Zeit.

So grob skizziert müsste folgendes in das Skript:

# modprobe ist in der "vorhandenen" initrd nicht drin,
# insmod tut's aber auch
insmod <USB-Modul1>
insmod <...>
# u.a. auch usb-storage etc.

# USB braucht zum Probing etc. 'ne Weile, also geben
# wir dem Kernel Zeit; sonst kriegt der nur 'ne panic()
sleep 5

mount /dev/sda1 /newroot

# so, das hier weiß ich auch nimmer genau,
# aber grob könnte es noch ungefähr hinkommen:
cd newroot
pivot_root . oldroot
exec chroot . command


Bei der letzten Zeile bin ich mir sehr sicher, dass ich da auch noch
ordentlich dran rumgebastelt hatte; das dürfte so evtl. noch nicht
gehen. Trotzdem konnte ich evtl. ja weiterhelfen. -> Bei Problemen kann
ich auch nochmal nachschauen, wie ich das genau gemacht hatte.

HTH
Gruß
Matthias Merz

OK, zugegeben, die Sig hab ich per Hand rausgesucht, aber da ich an dem
Problem selbst tagelang gebastelt hatte, darf ich das ;-)
--
Problemlösungen:
Du kannst es einrichten, aber Windows kann es nicht ausführen.
Linux kann es ausführen, aber du kannst es nicht einrichten.


0 new messages