我需要逐步指导来恢复 grub

我需要逐步指导来恢复 grub

昨天我从磁盘中删除了两个小分区,今天它无法启动。我现在从 USB 打开了计算机,但无法从 chroot 安装 grub。我运行sudo blkid后发现我的 ubuntu 安装分区从 sda6 移动到了 sda5。我先运行,sudo mount /dev/sda5 /mnt然后 sudo grub-install --root-directory=/mnt /dev/sda5出现以下错误。

 /usr/sbin/grub-bios-setup: warning: File system `ext2' doesn't support embedding.
 /usr/sbin/grub-bios-setup: warning: Embedding is not possible.  GRUB can only be    installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their   use is discouraged..
 /usr/sbin/grub-bios-setup: error: will not proceed with blocklists.

你能告诉我现在该怎么办吗?

答案1

编辑:我的问题源于删除硬盘中的一个分区。

1)如果你重启了机器,但卡在了 grub 菜单然后你就可以使用 Live DVD 了。挂载你的 Ubuntu 操作系统安装的分区后(在我的情况下,它从 sda6 切换到 sda5)

  sudo mount /dev/sda5 /mnt

  sudo grub-install --root-directory=/mnt /dev/sda

将修复 grub

2)如果你删除了一个分区,但还没有重新启动它(由于分区表更改,它无法启动)然后您可以按照以下指南进行修复。在 grub 损坏之前,它安装在 SDA6 分区上,由于我删除了分区,分区表条目乱了,自然它无法启动。

sudo fdisk -l检查消息,例如partition table entries are not in disk order如果您收到该消息则修复它;发出命令

sudo fdisk /dev/sda然后输入xf最后w

他们做什么

 x (extra functionality - experts only)
 f (fix)
 w (write to disk and exit)

您可能会收到一条警告,提示设备正在使用中,并且下次启动时将使用新表。

它应该可以修复 grub 启动失败的问题。

如果你错过了上述步骤,并且想要重新安装 grub,请查看此链接https://wiki.archlinux.org/index.php/GRUB#Install_to_partition_or_partitionless_disk

编辑:

如果你收到类似这样的消息

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

不用担心,这只是一个警告信息,只需重新启动您的计算机,您的 grub 就会在正确的分区中被检测到。

每次在关闭计算机之前更改驱动器中的分区时,都必须运行 sudo fdisk /dev/sda 修复分区表,否则下次重启时就会丢失 grub

答案2

Boot-Repair 是一个简单的工具,用于修复您在 Ubuntu 中可能遇到的常见启动问题,例如在安装 Windows 或其他 Linux 发行版后无法启动 Ubuntu,或者在安装 Ubuntu 后无法启动 Windows,或者 GRUB 不再显示,某些升级会破坏 GRUB 等。

根据 Ubuntu 社区帮助,如果您不喜欢以终端方式执行操作,您可以使用 Boot-repair 工具来恢复您的 GRUB。

请阅读更多这里学习如何使用。

相关内容