mkinitramfs
mkinitramfs
Hi,
ich weiß nicht, ob ich hier im richtigen Thema bin...
Ich bin in der Vorbereitung zur LPI I und habe ein Problem mit der Lösung zu folgender Frage:
Der Befehl mkinitramfs erzeugt automatisch ein Image einer Initial-Ramdisk. Die Initial-Ramdisk besteht jedoch nur aus einer Datei, deren Inhalte (z. B. enthaltene Befehle, aufrufbare Module etc.) nicht direkt auslesbar sind. Mit welcher Option für den Befehl mkinitramfs kann man auf die Informationen der gespeicherten Inhalte der Initial-Ramdisk nach deren Erzeugung zurückgreifen und wie heißen die Verzeichnisse,
in denen die die Inhalte der Initial-Ramdisk während deren Erzeugung zwischengespeichert werden?
danke fürs schauen
Söri
ich weiß nicht, ob ich hier im richtigen Thema bin...
Ich bin in der Vorbereitung zur LPI I und habe ein Problem mit der Lösung zu folgender Frage:
Der Befehl mkinitramfs erzeugt automatisch ein Image einer Initial-Ramdisk. Die Initial-Ramdisk besteht jedoch nur aus einer Datei, deren Inhalte (z. B. enthaltene Befehle, aufrufbare Module etc.) nicht direkt auslesbar sind. Mit welcher Option für den Befehl mkinitramfs kann man auf die Informationen der gespeicherten Inhalte der Initial-Ramdisk nach deren Erzeugung zurückgreifen und wie heißen die Verzeichnisse,
in denen die die Inhalte der Initial-Ramdisk während deren Erzeugung zwischengespeichert werden?
danke fürs schauen
Söri
Re: mkinitramfs
Im Fall von Wheezy ist’s ein gzip-komprimiertes cpio-Archiv. Entsprechend ließe es sich z.B. mittels cat file | gzip -d | cpio -i auspacken und analog wieder zusammenpacken. Andere Distris/Releases können mit anderen Methoden arbeiten (z.B. gepacktes FS-Image).
Edit: Wenn’s um LPIC geht, ist sicher die Manpage einen Blick wert. Dort steht eigentlich alles drin ….
Edit: Wenn’s um LPIC geht, ist sicher die Manpage einen Blick wert. Dort steht eigentlich alles drin ….
Re: mkinitramfs
Hi niemand,
danke für die schnelle Antwort.
Ich habe natürlich in der man zu initramfs geschaut, dort gibt es 4 Optionen mit -o und cpio kann ich mir das anschauen, so wie Du ja auch schreibst.
Ich bin nur nicht sicher, ob das so richtig ist, da cpio doch mit mkinitramfs nichts zu tun hat?!
grüße
Söri
danke für die schnelle Antwort.
Ich habe natürlich in der man zu initramfs geschaut, dort gibt es 4 Optionen mit -o und cpio kann ich mir das anschauen, so wie Du ja auch schreibst.
Ich bin nur nicht sicher, ob das so richtig ist, da cpio doch mit mkinitramfs nichts zu tun hat?!
grüße
Söri
Re: mkinitramfs
Code: Alles auswählen
niemand@cubietruck:~$ apt-cache depends initramfs-tools
initramfs-tools
Hängt ab von: klibc-utils
Hängt ab von: cpio
[…]
niemand@cubietruck:~$ file /usr/sbin/mkinitramfs
/usr/sbin/mkinitramfs: POSIX shell script, ASCII text executable
Re: mkinitramfs
Danke, nun bin ich sicher.
gruß
soeri
gruß
soeri
Re: mkinitramfs
Die frage ging aber noch weiter. "und wie heißen die Verzeichnisse,
in denen die die Inhalte der Initial-Ramdisk während deren Erzeugung zwischengespeichert werden?" hat die schon jemand beantwortet. müste ja /etc /lib /sbin / bin sein oder?
in denen die die Inhalte der Initial-Ramdisk während deren Erzeugung zwischengespeichert werden?" hat die schon jemand beantwortet. müste ja /etc /lib /sbin / bin sein oder?
Re: mkinitramfs
"und wie heißen die Verzeichnisse,
in denen die die Inhalte der Initial-Ramdisk während deren Erzeugung zwischengespeichert werden?"
Code: Alles auswählen
$ cat /usr/sbin/mkinitramfs | grep temp
DESTDIR="$(mktemp -d ${TMPDIR:-/var/tmp}/mkinitramfs_XXXXXX)" || exit 1
__TMPCPIOGZ="$(mktemp ${TMPDIR:-/var/tmp}/mkinitramfs-OL_XXXXXX)" || exit 1
__TMPEARLYCPIO="$(mktemp ${TMPDIR:-/var/tmp}/mkinitramfs-FW_XXXXXX)" || exit 1
Ich mache das mit einem Link soniemand hat geschrieben: mittels cat file | gzip -d | cpio -i auspacken
Code: Alles auswählen
$ ll /boot/*3.16*
lrwxrwxrwx 1 root root 25 Feb 8 2015 /boot/3.16.0-4-amd64.cpio.gz -> initrd.img-3.16.0-4-amd64
...
-rw-r--r-- 1 root root 17372971 Jul 14 10:21 /boot/initrd.img-3.16.0-4-amd64
Evtl. Problem,
bei Verwendung von intel-microcode und Einstellung
IUCODE_TOOL_INITRAMFS=auto (gegebenenfalls, kernelabhängig) oder
IUCODE_TOOL_INITRAMFS=early
wird ein cpio mit der intel-cpu-Firmware vor die eigentliche initrd gesetzt und muß zuvor abgeschnitten werden:
Code: Alles auswählen
$ 7z l /boot/initrd.img-3.16.0-4-686-pae
7-Zip 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,1 CPU)
Listing archive: /boot/initrd.img-3.16.0-4-686-pae
--
Path = /boot/initrd.img-3.16.0-4-686-pae
Type = Cpio
Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
2016-07-25 04:22:37 D.... 0 0 kernel
2016-07-25 04:22:37 D.... 0 0 kernel/x86
2016-07-25 04:22:37 D.... 0 0 kernel/x86/microcode
2016-07-25 04:22:37 ..... 40960 40960 kernel/x86/microcode/GenuineIntel.bin
------------------- ----- ------------ ------------ ------------------------
40960 40960 1 files, 3 folders
Code: Alles auswählen
$ cpio -t < initrd.img-3.16.0-4-686-pae
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/GenuineIntel.bin
82 blocks
In einem Skript mache ich das so
Code: Alles auswählen
...
INITRD=$(cpio -t < $i 2>&1 | awk '$2=="blocks" {print $1}')
dd if=$i skip=$INITRD > $i.initrd-tail.cpio.gz
...
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
- KBDCALLS
- Moderator
- Beiträge: 22447
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Re: mkinitramfs
Anscheinend gibst da keine feste Größe . Bei mit ist sie nur 44 Block groß.
Die Microcode Dateien für Intel sind zwischen 2048 und 30720 Bytes groß.
Code: Alles auswählen
matthias@tatjana:/boot$ cpio -t < initrd.img-4.6.0-0.bpo.1-amd64
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/GenuineIntel.bin
44 blocks
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.