georg....@freenet.de (Georg Schwarz) wrote:
>Marc Haber <
mh+usene...@zugschl.us> wrote:
>
>>
georg....@freenet.de (Georg Schwarz) wrote:
>> >Marc Haber <
mh+usene...@zugschl.us> wrote:
>> >
>> >> >Die üblichen initramfs sind ein cpio-Archiv.
>> >>
>> >> Vorne dran ist im Zweifel noch der CPU-Microcode.
>> >
>> >mit Sicherheit; es sollte ja ein komplettes Kernel-Image sein.
>>
>> Im initramfs ist kein Kernel-Image.
>
>aber im Kernelimage ein initramfs?
Nein, das sind zwei unterschiedliche Dateien;
>Und wie erkennt man, wo es anfängt,
>und wie extrahiert man es?
|2 [2/5551]mh@drop:~ $ ls -al /boot/*5.11.6*
|-rw-r--r-- 1 root root 197K Mär 11 18:26 /boot/config-5.11.6-zgws1
|-rw-r--r-- 1 root root 34M Mär 12 08:09 /boot/initrd.img-5.11.6-zgws1
|-rw-r--r-- 1 root root 3,8M Mär 11 18:26 /boot/System.map-5.11.6-zgws1
|-rw-r--r-- 1 root root 4,9M Mär 11 18:26 /boot/vmlinuz-5.11.6-zgws1
|[3/5552]mh@drop:~ $
Das ist ein wenig eine Falle, denn:
|[14/5570]mh@drop:/tmp/tmp $ file /boot/initrd.img-5.11.6-zgws1
|/boot/initrd.img-5.11.6-zgws1: ASCII cpio archive (SVR4 with no CRC)
|[15/5571]mh@drop:/tmp/tmp $ < /boot/initrd.img-5.11.6-zgws1 cpio -i
|6768 blocks
|[16/5572]mh@drop:/tmp/tmp $ find
|.
|./kernel
|./kernel/x86
|./kernel/x86/microcode
|./kernel/x86/microcode/GenuineIntel.bin
|./kernel/x86/microcode/.enuineIntel.align.0123456789abc
|[17/5573]mh@drop:/tmp/tmp$
Das sieht aus wie man ein initramfs erwartet, und dann ist nur der
Microcode drin. Wenn man weiß, dass da ein cpio-archive und danach ein
gzipped cpio ist, hilft diese Shell-Magie:
|( cpio -i; zcat | cpio -i ) < /boot/initrd.img-5.11.6-zgws1
(wo nichtmal meine bevorzugte Notation mit dem redirect vor dem
Kommando funktioniert).
Es gibt wohl auch Lösungen mit binwalk, das aber auf so gut wie keinem
Rescuesystem verfügbar ist. Das ist alles wenig schön; ich frage mich,
ob das das Ergebnis eines Wettbewerbs für das ekelhafteste Dateiformat
ist.