
Ich habe binwalk verwendet, um initrd von Ubuntu 18.04 zu entpacken. Das Paket wurde jedoch nicht entpackt.
command used # sudo binwalk initrd
===========
result:
==========
DECIMAL HEX DESCRIPTION
-------------------------------------------------------------------------------------------------------
0 0x0 ASCII cpio archive (SVR4 with no CRC), file name: "."
112 0x70 ASCII cpio archive (SVR4 with no CRC), file name: "kernel"
232 0xE8 ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86"
356 0x164 ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode"
488 0x1E8 ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode/AuthenticAMD.bin"
28072 0x6DA8 ASCII cpio archive (SVR4 with no CRC), file name: "TRAILER!!!"
28672 0x7000 ASCII cpio archive (SVR4 with no CRC), file name: "kernel"
28792 0x7078 ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86"
28916 0x70F4 ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode"
29048 0x7178 ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode/.enuineIntel.align.0123456789abc"
29212 0x721C ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode/GenuineIntel.bin"
2440880 0x253EB0 ASCII cpio archive (SVR4 with no CRC), file name: "TRAILER!!!"
===========
Es wurde nichts im Zielordner angezeigt.
# file initrd
initrd: ASCII cpio archive (SVR4 with no CRC)
Ich habe versucht, mit dem Befehl cpio zu extrahieren.
build@###
:/source/build/1.0.5.00206/nm-gii/software/CD/build/initrd$ sudo cpio -i -F /source/build/1.0.5.00206/nm-gii/software/CD/build/extract-cd/casper/initrd
56 blocks
build@###:/source/build/1.0.5.00206/nm-gii/software/CD/build/initrd$ ll
total 12
drwxr-xr-x 3 root root 4096 Jan 15 05:36 ./
drwxr-xr-x 5 root root 4096 Jan 15 05:01 ../
drwxr-xr-x 3 root root 4096 Jan 15 05:36 kernel/
build@###:/source/build/1.0.5.00206/nm-gii/software/CD/build/initrd$
daher sind alle Dateien damit weiterhin extrahiert.
Antwort1
Für Ubuntu, zumindest für neuere Versionen, können Sie die Befehle lsinitramfs <file>
zum Untersuchen und unmkinitramfs <file> <target directory>
Extrahieren verwenden.
Antwort2
Das initrd-Format kann eine Aneinanderreihung von Dingen sein. Nämlich cpio
Archive und auch ein Dateisystem-Image. SieheDokumentation.
Option 1
Zum dracut
Extrahieren erstellter Initrds können Sie lsinitrd --unpack
das mit Dracut mitgelieferte Programm verwenden.
Option 2
Eine weitere Möglichkeit ist die Verwendung des skipcpio
Tools, das auch mit Dracut geliefert wird. Siehe diesAntwort.
/usr/lib/dracut/skipcpio $your-initrd-img | zcat | cpio -id --no-absolute-file-names
Option 3
Eine andere Möglichkeit ist die Verwendung binwalk
von cpio oder was auch immer sonst der initrd-Teil ist. Siehe diesAntwort.
Option 4(wahrscheinlich das, wonach Sie gefragt haben)
Die beste Antwort zum Durchlaufen von initrd, Extrahieren und Ändern ist jedoch diese: https://unix.stackexchange.com/a/607996/14907
Damit können Sie leichter nur die Teile extrahieren, die Sie ändern möchten, und sie dann auf die gleiche Weise wieder verpacken, wie Sie sie ausgepackt haben. Es handelt sich nicht um eine umfassende Anleitung, aber wenn Sie motiviert sind, sollten Sie die meisten Teile finden.