我使用Solus Linux进行了双引导Windows 10的系统设置;但是,在我的一个辅助驱动器(最后删除了它,Windows在没有它的情况下工作了一段时间)出了一些问题之后,尝试在GRUB中引导Windows产生了一个我不记得的错误,我不得不通过终端更新Solus,以便正确引导它(如果我记得正确的话)。现在,Solus的靴子很好,但是Windows根本没有出现在GRUB中,在研究和尝试了几个小时的解决方案之后,我觉得自己的头撞在了砖墙上。我见过的、推荐的和尝试过的东西,但都没有用:
os-prober 和update-grub*来自动修复它。**开始时,我收到了一个声明WARNING: Failed to connect to lvmetad. Falling back to device scanning.的错误。一旦我通过重新启动lvmetad服务解决了这个问题,它就不会输出任何东西,GRUB会说它更新了它的配置,但仍然没有任何Windows。fs-uuid,但最终得到了它。但是,我始终无法让hints_string正常工作,总是收到错误grub-probe: warning: unknown device type nvme0n1.。此外,我无法在我的Windows安装中找到我应该拥有的/EFI/Microsoft/Boot/bootmgfw.efi,相反,当我试图访问另一个不存在的位置时,发现bootmgfw.efi位于/Windows/Boot/EFI/bootmgfw.efi并收到一个错误。尽管存在这些障碍,但我还是按下并添加了以下内容,作为/etc/grub.d/40_custom的手动条目,但却遇到了error: invalid signature和失望。# Microsoft Windows 10
menuentry "Windows 10" {
insmod part_gpt
insmod ntfs
insmod search_fs_uuid
insmod chain
search --no-floppy --fs-uuid --set=root 2E6E49286E48E9E3
chainloader /Windows/Boot/EFI/bootmgfw.efi
}现在,我累坏了。我觉得我在网上找到的东西在原地打转,我想不出还有什么能起作用的。我不是Linux方面的专家;我在终端方面有点过得去,但我对这些东西是如何工作的还不太了解,无法自己自己去尝试去修复它。尽管Solus很适合使用,但它仍然存在一些我遇到的问题(尽管这些问题与这里的大问题无关),而且我仍然希望有一台功能强大的桌面计算机能够运行Windows,所以我不想接受放弃我的Windows分区。任何事情都很感谢,谢谢你提前。
如果有用的话,下面是与我的引导驱动器相关的fdisk -l输出,以供参考:
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: INTEL SSDPEKNW512G8
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: dos
Disk identifier: 0x313ff715
Device Boot Start End Sectors Size Id Type
/dev/nvme0n1p1 2048 499578836 499576789 238.2G 7 HPFS/NTFS/exFAT
/dev/nvme0n1p2 999153664 1000210431 1056768 516M 27 Hidden NTFS WinRE
/dev/nvme0n1p3 499578880 957210623 457631744 218.2G 83 Linux
/dev/nvme0n1p4 957210624 999153663 41943040 20G 82 Linux swap / Solari
Partition table entries are not in disk order.此外,我非常肯定,在遵循setupact.log指南查找这之后,Windows将根据在C28中找到的输出在遗留模式下启动。
发布于 2022-09-18 04:23:14
你所跟随的向导是用于UEFI系统的。Windows将引导方法的选择与分区系统的选择联系起来,因此,您的磁盘是分区MBR样式(由Disklabel type: dos在fdisk -l输出中指示),这意味着您的Windows将以遗留的BIOS样式启动。
这基本上意味着您必须修复/etc/grub.d/40_custom条目中的三项内容:
insmod part_gpt替换为insmod part_msdos。search行上的UUID引用/dev/nvme0n1p1分区,那么Windows就不在这里。现代Windows将其放置到具有分区id 27的"system“分区中--在您的示例中,它是/dev/nvme0n1p2。找出它的UUID (使用lsblk -o +UUID或blkid),然后将它放在search行上,而不是当前行。chainloader /Windows/Boot/EFI/bootmgfw.efi替换为chainloader +1。(这意味着:加载由前一个search行选择的分区的第一个块,并执行它。)进行这些更改后,以根用户身份运行update-grub,然后再次尝试引导Windows。
https://unix.stackexchange.com/questions/717664
复制相似问题