如何恢复意外删除的 initrd 映像?

Bin*_*abu 5 kernel

我不小心删除了系统上的 initrd 映像。我该如何恢复?

Pan*_*her 6

这是原始问题的答案,即如何从 live CD 中提取 initrd.lz,通常在您制作自定义 live CD 时使用。

将 initrd.lz 复制到工作目录 ( ~)

cp /media/cdrom/initrd.lz ~
Run Code Online (Sandbox Code Playgroud)

创建一个目录来提取内容,我将使用initrd, cd 进入目录

mkdir ~/initrd
cd ~/initrd
Run Code Online (Sandbox Code Playgroud)

提炼

lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames
Run Code Online (Sandbox Code Playgroud)

进行您可能需要的任何更改,重新打包

cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../cusotm.initrd.lz
Run Code Online (Sandbox Code Playgroud)

您的新 initrd 将在您的主目录中并被称为 cusotm.initrd.lz


And*_*ndy 5

每个内核的 initrd 映像是在内核安装时从机器上的模块和应用程序构建的。您可以使用以下命令简单地构建缺少的 initrd:

update-initramfs -c -k <version>
Run Code Online (Sandbox Code Playgroud)

(请记住为您的内核替换适当的版本。)