前言
在这台电脑上,我安装了 Windows 7。我不小心把它弄坏了,所以我安装了 Linux Mint(因为 Linux 是免费的,我不想为 Windows 付费)。最近,我能够在之前包含损坏的 Windows 7 的分区上安装 Windows 10(我查看了所有文件,并决定将它们(或等效文件)存储在其他地方)。
问题
现在这就是我的问题所在。一旦我安装了 Windows 10,它就可以正常启动...唯一的问题是安装似乎破坏了(可能覆盖了)GRUB2 引导加载程序,现在我无法启动 Linux。
我看过超级用户上的许多问答,但都没有用。
(所以请不要将此标记为重复,除非我说它适用于我的情况!谢谢)
可能的解决方案 #1
有一个漂亮的快要解决我的问题了。我使用 EasyBCD 将 Linux 添加到引导加载程序,但我不知道引导文件存储在 Linux 系统中的什么位置。
我不知道其他人的情况如何,但我有三个分区,一个用于文件系统(我怀疑引导文件就在这里,但没有成功),一个用于 /home(我本来打算接下来选择这个,但我想问这个问题,以免再把事情搞砸……),一个用于交换(我知道引导文件不在这个分区中)。
可能的解决方案 #2
有人说安装 Linux,然后使用一些 BCD 软件将其添加到引导加载程序,这在我的环境中可行吗?当 Linux已经安装?
最后的想法
回答我的问题的人应该知道,我不在乎我使用的是 GRUB2 引导程序还是 Windows 引导程序(或者看起来像 Windows 引导程序的引导程序)。我只希望能够在需要的时候启动 Linux 和 Windows(因为我发现两者都有很大的优点)
答案1
Regarding your Possible Solution #1
我不建议使用 EasyBCD。为了保持它的整洁,它会以不可预测的方式干扰引导加载程序,并且一旦安装就很难完全删除
首先,据我所知,EasyBCD 对于管理基于 EFI 的计算机上的 Windows/Linux 双启动毫无用处,所以我建议您不要再尝试使用它。
Regarding Possible Solution #2
如果你的意思是这样使用 Windows 引导加载程序启动 Linux(这是我之前的一个答案)
如果这是您的意思,那么不,这种方法将不起作用,因为 Linux 已经安装好了。
可能的解决方案 #1
1.使用你已有的 Linux ISO 创建 Live USB
2.启动实时系统
3.Chroot 安装的系统并重新安装引导加载程序
3A.挂载你的分区
sudo mount /dev/sda2 /mnt #Replace sda2 with root partition
如果你有单独的 /boot、/var 或 /usr 分区
sudo mount /dev/sdXW /mnt/boot sudo mount /dev/sdXY /mnt/var sudo mount /dev/sdXZ /mnt/usr
3B.绑定安装一些必要的东西
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
3C.如果 Ubuntu 安装在 EFI 模式下
sudo mount /dev/sdXY /mnt/boot/efi
将 3D.chroot 放入你的 Ubuntu 安装中
sudo chroot /mnt
3E.重新安装 grub
grub-install /dev/sdx
3F.更新 grub :运行以下命令重新生成 grub 文件
update-grub
update-grub
3G.如果一切顺利,那么一切就绪了
exit sudo reboot
重启后 Grub 将帮助您启动所需的操作系统
答案2
免费 超级 Grub2 磁盘 只需单击一下即可解决问题: