几个月前,我在一个外部 500MB USB 磁盘上(以及一台旧的 MacBook4,1 上)安装了 Ubuntu,使用 GPT 分区表,分区如下:
- 交换
- 交换
- 为 Ubuntu 创建一个独特的 ext4 分区
- 一个 NTFS 分区用于数据
在 sda(一个 500MB 的磁盘,带有标准 osx 安装和分区)上使用 Grub 一切正常。
几天前,我在另一个 USB 磁盘上安装了另一个发行版,也是使用 GPT:
- 几个 NTFS 分区
- 交换
- 交换
- 未格式化的 12 MB 标记为 bios_grub
- 根
- 变量
- 家
并在外部磁盘上安装了此 Grub。 这两个安装都不依赖 EFI 来启动。
当我尝试启动新安装时,总是出现一条消息抱怨缺少其他分区(Ubuntu),所以我进行了备份并清除了 MBR。
sudo dd if=/dev/zero of=/dev/sda bs=446 count=1
简而言之,在清除(以及恢复)MBR 后,我无法再启动 Ubuntu,并且当尝试从 LIVE CD 重新安装 Grub 时,我收到以下消息:
/usr/bin/grub-setup: warn: This GPT partition label has no BIOS Boot Partition, embedding won't be possible.
/usr/bin/grub-setup: error: embedding is not possible, but this is required fro cross-disk install.
那么,Ubuntu 安装时 Grub 是如何安装的呢?与 grub-install 过程有什么不同吗?
Ubuntu(我也在其中安装了 Grub)和其他发行版都可以在另一台计算机上正常启动,但是在阅读了大量帖子之后,我发现没有任何方法对我有用,我真的很困惑:
我如何恢复 Grub 并让两个磁盘启动?
不用说,我担心尝试 EFI 方式会产生严重的后果。
答案1
我进行了 AHT(硬件文本)扩展。看起来内部控制器有缺陷(4HDD/11/40000004:SATA(0:0)),一段时间后会导致无效的节点结构。
我认为该问题是由控制器故障引起的(HD 即将发生故障),并且可能导致我在尝试安装 Grub 时出现问题:
不可能安装任何东西,除非您重新格式化硬盘,该过程会暂时恢复光盘的功能。
格式化后我就可以安装 Grub 了。
长期解决办法:更换控制器(或计算机)。