页次: 1
前情:
在朋友的推(撺)荐(掇)下,鄙人根据wiki以及archlinux简明指南中的教程,通过Ventoy启动U盘在闲置移动硬盘中安装了Archlinux和Grub引导程序。然而今天再次将硬盘插入电脑usb口后,发现不能够正常进入到Grub的选择系统的界面。
具体情况如下:
(已关闭Sercure Boot)按电源键启动后,通过f12设置启动顺序,选择Arch和.edi引导程序所在的硬盘并回车,会正常直接启动到Windows11。
但是如果提前插上Ventoy启动盘后,可以通过f12选择Ventoy所在U盘能够成功进入Ventoy,并且能够通过Ventoy访问到Arch所在硬盘的EFI分区下的.efi文件,通过直接运行该.efi文件可以进入Grub,但是会报“error: no such partition”错误并且进入到Grub Security。通过set root 和set prefix进入normal模式后可以顺利启动Arch。
目前尝试按照原教程重新安装grub并生成config文件,但是没有解决这个问题。
我(和朋友)无法准确定位问题和修复方法,还希望各位大佬不吝赐教,感谢!QAQ
最近编辑记录 noikh (2023-03-24 01:40:09)
离线
你的描述判断有两个问题,请描述EFI分区的情况以及config文件内容
(已关闭Sercure Boot)按电源键启动后,通过f12设置启动顺序,选择Arch和.edi引导程序所在的硬盘并回车,会正常直接启动到Windows11。
如果使用grub-install&efibootmgr安装,GRUB的EFI文件安装在ESP/EFI/GRUB/ 中,并通过efibootmgr写入NVRAM引导条目内。UEFI启动会按照记录启动ESP/EFI/GRUB/grubx64.efi,拔出移动硬盘后主板UEFI检测不到条目位置可能会清除该NVRAM条目。再次插入移动硬盘后,设置启动顺序选择移动硬盘,UEFI只会引导该硬盘ESP中的EFI/BOOT/bootx64.efi文件,没有找到就会跳过进入下个引导项,启动windows
但是如果提前插上Ventoy启动盘后,可以通过f12选择Ventoy所在U盘能够成功进入Ventoy,并且能够通过Ventoy访问到Arch所在硬盘的EFI分区下的.efi文件,通过直接运行该.efi文件可以进入Grub,但是会报“error: no such partition”错误并且进入到Grub Security。通过set root 和set prefix进入normal模式后可以顺利启动Arch。
通过Ventoy引导grub后,grub读取grub.cfg文件,按照config中的记录寻找内核文件,找不到分区的原因需要先检查grub.cfg
最近编辑记录 Watermelon.Rei (2023-03-23 10:39:07)
离线
所以你的 grub 是怎么安装的?
离线
你的描述判断有两个问题,请描述EFI分区的情况以及config文件内容
(已关闭Sercure Boot)按电源键启动后,通过f12设置启动顺序,选择Arch和.edi引导程序所在的硬盘并回车,会正常直接启动到Windows11。
如果使用grub-install&efibootmgr安装,GRUB的EFI文件安装在ESP/EFI/GRUB/ 中,并通过efibootmgr写入NVRAM引导条目内。UEFI启动会按照记录启动ESP/EFI/GRUB/grubx64.efi,拔出移动硬盘后主板UEFI检测不到条目位置可能会清除该NVRAM条目。再次插入移动硬盘后,设置启动顺序选择移动硬盘,UEFI只会引导该硬盘ESP中的EFI/BOOT/bootx64.efi文件,没有找到就会跳过进入下个引导项,启动windows
但是如果提前插上Ventoy启动盘后,可以通过f12选择Ventoy所在U盘能够成功进入Ventoy,并且能够通过Ventoy访问到Arch所在硬盘的EFI分区下的.efi文件,通过直接运行该.efi文件可以进入Grub,但是会报“error: no such partition”错误并且进入到Grub Security。通过set root 和set prefix进入normal模式后可以顺利启动Arch。
通过Ventoy引导grub后,grub读取grub.cfg文件,按照config中的记录寻找内核文件,找不到分区的原因需要先检查grub.cfg
非常详细的解释,十分感谢!我晚上回寝室后再详细排查一番
离线
所以你的 grub 是怎么安装的?
抱歉未在一楼说清,安装过程如下:
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
vim /etc/default/grub //修改了 GRUB_CMDLINE_LINUX_DEFAULT, loglevel, nowatchdog 参数
grub-mkconfig -o /boot/grub/grub.cfg
是完全按照教程中的命令进行操作的,感觉教程中的命令参数再我电脑上也适用就没有进行其他修改。
离线
--efi-directory=/boot?你的 /boot 是直接挂载的 EFI 分区?
离线
你的描述判断有两个问题,请描述EFI分区的情况以及config文件内容
(已关闭Sercure Boot)按电源键启动后,通过f12设置启动顺序,选择Arch和.edi引导程序所在的硬盘并回车,会正常直接启动到Windows11。
如果使用grub-install&efibootmgr安装,GRUB的EFI文件安装在ESP/EFI/GRUB/ 中,并通过efibootmgr写入NVRAM引导条目内。UEFI启动会按照记录启动ESP/EFI/GRUB/grubx64.efi,拔出移动硬盘后主板UEFI检测不到条目位置可能会清除该NVRAM条目。再次插入移动硬盘后,设置启动顺序选择移动硬盘,UEFI只会引导该硬盘ESP中的EFI/BOOT/bootx64.efi文件,没有找到就会跳过进入下个引导项,启动windows
但是如果提前插上Ventoy启动盘后,可以通过f12选择Ventoy所在U盘能够成功进入Ventoy,并且能够通过Ventoy访问到Arch所在硬盘的EFI分区下的.efi文件,通过直接运行该.efi文件可以进入Grub,但是会报“error: no such partition”错误并且进入到Grub Security。通过set root 和set prefix进入normal模式后可以顺利启动Arch。
通过Ventoy引导grub后,grub读取grub.cfg文件,按照config中的记录寻找内核文件,找不到分区的原因需要先检查grub.cfg
解决了,通过efibootmgr新添加了一个启动项即可
非常感谢!
离线
页次: 1