Problem:
Wenn man sich ein angepasstes initrd (Ramdisk Image) erstellen möchte, geht es nicht das initrd image per loop Device ins Dateisystem einzubinden. Es kommt zu einer Fehlermeldung:
root@comp:/install# mount initrd /test -o loop ioctl: LOOP_CLR_FD: Device or resource busy mount: you must specify the filesystem type
Grund:
WICHTIG: Ab Kernel 2.6 ist das initrd Image kein Loopback Image sondern ein cpio image dadruch ändert sich die Vorgehensweise.1. Image auspacken (ist mit GZip gepackt z.B. gunzip verwenden)
2. Dateien extrahieren (mit cpio)
3. Daten bearbeiten
4. Daten zusammenbauen zu einem cpio image (mit cpio)
5. Wieder mit Gzip einpacken
Lösung:
Auspacken mit cpio geht so (Nicht wundern man braucht tatsächlich cpio doppelt !):
cat initrd | (cpio -i -d -m ; cpio -i -d -m)
neu Zusammenbauen mit cpio geht so:
find . | cpio -o -H newc -O initrd