我已经在我的 Arch Linux 安装上安装了 GRUB /dev/sdb1
。/dev/sdb
是我安装了 Arch Linux 的第二个内置硬盘,/dev/sda
也是我的第一个内置硬盘,上面安装了 Windows 10。/dev/sda2
是我的 UEFI 的 EFS 分区。然后我跑了(这是我基于建筑维基百科关于 GRUB 的文章UEFI小节)
mount /dev/sda2 /boot
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
来自我在该分区上安装 Arch Linux 时生成的 arch-chroot。然后我重新启动,当我从 UEFI 启动菜单进入 GRUB 时,我只有 GRUB 最小界面(即,写着“支持最小 BASH 式行编辑...”的界面),但我不知道是什么去做。我已经能够在运行 BIOS 的旧电脑上毫无问题地安装和启动 Arch Linux,所以我感到相当困惑。这是输出parted /dev/sda print
:
Model: ATA WDC WD10JPVX-60J (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 420MB 419MB ntfs Basic data partition hidden, diag
2 420MB 693MB 273MB fat32 EFI system partition boot, esp
3 693MB 827MB 134MB Microsoft reserved partition msftres
4 827MB 974GB 974GB ntfs Basic data partition msftdata
5 974GB 975GB 955MB ntfs hidden, diag
6 975GB 1000GB 24.8GB ntfs Basic data partition hidden, msftdata
答案1
我找到了一个解决方法。我使用了systemd-boot
而不是 GRUB2。如果您有实际的解决方案,我很乐意接受,因为我更喜欢使用 GRUB2 而不是systemd-boot
。但是,在那之前,我将使用此解决方法。但这不是自动修复,我必须努力工作。我分享它,以防处于类似情况的人发现此解决方法有用。我所做的是将我的/dev/sda2
分区安装在 上/boot/efi
,并将vmlinuz-linux
和initramfs*.img
从复制/boot
到/boot/efi
。然后我运行了bootctl
在建筑维基百科。总而言之,我跑了:
mount /dev/sda2 /boot/efi
cp /boot/initramfs*.img /boot/efi
cp /boot/vmlinuz-linux /boot/efi
bootctl --path=/boot/efi install
然后我创建了必要的/boot/efi/loader/loader.conf
文件:
#timeout 3
default arch
timeout 4
editor 0
然后我创建了以下/boot/efi/loader/entries/arch.conf
文件:
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=UUID=d26c3e60-0cfb-4118-9dec-1f1819439790 rw
其中d26c3e60-0cfb-4118-9dec-1f1819439790
是 的 UUID(通过运行确定ls -ld /dev/disk/by-uuid/*
)/dev/sdb1
。