![GRUB 安装在两个设备上,如何选择一个进行启动?](https://linux22.com/image/895244/GRUB%20%E5%AE%89%E8%A3%85%E5%9C%A8%E4%B8%A4%E4%B8%AA%E8%AE%BE%E5%A4%87%E4%B8%8A%EF%BC%8C%E5%A6%82%E4%BD%95%E9%80%89%E6%8B%A9%E4%B8%80%E4%B8%AA%E8%BF%9B%E8%A1%8C%E5%90%AF%E5%8A%A8%EF%BC%9F.png)
如果这是重复的,非常抱歉,我读过的大多数帖子都推荐以下变体:
sudo grub-install /dev/sdX
sudo update-grub
我思考这不是我的问题。
我有一个主硬盘,上面/dev/sda
安装了 Ubuntu 和 Windows 一段时间。我最近插入了一个 SSD /dev/sdb
,并在其中一个分区上安装了 Ubuntu。两台设备上均安装了 GRUB,从摘要中可以看出启动信息脚本(没关系/dev/sdc
,这是一个外部驱动器):
Boot Info Script 0.61 [1 April 2012]
============================= Boot Info Summary: ===============================
=> Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of
the same hard drive for core.img. core.img is at this location and looks
in partition 97 for .
=> Grub2 (v1.99) is installed in the MBR of /dev/sdb and looks at sector
92576960 of the same hard drive for core.img. core.img is at this location
and looks in partition 97 for .
=> Windows is installed in the MBR of /dev/sdc.
我想选择/dev/sdb
作为默认启动设备(即,当计算机启动时,使用 GRUB/dev/sdb
而不是当前/dev/sda
),是否有可能做到这一点?
有关分区的更多信息如下。我的主要 HDD 是dos
磁盘类型,而我用 格式化了我的 SSD gpt
。
Drive: sda _____________________________________________________________________
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Partition Boot Start Sector End Sector # of Sectors Id System
/dev/sda1 * 2,048 12,290,047 12,288,000 27 Hidden NTFS (Recovery Environment)
/dev/sda2 12,290,048 524,290,047 512,000,000 7 NTFS / exFAT / HPFS
/dev/sda3 1,543,925,760 1,953,523,711 409,597,952 5 Extended
/dev/sda5 1,666,809,856 1,789,689,855 122,880,000 83 Linux
...
和
Drive: sdb _____________________________________________________________________
Disk /dev/sdb: 978.1 GiB, 1050214588416 bytes, 2051200368 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Partition Boot Start Sector End Sector # of Sectors Id System
/dev/sdb1 1 2,051,200,367 2,051,200,367 ee GPT
GUID Partition Table detected.
Partition Start Sector End Sector # of Sectors System
/dev/sdb1 2,048 270,338,047 270,336,000 Data partition (Linux)
/dev/sdb2 270,338,048 540,674,047 270,336,000 Data partition (Linux)
...
答案1
如何执行此操作与系统密切相关。您必须进入固件设置实用程序(通常在打开计算机后立即按下 Del、F2 或其他系统特定键)并找到更改默认启动设备的选项。该选项的位置和名称因计算机而异;它没有标准化。如果您需要帮助,您应该查阅手册,致电计算机(或主板)制造商,或在制造商特定的论坛上发帖。您可能还想详细说明为什么要更改启动磁盘。通常,如果您从 GUID 分区表 (GPT) 磁盘启动,就像您的一样/dev/sdb
,在 BIOS/CSM/传统模式下,该磁盘必须具有BIOS 启动分区,而这正是你/dev/sdb
缺乏的。因此,我不清楚更换启动盘是否有用,甚至可能产生新的问题。了解你为什么要更换启动盘将有助于我们为你提供有用的建议,而不是让你陷入更深的困境的建议。
话虽如此,我建议您先退一步,因为还有一个更大的问题:您是在 BIOS/CSM/传统模式还是 EFI/UEFI 模式下启动?您发布的输出表明您很可能是在 BIOS 模式下启动的,但这种启动模式每天都在变得越来越不常见。绝大多数预装 Windows 8 及更高版本的计算机默认以 EFI 模式启动,尽管大多数计算机可以重新配置为以 BIOS 模式启动。我认为您大概在 BIOS 模式下启动时,你的/dev/sda
磁盘是 MBR 磁盘,没有任何EFI 系统分区 (ESP),虽然你的第二个磁盘使用 GPT,但它也没有 ESP。(BIOS 模式启动是通常从 MBR 磁盘完成,并且 EFI 模式启动是通常从 GPT 磁盘完成。)请注意,每个磁盘第一个扇区中 BIOS 模式引导加载程序的存在并不是真正的诊断;如果重新安装了操作系统或引导加载程序,或者将磁盘从 BIOS 启动计算机移动到 EFI 启动计算机,就会发生这种情况。
如果计算机以 EFI 模式启动,它实际上并不像基于 BIOS 的计算机那样从磁盘启动。在 EFI 模式下,指向引导加载程序的指针文件存储在 NVRAM 中。这些文件可以以类似于基于 BIOS 的计算机识别其启动盘的方式指定。一个磁盘上可以有十几个启动加载器文件,而另一个磁盘上没有;或者每个磁盘有几个;或者每个磁盘一个;或者任何其他组合。如果您考虑识别“启动盘”,您可能会感到困惑。
有关此问题的更多信息,请参阅我的关于确定启动模式的页面。正如我所说,您的计算机很可能是在 BIOS 模式下启动的。我之所以反复强调这一点,是因为许多人跳过了这个问题,并因此而导致问题。Sheljohn,我试图阻止这种情况发生在其他人身上,因为他们可能比您更频繁地阅读这个问题。
最后一点是,如果您的计算机是基于 EFI 的,但以 BIOS/CSM/传统模式启动,则应该可以将其转换为以 EFI 模式启动。这样做的麻烦可能大于回报,特别是如果这是一台双启动计算机(看起来是这样);但是,由于您要更改启动磁盘,因此可以想象,通过更改启动模式可以更好地完成您想要做的事情。