我的笔记本电脑有两个硬盘 - 一个 M.2 SSD(第一个)和一个 Sata 3 SSD(第二个)。第一个硬盘包含 Fedora Linux,笔记本电脑从该硬盘启动。第二个硬盘包含 Windows 10。我不使用 UEFI,而是使用普通 BIOS。
最近我的 M.2 驱动器坏了,所以我不得不重新安装 Linux。从那时起,我就无法启动 Windows 10。
我做了一些实验,发现如果我从笔记本电脑上移除第一个驱动器,Win 10 就可以正常启动。我还可以启动 Linux,并用它qemu-kvm
来启动虚拟机/dev/sdb
,这也很好用。
启动 Windows 10 时我遇到的错误是蓝屏INACCESSIBLE_BOOT_DEVICE
。
我的 grub2 配置由 生成os-prober
,如下所示:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 10 (on /dev/sdb1)' --class windows --class os $menuentry_id_option 'osprober-chain-DED8DF58D8DF2D91' {
insmod part_msdos
insmod ntfs
set root='hd1,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1 DED8DF58D8DF2D91
else
search --no-floppy --fs-uuid --set=root DED8DF58D8DF2D91
fi
parttool ${root} hidden-
drivemap -s (hd0) ${root}
chainloader +1
ntldr /bootmgr
}
### END /etc/grub.d/30_os-prober ###
完整的 grub.cfg:https://pastebin.com/DbP8rFC3
作为参考,这是我的磁盘布局:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 489,1G 0 disk
├─sdb2 8:18 0 299,8G 0 part
├─sdb3 8:19 0 97,7G 0 part
└─sdb1 8:17 0 500M 0 part
sda 8:0 0 238,5G 0 disk
└─sda1 8:1 0 200G 0 part /
sda 是我的主 Linux 驱动器。sdb2 是另一个 SSD 驱动器,其中 db1 是 500M Windows 系统启动分区,sdb2 是我的 Windows 数据存储,sdb3 只是一个 Linux 数据分区,我用它来保存一些虚拟机以节省一些空间。
以下是 的输出blkid
:
/dev/sda1: UUID="a65aced8-4dd6-410c-b42d-92b5f66fa15e" TYPE="ext4" PARTUUID="7a2436a8-01"
/dev/sdb1: LABEL="ZastrzeM-EM-<one przez system" UUID="DED8DF58D8DF2D91" TYPE="ntfs" PARTUUID="7a2436a8-01"
/dev/sdb2: UUID="7CA0E642A0E6028E" TYPE="ntfs" PARTUUID="7a2436a8-02"
/dev/sdb3: UUID="68e2ae68-dfaa-4317-ac95-494917a12543" TYPE="ext4" PARTUUID="7a2436a8-03"
我当前的 grub 配置中可能缺少什么(我以前的 Linux 安装中有这些配置)?
答案1
原因:你可能在同一个分区上安装了 Linux 和 Windows。如果你想要双启动,你不能在同一个分区上安装两个操作系统
修复:创建第二个分区并在那里安装 Windows。然后在 Windows 上安装 easybcd 程序以重新创建好的 grub
希望它可以帮助任何人