首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >把我的引导器搞得一团糟

把我的引导器搞得一团糟
EN

Ask Ubuntu用户
提问于 2020-12-14 10:13:52
回答 2查看 274关注 0票数 0

我的配置很复杂。我在试着合成:

我有4个磁盘(1个ssd、2个nvme和1个硬盘)和4个OSs (3 Win10和1个ubuntu):

  • Nvme 1 (Win10-1 + Ubuntu 20.04) /dev/nvme0n1
  • Nvme 2 (Win10-2) /dev/nvme1n1
  • HDD 1(仅限data+swap) /dev/sda
  • SSD 1 (Win10-3) /dev/sdb

这台电脑是UEFI。

一开始我没什么问题。Grub显示了我的4个启动选项。

但是我不得不重新安装Win10 10-1,然后我完全失去了我的食物。因此,我只能在Win10-1或Win10-2上通过windows引导管理器启动。

我试着在一个活生生的乌本图上修复格鲁布的启动,但是用一些缓和的成功.在这里,实际行为:

代码语言:javascript
复制
Boot 
|_______Grub
        |______*Ubuntu > boots Ubuntu
        |______*Windows Boot manager on /dev/nvme1n1
                |_______Windows Boot Manager GUI
                        |______*Win10-1 > boots Win10-1
                        |______*Win10-2
                                |_______Grub
                                        |______*Ubuntu > Grub rescue
                                        |______*Windows Boot manager on /dev/nvme1n1 > boots Win10-2

所以对我来说真是一团糟,顺便说一句,我失去了在Win10 10-3上启动的能力.

我不知道如何在MBR中删除这个混乱的启动配置,然后回滚到以下内容:

代码语言:javascript
复制
Boot 
|_______Grub
        |______*Ubuntu > boots Ubuntu
        |______*Windows Boot manager on /dev/nvme0n1 > boots Win10-1
        |______*Windows Boot manager on /dev/nvme1n1 > boots Win10-2
        |______*Windows Boot manager on /dev/sdb > boots Win10-3

有一个神奇的工具来配置这个吗?

任何帮助/建议都将得到接受。

--编辑1--谢谢你的回答WaterOfDark

我已经经历过这个过程,但没有运气。

此外,Win3也不是什么大事,因为我可以使用EFI选择引导它。我在Nvme1、Nvme2和SSD1上也有3个EFI分区。

也许问题来自于这些分区?也许我可以在某种程度上重置EFI部分的内容,然后再运行更新-grub?

我必须承认,我对EFI的事情并不是很放心。

-编辑2

我确认Windows快速启动是禁用的

--编辑3

下面是命令的结果:下面是结果

代码语言:javascript
复制
willy@Ubuntu:~$ sudo efibootmgr
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0002,000A,0000,0008,0006,000B,0007
Boot0000* Windows Boot Manager
Boot0002* ubuntu
Boot0006* UEFI: SAMSUNG SSD 830 Series, Partition 2
Boot0007* UEFI: Sabrent Rocket 4.0 1TB, Partition 1
Boot0008* Windows Boot Manager
Boot000A* ubuntu
Boot000B* UEFI OS
willy@Ubuntu:~$ sudo dmidecode -t0 | grep -Ei "BIOS boot|UEFI"
        BIOS boot specification is supported
        UEFI is supported
EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2020-12-17 14:37:33

首先,感谢大家为我指出正确的道路,这给了我很好的线索。经过对这个问题的大量阅读,我对这个主题有了更好的理解。

以下是我如何进行的详细说明:

在Ubuntu中,我使用Nvme2 I格式完全删除了Nvme1上的EFI分区。(带引导标志)

然后在终端:sudo gedit /etc/fstab中替换EFI分区的UID。它的形成方式发生了变化。行应该类似于这个UUID=1A2B-3C4D /boot/efi vfat defaults 0 1,保存fstab,然后挂载EFI分区sudo mount /boot/efi并重新安装grub sudo grub-install

现在,在重新启动之后,UEFI条目不再混乱,但只有一个条目: Ubnutu。这里不再有Windows,所以我必须为Windows重新创建EFI条目

在我发现的许多指南中,它说要使用Windows启动修复工具,但是:

  1. 这对我没用(也许是因为格鲁布?)
  2. 我不知道它到底是干什么的,也不知道.

所以我手动做了:

在Windows10安装媒体上启动>选择语言>修复计算机>高级选项>疑难解答>命令提示

使用磁盘部件,我安装并添加一个字母到EFI分区。

代码语言:javascript
复制
diskpart
diskpart>list vol            (to display assigned letter to partitions and volume numbers)
diskpart>sel vol 4           (volume number of the EFI partition)
diskpart>assign letter=Z:    (or other available letter)
diskpart>exit

然后使用bcdboot在EFI分区中创建Windows条目

