我可以删除 root 中的 /initrd.img 和 /vmlinuz 吗?

Ben*_*Ben 6 kernel

我可以删除/initrd.img/vmlinuz和他们的.old文件吗?

/initrd.img链接boot/initrd.img-4.13.0-45-generic,我不知道为什么/initrd.img出现在这里,我在这里没有之前看到它。

在此处输入图片说明

小智 5

如果你以前没有见过它们,那是因为你从来没有看过。

@deadflowr 在 Ubuntu 论坛上的“/目录中的 vmlinuz 和 initrd.img 符号链接”

/vmlinuz/initrd.img符号链接指向最新 压缩的Linux内核可执行代码和初始RAM磁盘,分别与他们*.old同行的是符号链接到前述的版本。如果您仔细研究 GRUB 配置(在 中找到/boot/grub/grub.cfg),您会发现没有对/vmlinuz或 的引用/initrd.img,而是对原始文件的引用。

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2290c2ad-8832-4d80-a82d-e966d73c23e9' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
    insmod part_gpt
    insmod ext2
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root  2290c2ad-8832-4d80-a82d-e966d73c23e9
    else
      search --no-floppy --fs-uuid --set=root 2290c2ad-8832-4d80-a82d-e966d73c23e9
    fi
    linux   /boot/vmlinuz-4.15.0-23-generic root=UUID=2290c2ad-8832-4d80-a82d-e966d73c23e9 ro  console=tty1 console=ttyS0
    initrd  /boot/initrd.img-4.15.0-23-generic
}
Run Code Online (Sandbox Code Playgroud)

ls -l /为上下文提供的输出。

lrwxrwxrwx   1 root root    33 Jun 20 06:57 initrd.img -> boot/initrd.img-4.15.0-23-generic
lrwxrwxrwx   1 root root    33 May 22 10:54 initrd.img.old -> boot/initrd.img-4.15.0-22-generic
...
lrwxrwxrwx   1 root root    30 Jun 20 06:57 vmlinuz -> boot/vmlinuz-4.15.0-23-generic
lrwxrwxrwx   1 root root    30 May 22 10:54 vmlinuz.old -> boot/vmlinuz-4.15.0-22-generic
Run Code Online (Sandbox Code Playgroud)

因为您的grub.cfg每个内核版本都会自动更新,所以引用实际文件比符号链接更安全(以防它被删除或更改)。但是,如果您正在对grub.cfg(不推荐,因为它们可能会被覆盖)进行一些自己的修改,/vmlinuz或者/initrd.img可以将其用作最新内核映像的链接以方便您使用。

删除它们是否安全?是的,但是当/如果您更新内核(使用apt upgrade)或更新 GRUB(update-grub)时,它们会重新创建。

阅读更多


gui*_*erc 3

如果您查看(file等等),您可能会注意到它们是符号链接。

如果您的系统无法启动(并且最终进入 grub 恢复),它们可以非常方便地启动您的系统,因为您不必记住,或者查看内核和initial.ramdisk 的完整路径和文件名对于您当前的[最新]或之前的[旧]内核。我可能不经常使用它们,但我认为它们非常方便。

file /vm*我的盒子上显示了一个

guiverc@d960-ubu2:~$   file /vm* 
/vmlinuz:     symbolic link to boot/vmlinuz-4.15.0-23-generic
/vmlinuz.old: symbolic link to boot/vmlinuz-4.15.0-22-generic

guiverc@d960-ubu2:~$   uname -r
4.15.0-23-generic
Run Code Online (Sandbox Code Playgroud)

是我当前和之前的内核。删除它们不会给我更多的磁盘空间(因为它们只是目录条目;指向 boot/ 中真实文件的链接)。

  • 更不用说它们可能会在下次升级内核时重新创建。 (3认同)