Mit dem Kernel-Paket 2.11.0 wurde vom initrd- auf initramfs-Format umgestellt, womit sich die Schritte zur manuellen Bearbeitung dieser Bootdatei grundsätzlich geändert haben.

Allerdings heißt die Bootdatei auch bei Verwendung des initramfs-Formats weiterhin initrd.gz.

1. Entpacken der initrd.gz

# cp /boot/initrd.gz /tmp
# gzip -d /tmp/initrd.gz

2. Auspacken der initramfs

# mkdir /initramfs
# cd /initramfs
# cpio -i < /tmp/initrd

3. Bearbeiten der initramfs

Nun kann man sich das Verzeichnis /initramfs näher ansehen. Das Äquivalent zur linuxrc des initrd-Formats ist jetzt die Datei init. Am Anfang stehen die Lade-Befehle der Module, danach kommt das Skelett von init.

Hier können nun also Änderungen an der Datei init vorgenomen werden und gegebenenfalls auch Dateien z. B. Kernelmodule hinzugefügt werden.

Achtung: Immer komplette Pfade beim Starten von Befehlen verwenden! Sollen Kernelmodule der initramfs hinzugefügt werden, dann sind diese auch in den Verzeichniszweig /lib/modules/<kernelversion>/ zu kopieren. Im Init-Skript können keine Pfade auf das Modulverzeichnis des installierten Systems benutzt werden, da das Root-Device zu diesem Bootzeitpunkt noch nicht zur Verfügung steht.

4. Einpacken der initramfs und kopieren ins Bootverzeichnis

# cd /initramfs
# find . | cpio -o -H newc --quiet | gzip -9 > /tmp/initrd.gz
# cp /tmp/initrd.gz /boot

5. Aktivierung  der neuen initramfs

# lilo

Achtung: Wird der Aufruf von lilo unterlassen, ist der Server über den Standard-Eintrag „eis“ im Bootmenü nicht mehr bootbar, sondern nur noch über weitere Einträge des Bootmenüs z. B. „oldeis“, solange diese funktionstüchtig sind.

6. Aufräumen

# cd /
# rm -rf /initramfs
# rm /tmp/initrd.gz
# rm /tmp/initrd