p0s-mk
Goto Top

Initrd bearbeiten und neu erstellen

Hallo zusammen,

ich stehe vor einem Problem bei dem ihr mir sicherlich helfen könnt. Ziel ist es, eine Backup-DVD (IsoLinux mit PartImage) für meine Zwecke umzuschreiben.
Jetzt hänge ich bei dem Problem, das beim booten folgende Meldung kommt:
VFS: Cannot open root device "<NULL>"

Gemacht habe ich bisher folgendes um die initrd zu bearbeiten und neu zu erstellen

-von CD gebootet bis zum Backup-Menü
-neue Konsole geöffnet (Alt-F2)
-nacheinander folgenden Befehle eingegeben
mount -t iso9660 /dev/cdrom  /mnt/cdrom
mount /dev/sda1  /mnt/usb
cp /mnt/cdrom/boot/loader/initrd  /mnt/usb
mv initrd initrd.gz
gzip -d initrd.gz
mount -o loop initrd /mnt/usb/initrd
An dieser Stelle konnte ich dann die Scripts die normalerweise beim booten erscheinen modifizieren. Für den ersten Test habe ich die Menüpunkte im Script nur umbenannt und keine Änderungen am eigentlichen Code vorgenommen.

Um nun die modifizierte initrd zu erstellen ging es wie folgt weiter:
dd  if=/dev/zero  of=newinitrd  bs=1K  count=64536      (count = ramdisk_size aus der isolinux.cfg???)
losetup  /dev/loop1  newinitrd
mke2fs  /dev/loop1
mount /dev/loop1  /mnt/newinitrd
cp -r /mnt/usb/initrd  /mnt/newinitrd
umount /mnt/newinitrd
losetup -d /dev/loop1
gzip newinitrd
mv newinitrd.gz  initrd
Anschließend habe ich die alte initrd durch die neu erstellte im Iso ausgetauscht und das Image wieder gebrannt. Nun hängt der Bootvorgang mit der Meldung "VFS: Cannot open root device "<NULL>"

6887e33e399cbe5d86d9977ba251909f

Da ich eher ein Linux Newbie bin, musste ich mir den Code aus dem inet suchen.

Hat jemand eine Idee was ich anders machen muss/kann??

Content-Key: 159587

Url: https://administrator.de/contentid/159587

Printed on: April 16, 2024 at 23:04 o'clock

Mitglied: 68162
68162 Jan 27, 2011 at 14:45:19 (UTC)
Goto Top
Was mich wundert: ist die INITRD nicht schon seit etlichen Kernelversionen ein CPIO-Archiv? Was spezielles wird da bei Dir um alles in der Welt verwendet? (Würde mir das gerne interessehalber ansehen.)
Typischerweise packe ich das so aus:
# gzip -d initrd.img.gz
# mkdir files
# cd  files
# cpio --extract < ../initrd.img
Und so wieder ein:
# cd files
# find . > ../file.list
# cpio --create --format=newc < ../file.list > ../initrd-patch.img
# cd ..
# gzip -9 initrd-patch.img


Achja, Nachtrag: das habe ich immer von einem anderen Linux aus gemacht, nicht von dem, dessen INITRD ich ändern wollte.

MfG, FM_81
Member: P0S-MK
P0S-MK Jan 27, 2011 at 15:14:18 (UTC)
Goto Top
Ich hatte es auch auf einem Testrechner mit OpenSuse 10.3 versucht...mit dem gleichem Ergebnis

ich habe mal auf Rapidshare die initrd hochgeladen (19,38 MB)

*entfernt*

Wenn du mal drüber schauen möchtest...

cpio werd ich gleich mal testen...Danke für den Tip!
Mitglied: 68162
68162 Jan 27, 2011 at 15:56:36 (UTC)
Goto Top
Hab' mich wohl getäuscht! Scheint kein CPIO-Archiv zu sein!

MfG, FM_81
Member: P0S-MK
P0S-MK Feb 01, 2011 at 15:10:56 (UTC)
Goto Top
Ich bin bisher noch keinen Schritt weiter...hat noch irgendwer eine Idee?
Mitglied: 68162
68162 Feb 01, 2011 at 16:11:26 (UTC)
Goto Top
Weils's ja nun kein CPIO-Archiv ist: schon mal folgende simple Sequenz versucht?
root@linux# gzip -d /public/work/initrd.gz 
root@linux# mount -o loop /public/work/initrd /mnt/tmp/

# HIER EIGENTLICHE ÄNDERUNGEN VORNEHMEN!

root@linux# umount /mnt/tmp
root@linux# gzip -9 /public/work/initrd

MfG, FM_81
Member: P0S-MK
P0S-MK Feb 01, 2011 at 17:36:08 (UTC)
Goto Top
manchmal ist der kürzeste Weg vielleicht der beste face-smile
Gebe dir morgen Rückinfo...thx
Member: P0S-MK
P0S-MK Feb 02, 2011 at 09:20:11 (UTC)
Goto Top
Vielen, vielen Dank FM_81!!!

Jetzt kann das eigentliche scripten losgehen...dein Tip war ein voller Erfolg!

face-smile