我按照在线教程在单独的 HDD 上安装 Windows 10 和 Linux (Arch)。这涉及到在物理上断开每个硬盘的连接,同时在另一个硬盘上安装操作系统。
我发现的唯一没有答案“使用启动修复”的线程是这个除非我已经安装了Linux。
下面是我的步骤。
- 在 BIOS 中禁用快速启动并启用 UEFI
- 创建 W10 和 ArchLabs 的 UEFI 兼容实时图像
- 断开HDD0,将W10 Home安装到HDD1上
- 断开 HDD1,将 ArchLabs 安装到 HDD0 - grub 是启动管理器
- 连接 HDD1,使用 BIOS 启动到 HDD0 - 仅 ArchLabs 被列为启动选项
- 跑步
grub-mkconfig -o /boot/grub/grub.cfg
(更新grub) - 找到 Windows
哪个输出
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
Found Windows Boot Manager on /dev/sdb2@/efi/Microsoft/Boot/bootmgfw.efi
Found memtest86+ image: /boot/memtest86+/memtest.bin
done
当我在 BIOS 中启动 HDD0 时,我在 grub 中看到 Windows 选项,但是当我选择它时,出现此错误
error: no such device: FA77-02BF.
error: disk `hd1,gpt2' not found.
Press any key to continue...
一些信息
$sudo blkid
/dev/sda1: UUID="EFA1-BD6C" TYPE="vfat" PARTUUID="f1abfa2e-8f5e-4569-88a7-ebd5ebd1a737"
/dev/sda2: UUID="a43046c3-84ec-4308-9eaf-a872f1c4300d" TYPE="ext4" PARTUUID="c1a4e499-919d-4194-890f-459418430422"
/dev/sdb1: LABEL="Recovery" UUID="58CC724CCC722482" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="78b687ea-65f2-4c5a-9e2e-211c28298378"
/dev/sdb2: UUID="FA77-02BF" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="149fbe08-56e3-4dd7-9dde-b60e668a2253"
/dev/sdb4: UUID="50F28160F2814AE4" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="1e767b54-5723-4d51-889a-48108c2547fe"
/dev/sdb3: PARTLABEL="Microsoft reserved partition" PARTUUID="be54b5e0-7701-473a-aa31-bbc8919d62ae"
fstab 尚未安装,sdb
但我不确定是否需要安装?
$cat /etc/fstab
# /dev/sda2
UUID=a43046c3-84ec-4308-9eaf-a872f1c4300d / ext4 rw,relatime,data=ordered 0 1
# /dev/sda1
UUID=EFA1-BD6C /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2
/swapfile none swap defaults,pri=-2 0 0
我认为问题在于每个硬盘都有自己的EFI分区。
$fdisk -l
Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 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
Disk identifier: 558CB70E-9540-49A2-87E9-728B9C3CDB16
Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1052672 625141759 624089088 297.6G Linux filesystem
Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 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: gpt
Disk identifier: 0676ACB7-16B9-4BBC-8030-D26B229EEF78
Device Start End Sectors Size Type
/dev/sdb1 2048 1023999 1021952 499M Windows recovery environment
/dev/sdb2 1024000 1228799 204800 100M EFI System
/dev/sdb3 1228800 1261567 32768 16M Microsoft reserved
/dev/sdb4 1261568 976773119 975511552 465.2G Microsoft basic data
目前,我可以使用 BIOS 选择我想要启动的 HDD,然后使用该 HDD 启动管理器来启动其各自的操作系统。当然,如果每次 BIOS 都启动到同一个驱动器就好了,这样我就可以通过 GRUB 选择操作系统。
答案1
如果您想在 2 个独立的硬盘上安装 Windows 和 Arch:
- 最简单的解决方案是在 UEFI 模式下安装一个操作系统(如果 Win8 或 10 在 UEFI 模式下安装),在 BIOS 模式下安装另一个操作系统,并在其中一个和另一个之间切换
:转至 BIOS/UEFI 菜单
b.更改启动模式
C.重启 - 如果您正在考虑使用 Win7 或更早版本:请在 BIOS 模式下安装并弄清楚
grub
它 - 如果您坚持对两者都使用 UEFI,您应该知道一台计算机被设计为具有一个(且只有一个)UEFI 分区,因此您应该
:在两个硬盘上保持相同的 UEFI 分区(只需将第一个硬盘的所有文件复制到第二个硬盘,将第二个硬盘的所有文件复制到第一个硬盘,因为它只是一个 分区FAT
)
让启动由 Windows 10 启动管理器以外的其他工具完成,grub
然后您需要类似的东西酶标仪这就是我运行的方式:第一个 SSD 中的 Windows 10,Linux(在我的例子中是 Ubuntu,但 Arch 和 Ubuntu 都使用grub
,所以没有区别),我的两个efi
分区都是相同的,我认为辅助efi
分区是备份第一个并隐藏 rEFInd 菜单中的重复条目。我经常到dd
1 c 。知道 rEFInd/dev/sda1
/dev/sdb1
不支持BIOS所以你可能需要安装一个电喷外壳并手动更改 UEFI NVRAM 中的启动设置,使 rEFInd 成为第一个启动的(这就是我最终所做的;不要忘记将 rEFInd 作为启动优先级 0 中第一个 HDD 上的主启动管理器并且 rEFInd 也作为第二块硬盘上的辅助启动管理器,启动优先级为 1!)
你必须读很多书,包括一些的这UEFI联盟的文档,但你会学到很多东西并且可以做到! (明显地... ;-))
注意 1:是的,这不是一个正确的命令,我知道:我不会dd
在我的任何答案中放入通用命令,这在isk estroyer 绰号dd
下最为人所知。D
D
:-)
注²:由于您没有解释为什么要尝试这样做:如果其中一个硬盘驱动器出现故障,则无法再访问另一个操作系统,因为它只存在于其中一个硬盘驱动器上,即使您有重复的efi
分区也是如此,因此,如果您正在寻求恢复能力,请改用 RAID1。
注意 ³:我想确保该EFI
分区已备份到未真正设置 rEFInd 的第二个 SSD 上,并确保 Windows 启动管理器已决不搞乱 GRUB。