“重新生成你的 initramfs” 是什么意思?

“重新生成你的 initramfs” 是什么意思?

今天我运行了一个脚本来修复 Acer One 10 S1003 上的一些问题。脚本运行完成后,出现了此消息。

All done, please regenerate your initramfs and reboot

我想知道“重新生成你的 initramfs”是什么意思。

答案1

创建/重新创建/更新 initramfs 文件意味着更新initrd.img-*/boot 中的 ramdisk 文件。

这是我的 /boot 的列表。请注意initrd.img-*文件的大小/日期。其中一个或多个文件需要更新。

~$ ls -al /boot
total 162745
drwxr-xr-x  4 root root     4096 Jul  5 05:19 .
drwxr-xr-x 23 root root     4096 Jun 19 12:40 ..
-rw-r--r--  1 root root   252994 May  7 05:38 config-5.11.0-18-generic
-rw-r--r--  1 root root   253022 Jun 16 15:38 config-5.11.0-22-generic
drwxr-xr-x  3 root root     1024 Dec 31  1969 efi
drwxr-xr-x  5 root root     4096 Jun 30 12:09 grub
lrwxrwxrwx  1 root root       28 Jun 25 12:42 initrd.img -> initrd.img-5.11.0-22-generic
-rw-r--r--  1 root root 62066094 Jul  5 05:19 initrd.img-5.11.0-18-generic
-rw-r--r--  1 root root 62067859 Jul  5 05:18 initrd.img-5.11.0-22-generic
lrwxrwxrwx  1 root root       28 Jun 25 12:42 initrd.img.old -> initrd.img-5.11.0-18-generic
-rw-r--r--  1 root root   182704 Aug 18  2020 memtest86+.bin
-rw-r--r--  1 root root   184380 Aug 18  2020 memtest86+.elf
-rw-r--r--  1 root root   184884 Aug 18  2020 memtest86+_multiboot.bin
-rw-------  1 root root  5968565 May  7 05:38 System.map-5.11.0-18-generic
-rw-------  1 root root  5969489 Jun 16 15:38 System.map-5.11.0-22-generic
lrwxrwxrwx  1 root root       25 Jun 25 12:42 vmlinuz -> vmlinuz-5.11.0-22-generic
-rw-------  1 root root 14737344 May  7 06:26 vmlinuz-5.11.0-18-generic
-rw-------  1 root root 14741312 Jun 16 15:55 vmlinuz-5.11.0-22-generic
lrwxrwxrwx  1 root root       25 Jun 25 12:42 vmlinuz.old -> vmlinuz-5.11.0-18-generic

笔记:我更喜欢使用该-c选项创建一个全新的版本,而不是仅使用该-u选项更新现有文件。

正确的命令是:

sudo update-initramfs -c -k $(uname -r)

这将为您当前启动的 Ubuntu 版本创建一个新的 initrd.img-* 文件。

但是,如果你无法启动到当前版本的 Ubuntu,则可能必须修改此命令,并通过启动到旧版本的 Ubuntu,你可以这样做:

sudo update-initramfs -c -k 5.11.0-22-generic其中 5.11.0-22-generic 部分应该替换为所需启动内核的版本。

要重新生成所有 initrd.img-* 文件(不推荐),请使用:

sudo update-initramfs -c -k all

要获取更多详细信息,请输入:

man update-initramfs

答案2

man update-initramfs

   The  update-initramfs script manages your initramfs images on your lo‐
   cal box.  It keeps track of the existing initramfs archives in  /boot.
   There are three modes of operation create, update or delete.  You must
   at least specify one of those modes.

   The initramfs is a gzipped cpio archive.  At boot time, the kernel un‐
   packs  that  archive into RAM disk, mounts and uses it as initial root
   file system. All finding of the root  device  happens  in  this  early
   userspace.

命令man会显示您提供的命令或主题的参考手册页。还有其他文档工具(info等等)

如果你不知道需要使用什么命令,你可以使用类似 的工具进行搜索apropos,例如,如果我想知道我可能会使用哪些与 initramfs 相关的命令

guiverc@d960-ubu2:/de2900/lubuntu$   apropos initramfs

dh_installinitramfs (1) - install initramfs hooks and setup maintscripts
initramfs-tools (7)  - an introduction to writing scripts for mkinitramfs
initramfs.conf (5)   - configuration file for mkinitramfs
kernel-install (8)   - Add and remove kernel and initramfs images to and from /boot
linux-update-symlinks (1) - maintain symlinks to default kernel and initramfs
lsinitramfs (8)      - list content of an initramfs image
mkinitramfs (8)      - low-level tool for generating an initramfs image
unmkinitramfs (8)    - extract content from an initramfs image
update-initramfs (8) - generate an initramfs image
update-initramfs.conf (5) - configuration file for update-initramfs

相关内容