在带有 UEFI“bios”的 Dell XPS 13" 上,我前段时间安装了 Ubuntu 18.04 作为双启动,并预装了 Windows 10。当时我必须启用传统启动,使用 gparted 调整分区大小,一切正常。
今天我想重新安装 Windows 10,因此我继续安装程序,但它抱怨有关 GPT 的一些问题并拒绝安装(类似这样的事但信息略有不同)。
下一个——糟糕——的想法是通过 Win 安装程序删除所有与 Windows 相关的分区,然后创建一个新的分区。这也没有用。但我不在乎我的 Win 是否能用,所以我想让 ubuntu 再次可启动。启动提示说
error: no such partition
Entering rescue mode...
grub rescue>
输入ls
结果为(hd0) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1)
。 输入ls (hd0,gpt4)
结果为Filesystem is ext2
,但结果不正确。 其他分区未知。
我几年前就用过 grub-install,所以我很有信心。但不幸的是grub-install /dev/sd<Tab>
没有给出任何结果。我意识到 GPT 和 nvme 可能是问题所在。
盲目运行sudo grub-install /dev/nvme0n1p1
没有帮助,gparted 说我的 linux 分区不可读。然后sudo update-grub
得到了Failed to get canonical path of /cow
。
答案1
最终,经过 1 小时,我终于搞清楚了——我必须在 ubuntu live 中启动,安装 引导修复工具有:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
并点击“建议修复”。
我收到消息:“检测到 GPT。请创建 BIOS 启动分区(>1MB、未格式化的文件系统、bios_grub 标志)。这可以通过 Gparted 等工具执行。然后重试。”
因此,我在磁盘开头创建了“未格式化”的 2MB 分区并提交了更改。然后幸运的是,gparted 也开始识别我的 Linux 分区。右键单击允许选择的“标志”,其中列出了“bios_grub”。再次运行 boot-repair 会响应 OK 消息,Ubuntu 再次启动。
- 关于 EFI 与 BIOS 以及 GPT 与 MBR 的很好的解释是这里。看来我在 BIOS 模式下使用 GPT 的计算机。(这很违反直觉,因为机器有 UEFI)
答案2
Windows 每次更新都会发生这种情况。我使用 easy bcd 在 Windows 中修复了这个问题。或者更理想的情况是为两个操作系统使用 2 个独立的硬盘。顺便说一下,easy bcd 有一个免费版本。