在 Windows 10 上安装 ubuntu 时,我们是否会遇到与在 Windows 8 上安装 ubuntu 时相同的问题?微软修复了这个问题吗?
答案1
让我写一些问题来帮助其他可能遇到同样问题的人。
我的电脑预装了 Windows 8,所以我缩小了 Windows 分区,为 Ubuntu 腾出了空间。这就是去年的运作方式。
在 Windows 10 升级中第二次重启后,计算机无法再启动。grub 只显示 grub 救援命令提示符。我后来发现问题是因为 windows 以某种方式更改了分区方案。启动分区不再位于 grub 预期的位置。我不知道这是怎么发生的,也不知道为什么会发生。
首先,您可以使用“ls”查看 grub rescue 中的分区。我的分区是 (hd0,gpt1)、(hd0,gpt2) 等。尝试找出哪个分区是您的启动分区。我尝试了以下命令,直到找到正确的分区:
ls (hd0,gpt1)/
ls (hd0,gpt1)/boot
ls (hd0,gpt2)/
ETC。
然后输入set
grub rescue 提示符。它将显示 grub 查找其文件的位置。在我的情况下 (hd0,gpt6) 已移动到 (hd0,gpt7)。set 命令显示:
prefix=(hd0,gpt6)/boot/grub
root=hd0,gpt6
更改前缀和根设置以指向正确的分区。 在我的例子中,命令是:
set prefix=(hd0,gpt7)/boot/grub
set root=(hd0,gpt7)
然后从救援模式切换到正常模式:
insmod normal
normal
您应该会看到正常的 grub 菜单。从现在起,您可以启动 Windows 并完成 Windows 升级。问题是,每次重新启动时,您都必须告诉 grub rescue 正确的分区。我就是这样做的。我把 grub 的问题留到以后再处理,因为我不确定 Windows 是否会对分区或启动进行更多更改。
Windows 完成后,我开始解决 grub 问题。按“e”编辑 Ubuntu 的启动选项。我把所有 (hd0,gpt6) 都改为 (hd0,gpt7),Ubuntu 启动了。但是,我使用加密分区和 cryptswap。在启动时,Ubuntu 要求我输入密码。幸运的是我把它保存在安装 Ubuntu 时,并在启动时输入了它。Ubuntu 启动没有问题。我更正了 /boot/grub/grub.cfg,在其中用 (hd0,gpt6) 替换了 (hd0,gpt7),然后执行sudo grub-install
。
现在只剩加密了。由于 Ubuntu 根分区增加为 1(从 6 增加为 7),交换分区也发生了类似的变化。我不得不将 /etc/crypttab 文件更改为指向 /dev/sda8 而不是 /dev/sda7。
我只为 Ubuntu 使用两个分区(根分区和交换分区)。如果与 Windows 共存的其他操作系统使用更多分区,则可能需要进行更多更改。特别是如果分区是根据其编号而不是 UUID 挂载的。查看您的 /etc/fstab。如果分区是通过 UUID 标识的,则应该没有问题。但如果有 /dev/... 行,则应更正编号(如果它们已更改)。