
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/modules
um den Namen zu erhalten:
ls /lib/modules
Wenn Sie keinen älteren Kernel haben, können Sie eine Live-CD booten und Folgendes verwenden chroot
:
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 wielsblk
,blkid
usw., um die richtige Partition zu finden.[Optional] Wenn Sie eine separate Bootpartition haben, mounten Sie diese als nächstes:
mount -t ext4 /dev/sdY /mnt/boot
Als nächstes mounten Sie alle virtuellen Dateisysteme, die der
mkinitramfs
Befehl benötigt: mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys mount --bind /dev /dev/procWechseln Sie nun in den
/mnt
Ordner und führen Sie denmkinitramfs
Befehl wie oben beschrieben aus.