[CentOS-de] PXE-Kernel crasht mit "RAMDISK: incomplete write ..." nach Aenderung des initrd.img

Achim Theobald ath.mailman at muffti.de
Do Mär 26 20:18:36 UTC 2009


Moin moin,

ich habe jetzt kein Ahnung bzgl. Deines speziellen Problems. Mich irritiert nur das Du die initrd von Hand manipulierst.

Warum verwendest du nicht "mkinitrd" mit den entsprechenden Aufruf um die Treiber in die initrd einzubinden?

Ich binde hier zb. einige Treiber in die initrd ein um u.a. mit einem verschlüsselten root zu arbeiten.

Grundsätzlicher Aufruf:

/sbin/mkinitrd -f -v --preload=forcedeth --preload=sk98lin ...... --with= ..... /boot/initrd-`uname -r`.img `uname -r`

Backup der alten initrd erstellt und auf Deinem Testrechner gestartet. Dann wird für das aktuell laufende Kernel eine
initrd mit den zusätzlichen Treibern erstellt.


Frank Thommen schrieb:
> Hallo zusammen,
> 
> um aktuelle Rechner (mit neuen Intel Netzwerkkarten) via Kickstart/PXE 
> zu installieren, habe ich den neusten e1000e-Treiber ins initrd.img 
> aufnehmen wollen.  Damit stuerzt der Kickstart-Kernel beim Booten aber 
> mit den folgenden Meldungen ab:
> 
> [...]
> md: Autodetecting RAID arrays.
> md: autorun ...
> md: ... autorun DONE.
> RAMDISK: Compressed image found at block 0
> RAMDISK: incomplete write (20480 != 32768) 6062080
> VFS: Cannot open root device "<NULL>" or unknown-block(253,3)
> Please append a correct "root=" boot option
> Kernel panic - not syncing: VFS: Unable to mount root fs on 
> unknown-block(253,3)
> 
> 
> Um das initrd.img zu modifizieren, habe ich das originale CentOS 5.2 
> Image genommen, mit gunzip/cpio ausgepackt und 
> modules/2.6.18-92.el5/x86_64/e1000e.ko durch eines ersetzt, welches ich 
> auf einem frisch installierten Rechner (ohne Updates) mit ebendiesem 
> Kernel erstellt hatte.  Danach das ganze wieder archiviert und 
> komprimiert und das urspruengliche initrd.img auf dem tftp-Server ersetzt.
> 
> Das neue Image ist allerdings deutlich groesser als das originale: 12MB 
> gegenueber 5.7 MB.  Was ich nicht verstehen kann, denn zwar ist 
> e1000e.ko 2.8 MB gross (gegenueber dem alten e1000e.ko mit nur ca. 170 
> KB), aber das modules.cgz ist nur ca. 700 KB groesser als das originale. 
>   Gezippt wurden die cpio-Files mit `gzip -9`.
> 
> Meine PXE-Bootsettings sind
> 
>    KERNEL CentOS-5.2_64/vmlinuz
>    APPEND initrd=CentOS-5.2_64/initrd.img ramdisk_size=5940 kssendmac 
> ks=http://srv/ks/ks.cgi noipv6
> 
> 
> Auch mit Heraufsetzen der ramdisk_size kommt man nicht zu einem 
> funktionierenden Bootvorgang.  Etwas ueber ramdisk_size=7100 gibt es 
> einen Ueberlauf und die Groesse scheint wieder von unten gezaehlt zu 
> werden...?
> 
> 
> Irgendwelche Ideen, man ein funktionierendes, modifiziertes initrd.img 
> fuer Kickstart/PXE erstellen kann/muss?
> 
> 
> Vielen Dank
> 
>      frank