代码语言:javascript
复制
bcdboot D:\Windows /l fr-fr /s Z: /f UEFI                (D is the letter of the partition with the first Windows system to boot, here Win10-1)
bcdboot E:\Windows /l fr-fr /s Z: /f UEFI /d /addlast    (E is the letter of the partition with the first Win10-2 system)
bcdboot F:\Windows /l fr-fr /s Z: /f UEFI /d /addlast    (F is the letter of the partition with the first Win10-3 system)

当重新启动时,UEFI选择中现在有2种选择: Grub或Windows引导管理器,但是grub仍然不了解Windows。最后,在Ubuntu上最后一次启动并执行sudo update-grub

以下是启动时的实际行为:

代码语言:javascript
复制
Boot 
|_______Grub
        |______*Ubuntu > boots Ubuntu
        |______*Windows Boot manager on /dev/nvme0n1
                |_______Windows Boot Manager GUI
                        |______*Win10-1 > boots Win10-1
                        |______*Win10-2 > boots Win10-2
                        |______*Win10-3 > boots Win10-3                       

为了更清晰起见,我们可以使用bcdedit在WBM中重命名条目。

在任何Windows命令提示符中:

代码语言:javascript
复制
bcdedit (to list entries and not identifiers)
bcdedit /set {identifier} description "My Custom Windows"

现在开始清理干净了。但是我必须通过Grub,然后是,才能在任何Windows上启动。所以我继续玩!

我在Nvme1上重新格式化了EFI分区,在Nvme2上创建了一个新的分区,在SSD1上创建了一个新的分区(FAT32分区100Mo,带有Gparted的“引导”标志)。

在Nvme1 /boot/EFI上安装Grub。

在Windows10安装介质中,按照与上面相同的方式,安装每个EFI分区,并在每个分区上添加相关的EFI条目:

代码语言:javascript
复制
bcdboot D:\Windows /l fr-fr /s Z: /f UEFI /d /addlast    (D is system Win10-1 and Z EFI on Nvme1)
bcdboot E:\Windows /l fr-fr /s Y: /f UEFI /d /addlast    (E is system Win10-2 and Y EFI on Nvme2)
bcdboot F:\Windows /l fr-fr /s X: /f UEFI /d /addlast    (F is system Win10-3 and X EFI on SSD1)

最后在重新启动后从Ubuntu执行update-grub。现在是这样的行为:

代码语言:javascript
复制
Boot 
|_______Grub
        |______*Ubuntu > boots Ubuntu
        |______*Windows Boot manager on /dev/nvme0n1 > boots Win10-1
        |______*Windows Boot manager on /dev/nvme1n1 > boots Win10-2
        |______*Windows Boot manager on /dev/sdb > boots Win10-3

此外,我现在可以从UEFI选择启动任何系统,如果我丢失了Nvme1磁盘,我仍然可以从其他磁盘启动。

希望这本小说能对其他人有用。

票数 1
EN

Ask Ubuntu用户

发布于 2020-12-14 13:38:54

我也遇到了类似的问题,我通过linux实时版本更新了grub加载程序,解决了这个问题。但首先,我建议让Win-3操作系统再次运行。为了你的胜利-3,我会假设你已经删除了引导标志以某种方式。比恢复它的最简单的方法,是拔掉所有其他的“工作”操作系统,以便只有连接到win-3的硬盘驱动器(SSD1)使用windows恢复工具(如果正常引导没有启动修复工具,则使用windows活动系统,如果只有win-3驱动器被连接)来修复引导标志。在此之后,再次连接所有内容并更新grub。

在Win-3开始工作后,可以从linux实时系统更新grub。这是一个很好的详细说明,您可以找到这里。只需确保选择正确的分区,因为您有两个操作系统在同一硬盘驱动器。

编辑:

好吧,我想这是一种特殊的东西。我找到了一些在这里提供有用的信息,但它们是德语的。使用活动或安装的系统更详细地检查sitatuion以读取NVRAM。

代码语言:javascript
复制
sudo apt-get install efibootmgr 
...
sudo efibootmgr -v 
Boot0002* Ubuntu    HD(1,800,32000,34911255-cfd8-43ce-a600-fb43636a9c2c)File(\EFI\trusty\shimx64.efi)

Boot000X只是在增加数量,并将其标记为活动的,所以您应该得到至少2个带有星号的条目,如果正常磁盘也被测试的话,至少应该得到4个条目。

您可以运行sudo dmidecode -t0 | grep -Ei "BIOS boot|UEFI"来查看您的UEFI是否支持CSM (如果是,它将支持bios和UEFI)。

任何问题都可能是,窗口检查中的第一个请求是否是Windwos,如果不是,它将删除它并替换为它自己的引导标志。防止这种情况的建议是先把它放在一边,然后禁用它。但我想这只适用于1 windosOS。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1299998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档