因此,我在双启动(每个操作系统都有自己的硬盘)Win10/Ubuntu 16.04 UEFI PC 上运行 GRUB2(v2.02 beta 3.6ubuntu3.9)。创建了所有 Win10 C:\ 分区(3;221GB GPT、99MB FAT32、451 未分配)的 Macrium Reflect(“MR”)备份映像。
恢复 C 盘 (disk3) 映像后,GRUB2 菜单消失。因为它是 NVMe(例如,GRUB2 不在 sda1 上,而是在 nvmeOn1p1 上)发布的解决方案不会起作用。同样,对具有 Linux 主分区和根分区(硬盘上的 SWAP)的 N:\ 驱动器 (disk0;ssd) 进行“裸机”恢复不会恢复 GRUB2。
需要重新安装 Linux 才能恢复 GRUB2。使用 Reflect、Acronis 和 Lazesoft 映像软件时会发生这种情况。尝试通过 EasyUEFI 备份,但也失败了。在映像恢复后,有没有更好的方法可以恢复 GRUB2?
澄清:
我通过映像软件(例如 Macrium Reflect)备份了 SSD 上的所有分区。当我需要恢复操作系统时,我会从 WinPE usb 或 USBLinux 启动并从映像 (MR) 文件安装映像,以便将驱动器恢复到以前的状态。
自从安装了 Ubuntu 16.04 后,我就开始双重启动。尽管重新安装了两个操作系统映像(NVMe C:\(磁盘 3)上的 Win10 和 N:\(磁盘 0)上的 Ubuntu),但 GRUB2 无法恢复。GRUB2(和 Linux)安装在磁盘 0(MBR)上,但据我了解,GRUB2 的一部分也位于磁盘 3 的 EFI 系统分区上。
因此,要么 GRUB2 隐藏在某个地方,以致于映像软件无法复制它,要么它需要类似“grub-update”命令来重新激活它,我不知道。我能够获得原始 GRUB2 的唯一方法是将 Linux 从实时 Linux usb 重新安装到 disk0 ssd 上。 这就是问题所在——每当我必须恢复备份操作系统映像时,GRUB2 就会消失。 我想在磁盘映像中捕获 GRUB2(并能够通过映像重新安装它)或者找到另一种方法来备份 GRUB2,这样我就不必每次恢复 Win10 或 Linux 的备份映像时都重新安装 Linux。
抱歉,帖子太长了。我原本希望用三段简短的文字描述这个问题,但希望上面的说明能提供 Android Dev 所要求的详细信息。
谢谢!
系统信息:
**Secure Boot & Fast Boot: Disabled**
Summary
Operating Systems:
Windows 10 Pro 64-bit/Ubuntu 16.04 64-bit
CPU
Intel Core i7 4790 @ 3.60GHz 38 °C
Haswell 22nm Technology
RAM
16.0GB Dual-Channel DDR3 @ 780MHz (9-9-9-24)
Motherboard
ASUSTeK COMPUTER INC. Z97-A (SOCKET 1150) 28 °C
Graphics
ASUS VE278 (1920x1080@59Hz)
Dell E193FP (1280x1024@60Hz)
2048MB ATI AMD Radeon HD 7800 Series (Sapphire/PCPartner) 43 °C
Storage
119GB Samsung SSD 840 PRO Series (SSD) 29 °C
1863GB Seagate ST32000641AS (SATA) 36 °C
3726GB TOSHIBA HDWQ140 (SATA) 34 °C
232GB Samsung SSD 960 EVO 250GB (Unknown)
3GB Samsung SSD 840 PRO Series (SSD) 29 °C
嗨,oldfred,非常感谢您的帮助。这是 efibootmgr 的结果:
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0002,0001,003B,003E,0044,0045,0046
Boot0000* ubuntu HD(1,GPT,2087d7-5dc8-4038-a9c1-90939c232,0xe1800,0x31800)/File(\EFI\UBUNTU\SHIMX64.EFI)
Boot0001* Windows Boot Manager HD(1,GPT,287d7-5dc8-4038-a9c1-9d969c232,0xe1800,0x31800)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...d................
Boot0002* Windows Boot Manager HD(1,GPT,20887dc7-5dc8-4038-a9c1-9d09639c2322,0xe1800,0x31800)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...d................
Boot003B* UEFI: (NTFS) Lexar USB Flash Drive PciRoot(0x0)/Pci(0x14,0x0)/USB(21,0)/HD(1,MBR,0x104,0x800,0x3b9e800)..BO
Boot003E* Windows Boot Manager PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/NVMe(0x1,00-25-38-57-71-B0-F8-84)/HD(1,GPT,20887dc7-5dc8-4038-a9c1-9d09639c2322,0xe1800,0x31800)..BO
Boot0044* Windows Boot Manager PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/NVMe(0x1,00-25-38-57-71-B0-F8-84)/HD(1,GPT,2087c7-5dc8-4038-a9c1-90969c2322,0xe1800,0x31800)..BO
Boot0045* ubuntu PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/NVMe(0x1,00-25-38-57-71-B0-F8-84)/HD(1,GPT,20887dc7-5dc8-4038-a9c1-9d0939c232,0xe1800,0x31800)..BO
Boot0046* ubuntu HD(1,GPT,2087dc7-5dc8-4038-a9c1-9d06392322,0xe1800,0x31800)/File(\EFI\UBUNTU\GRUBX64.EFI)..BO
来自 blkid:
device fs_type label mount point UUID
-------------------------------------------------------------------------------
/dev/nvme0n1
(in use)
/dev/nvme0n1p1
vfat /boot/efi 2A4B-F383
/dev/nvme0n1p2
ntfs 960NVMe (not mounted) EE60D3E6040F31
/dev/sda1 ext4 (not mounted) 08bd78-3292-473f-a132-8b62dc7b1
/dev/sda2 ntfs QA /media/gks/QA 64DA7D8DA5C8
/dev/sda3 ext4 / 1ca465-6375-402c-be7d-4c7eb840e
/dev/sda4 ext4 /home b467e3d-a581-4335-981b-bb7c0d23e
/dev/sdb1 ntfs WindowsPAGE (not mounted) 6EEAFF83EA8B
/dev/sdb2 ntfs BackUp (not mounted) E862507262504788
/dev/sdb4 swap [SWAP] cbd8ffa2-1c86-42c4-bead-64d6ab7bf82a
/dev/sdb5 ntfs ASUSHDD2E (not mounted) 01CCE805006500
/dev/sdb6 ntfs ASUSHDD2D (not mounted) 01CCE687CD6DC0
/dev/sdc1 (not mounted)
/dev/sdc2 ntfs Toshiba4 (not mounted) 26E4D4EED61FBB
/dev/sdd1 ntfs
答案1
你应该能够使用我的rEFInd 启动管理器在 USB 闪存驱动器或 CD-R 上。(该链接提供两种媒体类型的可下载图像。)有一个警告:我提供的图像不支持安全启动,因此您可能需要禁用该功能(如果您愿意,可以暂时禁用)。使用 rEFInd 启动常规安装后,您的恢复选项会变得更加简单,当然,您可以在找出长期解决方案的同时使用系统进行实际工作。
有可能发生以下两种情况之一或同时发生:
- ESP 备份/恢复不完整-- 在基于 EFI 的系统上,EFI 系统分区 (ESP)保存 EFI 引导加载程序。如果 ESP 未备份、未恢复或备份或恢复不完整,则系统将无法启动。听起来 Windows 仍在启动,所以我怀疑这是否是发生在您身上的事情,但可以想象 Windows 备份软件没有备份或恢复 GRUB。您可以通过在 ESP 上查找 GRUB 来检查这一点。在 Ubuntu 安装中,它应该位于
EFI/ubuntu/grubx64.efi
ESP 上(至少有两个其他支持文件shimx64.efi
和grub.cfg
,位于同一目录中)。 - NVRAM 条目损坏或无效--
efibootmgr
oldfred 请求的输出显示了控制启动过程的 NVRAM 条目。您有三个条目ubuntu
,其中一个引用shimx64.efi
,另一个引用grubx64.efi
,第三个未明确引用任何文件。引用shimx64.efi
(Boot0000
) 的条目在启动顺序中排在第一位,这意味着它应该可以正常工作;但是,NVRAM 条目仍有可能损坏。具体来说,您的输出指的是该条目的 GUID 值为 2087d7-5dc8-4038-a9c1-90939c232 的分区,而其他两个ubuntu
条目的 GUID 值则为两个。您说您更改了看起来像序列号的内容,所以我猜您更改了这些值。(这是不必要的,而且使我们更难诊断您的问题。从安全角度来看,这些 GUID 值并不敏感。)无论如何,备份/恢复操作可能已经更改了分区 GUID 值。如果是这样,这些条目可能无效,您需要更改分区的 GUID 值以匹配 NVRAM 中的内容(您可以使用 执行此操作sgdisk
,例如sudo sgdisk -u 1:2087d7-5dc8-4038-a9c1-90939c232 /dev/nvme0n1
将 分区 1 的 GUID 更改/dev/nvme0n1
为 2087d7-5dc8-4038-a9c1-90939c232)或创建一个新的 NVRAM 条目(您可以通过输入 来执行此操作sudo efibootmgr -c -d /dev/nvme0n1 -l \\EFI\\ubuntu\\shimx64.efi -L ubuntu
)。根据您的流程,您可能更喜欢在 Windows 中使用bcdedit
或简易UEFI,如所述这里。其他更隐蔽的 NVRAM 损坏类型或 NVRAM 与现实不同步的情况也是可能的。
除了用上述方法之一解决问题外,还有一种“强力”方法,即重新安装 GRUB(或其他引导加载程序)。在 Ubuntu 中,最常见的方法是使用靴子修理,但还有其他方法,例如手动重新安装,sudo grub-install
然后sudo update-grub
安装 rEFInd 的 Debian 包或 PPA。
还有一点:你的问题表述方式听起来好像你正在重复执行此恢复操作。通常情况下,情况并非如此;你可能(也应该)定期创建备份,但很少恢复它们。经常进行此类恢复的一个原因是你正在进行大规模部署,例如为办公室或教室部署一堆计算机。如果是这种情况,请注意,任何从未安装过 Ubuntu 的目标系统都不会有用于启动 Ubuntu 的 NVRAM 条目。因此,“损坏或无效的 NVRAM 条目”项目将总是适用于这样的系统,即使它不是测试系统上出现问题的原因。
最后,如果你想更好地理解 EFI 启动过程以及如何处理它,我推荐以下阅读清单:
- Adam Williamson 的博客文章介绍了 EFI 的工作原理—— 本页描述了 EFI 模式启动背后的理论。
- Superuser.com 上关于 BIOS 和 EFI 启动之间的区别的问答—— 这提供了前面内容的基础,但更加简洁。
- 我的关于在 EFI 系统上安装 Linux 的页面—— 与 Adam Williamson 的博客相比,此页面对 EFI 模式启动进行了更实用的介绍。
- 我的 Linux EFI 引导加载程序页面—— 本页介绍了 Linux 系统的 EFI 引导加载程序选择。
答案2
抱歉后续跟进延迟。不速之客飓风伊尔玛来袭。
感谢大家的评论。Rod,我一定会查看你的解决方案和阅读清单。
对于那些遇到上述问题的人来说,这只是一个简短的总结。我已经想出了一个方法,到目前为止,它可以解决这个问题。
让我们从使用的软件开始。目前,我正在使用 Lazesoft Recovery Suite Professional 进行 Win10 和 Ubuntu 的映像备份。
制作映像后,Lazesoft 将允许对部分或所有分区进行映像。我对所有可用分区进行映像。重要的是,当我需要恢复映像时,我不会恢复 Lazesoft 称为 MBR 的分区(即使两个驱动器都是 GPT)。如果未选中此恢复选项,GRUB2 很可能会继续显示启动选项。
如果尽管执行了上述操作,GRUB2 仍未出现,请确保 UEFI 启动优先级没有改变。具体来说,启动顺序中的第一个项目应该是 nameofyourNVMe ubuntu 之类的内容。有时,此选项将被降级为 ubuntu、Windows Boot Loader 等。
另外,我的华硕有一个仅 UEFI 或 UEFI 和 OPROM 的启动设备条目(或类似指传统设备的内容)。由于 Lazesoft 格式化为 FAT32,因此必须有后者选项才能从 USB 驱动器启动。