Wie stelle ich ein versehentlich gelöschtes Initrd-Image wieder her?

Wie stelle ich ein versehentlich gelöschtes Initrd-Image wieder her?

Ich habe versehentlich das Initrd-Image auf meinem System gelöscht. Wie kann ich es wiederherstellen?

Antwort1

Dies ist die Antwort auf die ursprüngliche Frage, wie man initrd.lz von der Live-CD extrahiert. Diese Frage wird normalerweise verwendet, wenn Sie eine benutzerdefinierte Live-CD erstellen.

kopiere die initrd.lz in ein Arbeitsverzeichnis ( ~)

cp /media/cdrom/initrd.lz ~

Erstellen Sie ein Verzeichnis, in das der Inhalt extrahiert werden soll. Ich verwende initrd, cd gehe in das Verzeichnis

mkdir ~/initrd
cd ~/initrd

Extrakt

lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames

Nehmen Sie alle erforderlichen Änderungen vor, verpacken Sie

cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../cusotm.initrd.lz

Ihr neues Initrd befindet sich in Ihrem Home-Verzeichnis und heißtcusotm.initrd.lz

Antwort2

Das Initrd-Image für jeden Kernel wird bei der Kernelinstallation aus den Modulen und Anwendungen auf dem Computer erstellt. Sie können ein fehlendes Initrd einfach mit dem folgenden Befehl erstellen:

update-initramfs -c -k <version>

(Denken Sie daran, die entsprechende Version für Ihren Kernel einzusetzen.)

Antwort3

Dies ist eine bessere Möglichkeit, das in den Kommentaren gepostete OP-Problem zu lösen.

Ich versuche, initrd von einer Live-CD auf meiner Ubuntu-Installation zu verwenden. Habe es versehentlich gelöscht. – Binoy Babu

Um ein Initramfs zu erstellen, booten Sie zuerst einen alternativen Kernel (älter ist in Ordnung).

Dann renne

sudo mkinitramfs 3.2.0-15-generic-pae -o /boot/initrd.img-3.2.0-15-generic-pae

Ich habe den Pae-Kernel nicht installiert. Wenn „3.2.0-15-generic-pae“ nicht funktioniert, listen Sie den Inhalt auf, /lib/modulesum den Namen zu erhalten:

ls /lib/modules

Wenn Sie keinen älteren Kernel haben, können Sie eine Live-CD booten und Folgendes verwenden chroot:

  1. Mounten Sie zuerst Ihre Root-Partition: mount -t ext4 /dev/sdX /mnt. Stellen Sie sicher, dass Sie den richtigen Partitionsnamen verwenden und geben Sie diesen Befehl ein. Verwenden Sie Befehle wie lsblk, blkidusw., um die richtige Partition zu finden.

  2. [Optional] Wenn Sie eine separate Bootpartition haben, mounten Sie diese als nächstes:mount -t ext4 /dev/sdY /mnt/boot

  3. Als nächstes mounten Sie alle virtuellen Dateisysteme, die der mkinitramfsBefehl benötigt: mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys mount --bind /dev /dev/proc

  4. Wechseln Sie nun in den /mntOrdner und führen Sie den mkinitramfsBefehl wie oben beschrieben aus.

verwandte Informationen