页次: 1
先描述下情况:我有两块ssd 一块 装了windows10 一块是archlinux,开机使用grub引导,昨天由于实验环境的要求我决定把arch换成ubuntu,装完ubuntu之后windows的efi分区不见了,理论上系统是分别装到不同的ssd上,应该重装linux应该不影响windows,这是我现在lsblk- f 的输出:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
loop0
squash 4.0 0 100% /snap/core20/1405
loop1
squash 4.0 0 100% /snap/bare/5
loop2
squash 4.0 0 100% /snap/core20/1434
loop3
squash 4.0 0 100% /snap/firefox/1232
loop4
squash 4.0 0 100% /snap/firefox/1300
loop5
squash 4.0 0 100% /snap/gnome-3-38-2004/99
loop6
squash 4.0 0 100% /snap/gtk-common-themes/1534
loop7
squash 4.0 0 100% /snap/snap-store/575
loop8
squash 4.0 0 100% /snap/snap-store/582
loop9
squash 4.0 0 100% /snap/snapd/15177
loop10
squash 4.0 0 100% /snap/snapd/15534
loop11
squash 4.0 0 100% /snap/snapd-desktop-integration/10
sda
└─sda1
ext4 1.0 61629ab3-5756-43ee-86ef-a1f6cfc5133a
sdb
├─sdb1
│ vfat FAT32 8490-0F04 490.3M 4% /boot/efi
└─sdb2
ext4 1.0 3d4a1e4a-16de-438b-aa84-785238408090 200.8G 7% /
nvme0n1
│
├─nvme0n1p1
│
└─nvme0n1p2
ntfs 465EFD1D5EFD0709
我将 windows的ntfs 分区挂载后发现了 Windows/Boot/EFI/bootmgfw.efi
我也尝试根据archwiki中grub 的Windows installed in UEFI/GPT mode节操作,但是都失败了.
请问大佬们我接下去该怎么做才能修复windows引导
离线
你应该有两块sata和一块nvme?你说你两块ssd,但显示了sda,sdb,nvme?
大概率你删除arch的时候,也删除了arch的efi分区,恰好你的windows启动项也在arch的efi分区里?
你的bootmgfw.efi是在ntfs分区了?那显然引导不了啊,而且boot怎么安在ntfs分区里的? 需要安装在vfat之类里面才能被bios识别吧。
你把windows的启动项拷贝一份到ubuntu的EFI里,在试试能不能启动
离线
我是有两块ssd和一块hdd 其中sda 是hdd, sdb 存放了ubuntu,nvme存放了win. bootmgfw.efi 是我挂载windows后 用find找到的 之后我将包含bootmgfw.efi这个文件的文件夹 复制到了 ubuntu的efi分区下 然后在grub.cfg里添加
if [ "${grub_platform}" == "efi" ]; then
menuentry "Microsoft Windows Vista/7/8/8.1 UEFI/GPT" {
insmod part_gpt
insmod fat
insmod chain
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt1 --hint-efi=hd1,gpt1 --hint-baremetal=ahci1,gpt1 8490-0F04
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
fi
之后启动时windows提示发生错误.
离线
我是有两块ssd和一块hdd 其中sda 是hdd, sdb 存放了ubuntu,nvme存放了win. bootmgfw.efi 是我挂载windows后 用find找到的 之后我将包含bootmgfw.efi这个文件的文件夹 复制到了 ubuntu的efi分区下 然后在grub.cfg里添加
if [ "${grub_platform}" == "efi" ]; then menuentry "Microsoft Windows Vista/7/8/8.1 UEFI/GPT" { insmod part_gpt insmod fat insmod chain search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt1 --hint-efi=hd1,gpt1 --hint-baremetal=ahci1,gpt1 8490-0F04 chainloader /EFI/Microsoft/Boot/bootmgfw.efi } fi
之后启动时windows提示发生错误.
问题一个个解决,先解决启动问题,在解决用grub引导双系统问题,你自己都搞混了。
windows启动报错显示什么?
你把windows的EFI放到ubuntu的efi里,能在bios里面找到windows的启动项吗?
如果你要grub引导多系统,没必要手写引导,用os-prober啊。
比如我的系统,/下建立的fat32分区的esp,正常情况下,esp里面有个EFI文件,EFI里面有BOOT和Microsoft文件夹,前者放的arch引导,后者是windows引导,没有设置grub启动引导双系统,但是bios能通过识别fat分区找到windows引导项,需要用win的时候通过bios里选择win就行了。
离线
问题就是用 os-prober 识别不出windows 我只能手动去重建.
离线
已解决
离线
页次: 1