在运行中的系统上删除/boot/initrd.img文件是否可以?

我有一台带有RAID1根分区的服务器,但每个驱动器上都有一个小的/boot分区:每当进行更新时,我会将其中一个驱动器的内容复制到另一个驱动器上。
不幸的是,/boot分区太小了 - 当内核更新时,initramfs没有足够的空间来写入新的initrd.img到该分区中。 修复分区大小意味着公司将在一段时间内失去关键服务,我想避免这种情况发生。
据我了解,grub引导只在真正的分区被挂载之前使用initrd.img。 在系统运行时,删除现有的initrd.img并释放空间以构建新的initrd.img是否可行?

虽然提供的答案确实回答了你的问题,但你可能还想考虑更改initramfs-tools的配置,以减少它包含的模块数量和/或使用xz而不是gzip进行压缩。使用xz而不仅仅是gzip进行压缩可以显著减小生成的initramfs镜像的大小。更多详细信息请参考:https://askubuntu.com/a/344252/309457 - KingJ
1个回答

  • 在运行系统时,可以删除它和内核。
  • 但是你应该为最坏的情况做好准备,如果系统在替换过程中崩溃或关机,或者可能是一个糟糕的内核更新,你打算怎么办。

    建议始终保留一个可用的旧内核。

    因此,准备一个带有该内核和ramdisk备份的USB启动盘。(恢复时间为5~10分钟)


1关于USB备份的想法不错,虽然在这种情况下我已经在阵列中的另一块磁盘上有备份了,应该足够用于恢复。我会试一试,但可能先在另一台机器上进行模拟测试一下... - Peter Ford