Bearbeiten der initramfs (Kernelpakete 2.11.0 bis 3.16.0)
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