我之前安装了 Windows 10,然后同时安装了带有双启动(Grub)的 Ubuntu 16.04。我一直试图进入我的 windows 分区(100GB Linux-50GB)但没有结果,试过ntfsfix
,每个人都推荐这个,但是我的 Windows 处于休眠状态,这让事情变得更糟。接下来我尝试重新安装 Grub,这导致 windows 从 Grub 的启动选项中消失,之前 windows 虽然可以作为启动菜单中的选项,但没有启动。之后我在 usb 上刻录了 windows 10 并从 BIOS 启动它。我尝试了每个恢复选项,都没有结果,所以我被指示去cmd
并使用bootrec
并手动执行。
我曾经使用过bootrec /FixMbr
,现在没有启动菜单,我无法进入任何分区或操作系统。我只能进入 BIOS 并从外部驱动器启动一些东西。
我该怎么办?工作电话,没有多少时间。
附言:我在 Windows 分区上有两个大项目,我不能承受失去它们。
编辑:我通过 rescatux 恢复了 GRUB,现在我使用的是 Ubuntu 16.04。我在终端中输入了“sudo mount /dev/sda1 /mnt”,结果如下。
无法打开 ntfs 属性:没有该文件或目录
无法加载 $MFT:不存在该文件或目录
无法挂载‘/dev/sda1’:没有该文件或目录
答案1
当您安装 Windows 时,Windows 会假定它是机器上唯一的操作系统 (OS),或者至少它不考虑 Linux。因此,它会用自己的引导加载程序替换 GRUB。您需要做的是用 GRUB 替换 Windows 引导加载程序。我见过各种通过乱搞 GRUB 命令或类似命令来替换 GRUB 的说明,但对我来说,最简单的方法是直接
chroot
进入您的安装并运行update-grub
. 。chroot
这很棒,因为它允许您在实际安装上工作,而不是尝试在这里和那里重定向内容。它真的很干净。就是这样:
- 在“尝试 Ubuntu”模式下从实时 CD 或实时 USB 启动。
- 确定主分区的分区号。GParted(默认情况下应该已在实时会话中安装)可以为您提供帮助。我将在此答案中假设它是
/dev/sda2
,但是确保您的系统使用了正确的分区号!挂载你的分区:
sudo mount /dev/sda2 /mnt #Replace sda2 with your partition number
绑定安装一些其他必要的东西:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
如果 Ubuntu 安装在 EFI 模式下([不确定的话请参阅此答案][efi]),请使用 GParted 查找您的 EFI 分区。它将有一个标签
EFI
。挂载此分区,将其替换sdXY
为您系统的实际分区号:sudo mount /dev/sdXY /mnt/boot/efi
chroot
进入你的 Ubuntu 安装:sudo chroot /mnt
此时,您处于安装状态,而不是实时会话,并以 root 身份运行。更新 grub:
update-grub
如果出现错误或者执行到步骤 7 无法解决问题,请转至步骤 8。(否则,这是可选的。)
根据您的情况,您可能必须重新安装 grub:
grub-install /dev/sda update-grub # In order to find and add windows to grub menu.
如果一切顺利,没有错误,那么一切就完成了:
exit sudo reboot
此时您应该可以正常启动。
如果您无法正常启动,并且由于没有错误消息而未执行步骤 8,请重试步骤 8。
- 有时给 GRUB2 正确的配置为您的分区安装此文件是不够的,您必须将其安装(或重新安装)到主引导记录,步骤 8 就是这么做的。在聊天中帮助用户的经验表明,即使没有显示任何错误消息,步骤 8 有时也是必要的。
答案2
我粗略地检查了 Mee 的回答后,认为它应该是有帮助的;然而,我想从另一个层面来解决这个问题。
我要强调的最重要的一点是,你应该绝不休眠双启动系统,然后启动另一个操作系统。休眠会使文件系统处于不一致状态,因此如果另一个操作系统尝试访问它们,它们可能会被损坏。您很可能遇到过这种情况,而且损坏可能严重到足以阻止 Windows 启动。如果是这样,您可能需要重新安装 Windows —— 但这只是一种可能性,而不是确定性,甚至不是可能性,所以我不会对此进行更详细的介绍。
此外,Windows 8 及更高版本包含一项功能(称为“快速启动”),可将“关机”操作转变为休眠,因此很难避免此问题。幸运的是,可以关闭此功能。请参阅这一页和这个了解如何修复 Windows 问题。
请注意,即使你没有从 Ubuntu 明确访问 Windows 文件系统,一个分区也可能会受到影响:EFI 系统分区 (ESP)。该分区包含 Windows 和 Ubuntu 的引导加载程序,因此如果它因快速启动而损坏,则结果可能包括奇怪的启动操作,甚至无法启动任何东西。
还有一点:你可能想下载我的 USB 闪存驱动器或 CD-R 版本的rEFInd 启动管理器并准备一个介质。即使 GRUB 损坏,rEFInd 也可以启动 Ubuntu,即使 GRUB 菜单省略了 Windows 条目,它也可以启动 Windows。(/boot
但是这些功能依赖于完整有效的 ESP 和 Linux 目录;如果 ESP 因快速启动而损坏,rEFInd 可能无济于事。)一个警告:rEFInd 下载页面上的 USB 闪存驱动器和 CD-R 映像不支持安全启动,因此您可能需要禁用该功能才能以这种方式使用 rEFInd。或者,您可以将 Shim 添加到 rEFInd USB 闪存驱动器,但这需要一些努力。但关键是,在某些情况下,例如您的情况,rEFInd 可能是一个有用的恢复工具,因此拥有它可以帮助您启动至少一个操作系统,如果幸运的话,还可以修复问题。
答案3
解决您对数据的担忧:
在做其他事情之前,您应该先从 USB 闪存驱动器启动实时 Ubuntu。然后,即使操作系统损坏严重,您也可以挂载 Ubuntu 和 Windows 分区。(除非您在努力挽救分区时损坏了分区本身。)
这使得您可以在操作系统上尝试任何其他救援尝试之前将数据复制到单独的驱动器。