今天早些时候,我的计算机的启动驱动器上顺利安装了 Windows 10 和 Ubuntu 16.04。
我可以选择通过 GRUB 启动 Ubuntu 还是 Windows。我还可以在 VMWare Workstation 中以虚拟机的形式启动 Ubuntu。
今晚我愚蠢地sudo apt-get dist-upgrade
在 Ubuntu 内部运行了该命令,而当时它正在 Windows 中作为虚拟机运行。
这发生了一些非常奇怪的事情。我不知道是什么,但是当它试图更新 GRUB 时,它完全崩溃了。
我重启了 Windows,结果出现了一个奇怪的 GRUB 屏幕;正常的 grub 屏幕,但@
菜单周围有符号形成边框。选择 Windows 或 Ubuntu 会导致错误Error: Command not found, press any key to continue
。按任意键都会回到主 GRUB 菜单。
所有内容都已备份,我可以使用我的 Macrium live cd 查看我的启动驱动器。
它有以下分区:
1 - System Reserved = 100MB = This is something to do with Windows, but what? The UEFI bios?
2 - Boot (C:) = 83GB = This is where Windows 10 is installed
4 - (None) = 19.99GB = This where Ubuntu is installed
5 - (None) = 7.94GB = No idea what this is. 8 gb? Completely filled as well. What is this partition?
3 - (H:) = 450MB = No idea what this is.
那么我应该运行什么来将 grub 恢复到此驱动器?我知道我需要启动我的可启动 Ubuntu pendrive 并运行grub-install /dev/xxxxx
,但是我不确定要替换什么xxxxx
。
我使用名为“启动修复”的 ubuntu 应用程序扫描了我的驱动器,它给了我以下结果。
"blkid" output: ________________________________________________________________
Device UUID TYPE LABEL
/dev/loop0 squashfs
/dev/sda1 42F031C2F031BCCB ntfs Current
/dev/sdb1 9834F5D734F5B7F8 ntfs Archive
/dev/sdc1 7A900F02900EC51B ntfs System Reserved
/dev/sdc2 62BA1027BA0FF5F7 ntfs Boot
/dev/sdc3 8C009F66009F55D4 ntfs
/dev/sdc5 7d735d0f-0066-414d-88ad-2c49d8b7bbba ext4
/dev/sdc6 e2a27db6-9029-4cf6-903b-5403f64dc38d swap
/dev/sdd1 02FE-C63F vfat UUI
/dev/sr0 2016-03-02-11-04-09-00 udf RESCUE
我认为我需要grub-install /dev/sdc2
以“Boot”的身份运行,这是我对启动驱动器的称呼,但我真的不确定,而且我不想损坏任何东西,所以我想确认一下。如果有人能告诉我我的神秘分区(在我的第一个表中标记为 和 )是什么,System Reserved
我None
也会H
很感激。
基本上,这归结为我应该提供什么路径grub-install
来重新安装 grub,如果这甚至是解决我的启动问题的方法?
答案1
问题是sdX
你应该使用哪一个,而不是哪个sdcY
。如果sda
和sdb
是“数据驱动器”,那么它应该是sdc
。指定的设备是 grub 将其启动代码/核心映像放在其中,通常应该是 MBR 以及它与启动磁盘的第一个分区之间的后 MBR 间隙。
更大的问题是 grub 模块等将安装到哪里。这是通过选项 指定的--boot-directory
,其默认值为/boot
。就你的情况而言,我没有看到你有一个单独的分区,因此你需要sdc5
在实时环境中挂载(例如/mnt
)。然后你可以运行:
grub-install --boot-directory /mnt/boot /dev/sdc
或者,如果你能设法 chroot 到/mnt
:
grub-install --boot-directory /boot /dev/sdc
由于它是隐含的,因此--boot-directory /boot
可以省略。
您可能还需要明确指定,--target i386-pc
以防grub-install
您的系统具有 UEFI 而不是 BIOS,并且您的实时环境以某种方式以 UEFI 模式启动,而不是像启动盘上的系统那样的传统模式(因为它没有 EFI 系统分区,从技术上讲应该始终是 FAT12/16/32)。
您可能需要运行update-grub
以grub-install
确保grub.cfg
其正确。与 不同grub-install
,update-grub
据我所知必须在 chroot 中运行。
1 - 系统保留 = 100MB = 这与 Windows 有关,但是什么?UEFI bios?
系统保留区就像/boot
Linux 中的一个分区。它包含 Windows 启动文件(Windows 启动管理器、BCD 存储...)的副本。通常它还包含 Windows 恢复环境。它主要针对 BitLocker 加密的系统卷 ( C:
) 和 Windows 多重启动进行分隔。
5 - (无) = 7.94GB = 不知道这是什么。8 GB?也完全填满了。这个分区是什么?
显然是swap
分区。
3 - (H:) = 450MB = 不知道这是什么。
可能是一些过时的 OEM 恢复分区。我敢打赌它原本更大,并且包含一个完整的系统恢复映像,但自从你升级到 Windows 10 左右以来,它已被删除,并且分区缩小了(据我所知,磁盘清理也有一个选项可以完成此操作)。