我的 /boot 分区坏了。我如何在那里写下所需的一切?

我的 /boot 分区坏了。我如何在那里写下所需的一切?

我使用 debian 9。由于某种原因,我所在的分区/boot损坏了,e2fsck报告了许多错误。不知怎的,我仍然能够启动进入紧急模式。我可以格式化该分区。如何再次在那里写入所需的所有内容(grub、内核等)?

答案1

运气好的话,里面的所有内容/boot都可以轻松自动复制。

  1. 启动进入救援模式。
  2. 卸载/boot(如果已安装 - 有可能无法安装。命令是umount /boot:)
  3. 修复你的/boot文件系统。如果是 ext2-3-4,则命令:e2fsck -f -y -C0 /dev/your-boot-partition。这些是非常具有攻击性、强制破坏性的标志,但您不必非常小心其中的数据 - 所有这些都可以自动重现。而且,如果它运行没有问题,您可以确定您的/boot文件系统最终会正常。
  4. 如果 e2fsck 输出没有显示任何糟糕的信息(P > 90%),那么您的 /boot 可能已经修复,您可以重新启动。但如果没有,那么您的系统可能无法启动。
  5. 重新挂载分区(mount /boot
  6. 检查哪些软件包将任何内容安装到/boot.这可以通过命令来完成dpkg -S /boot。就我而言,结果是这样的:

# dpkg -S /boot
linux-image-4.4.0-38-lowlatency, memtest86+, grub2-theme-mint, memtest86, linux-image-4.4.0-38-generic, base-files: /boot

然后,您只需通过命令重新安装这些软件包即可

apt-get --reinstall install linux-image-4.4.0-38-lowlatency memtest86+ grub2-theme-mint memtest86 linux-image-4.4.0-38-generic base-files

那里还有各种引导和配置文件,但这些包的(重新)安装脚本将自动重新构建它们。


这应该足够了,但是如果您想非常非常确定,您还可以使用以下命令再次手动重新生成引导文件

update-grub

...然后将 grub 重新安装到 MBR

grub-install /dev/your-boot-disk (most probably /dev/sda)

在不太可能出现问题并且系统无法启动的情况下,您可以从救援 CD/随身碟执行几乎相同的步骤。详细信息在回答。


e2fsck扩展名:毕竟,您可以检查in恢复的文件/boot/lost+found。您不需要它们,因为它们中的所有数据都已复制。为了节省(通常是小的)启动分区的空间,您可以删除它们。

相关内容