移除外接SSD后GRUB无法正常加载,安全迁移GRUB至内置SSD的求助
移除外接SSD后GRUB无法正常加载,安全迁移GRUB至内置SSD的求助
我内置SSD上安装了主Windows系统,外接SSD上则装了副Windows和Ubuntu系统。平时我主要用两个Windows,偶尔用Ubuntu。因为副Windows在外接SSD上,之前要启动它的话,得先进入Windows启动管理器,再选择对应的系统(我知道可以设置默认启动项)。但问题是每次选完都会重启电脑(我猜这是正常机制),然后才能进入副Windows。
我一直找不到在初始启动前直接选择系统的方法,所以改用了GRUB引导器。现在开机就能看到系统选择界面(而且GRUB的自定义功能我很喜欢),可以快速启动副Windows和Ubuntu——之前用Windows启动管理器的时候,要进BIOS才能启动Ubuntu。为了方便,我在BIOS启动顺序里把Ubuntu引导器设为了首选。
现在一切都很完美,唯独当外接SSD不在的时候,我必须进BIOS才能登录主Windows——GRUB加载失败,只会显示一个空白的Linux终端界面,每次都得手动进BIOS选Windows启动项才行(当然我可以把Windows启动管理器改回首选,但我不想退回到之前的状态)。
我目前的认知
- 安装GRUB时,它会被安装到第一个EFI分区,但
/boot文件存储在外接SSD上。所以当外接SSD不在时,GRUB能加载,但找不到配置文件,导致失败。 - 如果能把GRUB配置文件移到内置SSD上,就能在没有外接SSD的情况下使用GRUB引导,并且正常启动主Windows。
我的疑问
我了解到可以把GRUB安装到内置ESP(EFI系统分区)上,但我完全不想丢失内置SSD上的任何数据:
- 把GRUB安装到内置ESP会删除分区上已有的数据吗?
- 这会影响Windows启动管理器吗?我希望只是添加GRUB引导项,而不是替换掉原来的Windows引导。
我的磁盘配置
外接SSD(Linux识别为/dev/sda)
Model: Samsung PSSD T7 (scsi) Disk /dev/sda: 1000GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 17.4kB 16.8MB 16.8MB Microsoft reserved partition msftres 2 16.8MB 367GB 367GB Basic data partition msftdata 3 367GB 367GB 273MB fat32 EFI System Partition boot, esp 6 367GB 734GB 367GB ntfs Ext Shared msftdata 7 734GB 839GB 105GB ext4 Linux system 5 839GB 983GB 144GB ext4 Ub-Home 4 983GB 1000GB 16.8GB linux-swap(v1) Swap swap
内置SSD(Linux识别为/dev/nvme0n1)
Model: PM9A1 NVMe Samsung 512GB (nvme) Disk /dev/nvme0n1: 512GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 200MB 199MB fat32 EFI system partition boot, esp 2 200MB 334MB 134MB Microsoft reserved partition msftres 3 334MB 493GB 492GB Basic data partition msftdata 4 493GB 494GB 1038MB ntfs hidden, diag 5 494GB 511GB 16.8GB ntfs hidden, diag 6 511GB 512GB 1488MB ntfs
备注:内容来源于stack exchange,提问作者oraterlee
相关产品推荐
相关产品推荐

