![archlinux 在不同的硬盘上](https://linux22.com/image/214910/archlinux%20%E5%9C%A8%E4%B8%8D%E5%90%8C%E7%9A%84%E7%A1%AC%E7%9B%98%E4%B8%8A.png)
我有一台带有机械中断的电脑,以便启用不同的硬盘并使用不同的操作系统。 Windows 已经安装了 BIOS 旧版,我正在尝试安装 archlinux-uefi。
安装结束后,我重新启动 archlinux,一切正常,安装过程正确执行。我关机再开机还是没问题。
当我切换回 Windows(幸运的是仍然工作)然后再次切换回 archlinux 时,将启动 uefi 而不是操作系统。我的印象是,自从重新生成 fstab 和 grub.config 文件后,GPT 似乎已被修改,问题仍然存在,开机后没有任何消息显示,只是 uefi 启动,因为它没有找到 GPT。
你们中有些人知道发生了什么事吗?
谢谢!
答案1
听起来您的系统的 UEFI 固件会自动删除引用不可访问磁盘的任何 NVRAM 引导变量。
这意味着,您必须为 UEFI 可移动媒体式引导准备 UEFI 操作系统的引导加载程序。
要修复当前的 Arch 安装,请从外部介质启动,chroot 到安装,确保 EFI 系统分区 (ESP) 安装在适当的位置(通常/boot/efi
或只是/boot
)并运行:
grub-install --target=x86_64-efi --efi-directory=<ESP mountpoint> --removable
(替换<ESP mountpoint>
为您实际安装 ESP 的路径)
这应该将 GRUB 安装到<ESP mountpoint>/EFI/boot/bootx64.efi
UEFI 固件在可移动介质上查找它的位置,或者当没有适用的 UEFI NVRAM 引导变量来专门标识引导加载程序位置时。
答案2
更新 - 现在有效。
我认为是 fstab 和错误的 grub 安装参数之间的组合。
在安装时使用以下命令,现在可以工作了。
- genfstab -t 零件标签--> 为了根据partitionlabel生成fstab,并引用持久块名称(不确定是否有必要)
- grub-install --target=x86_64-efi --efi-directory=esp --removable --recheck--> 从“可移动式”设备(因为 HDD 可以分离)中的 grub 中
指定https://wiki.archlinux.org/title/Install_Arch_Linux_on_a_removable_medium
特别是是 Efi 系统分区,我按照安装指南进行操作,所以等于/启动,因为EFI安装在这里