如何在 Ubuntu 中重新创建已擦除的 /boot 文件系统

pet*_*ooo 7 linux boot grub ubuntu grub2

我不小心覆盖了正在运行的 Ubuntu 主机上的 /boot 文件系统,其中 root fs 和 swap 是 LV,内核、initramfs 等位于 /boot 下,grub 模块和配置位于 /boot/grub 下。

如何重新创建成功启动所需的所有文件?

# mkfs.ext2 /dev/sda1
# mount /dev/sda1 /boot
# apt-get install --reinstall linux-image-`uname -r` linux-image memtest86+
# mkdir /boot/grub
# grub-install /dev/sda
Run Code Online (Sandbox Code Playgroud)

这似乎已经重建了大部分内容,这足够了吗?我不想在没有确定重启完成的情况下冒险重启。

对于偏执者来说,这也可能是在闪存驱动器上创建备份启动分区的一种方法,例如,如果您的启动分区没有镜像,但根目录是镜像的。

Dib*_* Dk 9

如果您有可用的系统,则可以跳过第 1 部分至第 5 部分。

  1. 启动您正在使用的版本的 Ubuntu live-cd macthing。

  2. 挂载您的普通系统分区。X 是驱动器盘符。Y 是分区号:
    sudo mount /dev/sdXY /mnt

  3. 仅当您有单独的引导分区时(其中 sdYY 是 /boot 分区名称):
    sudo mount /dev/sdYY /mnt/boot

  4. 挂载关键虚拟文件系统。
    for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

  5. chroot 到您的普通系统设备:
    sudo chroot /mnt

  6. 重新安装 GRUB 2(用 sda、sdb 等替换正确的设备。不要指定分区号):
    grub-install --recheck /dev/sdX

  7. 安装ubuntu内核(需要联网)
    apt-get install --reinstall linux-image-$(uname -r)

  8. 重新创建 GRUB 2 菜单文件 (grub.cfg)
    update-grub

  9. 退出 chroot:
    CTRL-D键盘上
    sudo reboot

https://help.ubuntu.com/community/Grub2/Installing#via_ChRoot
在 Ubuntu 10.04 上重新安装最新的 Linux 内核