今天我运行了一个脚本来修复 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