背景故事:我备份了 Windows 10 并在加载了用 Rufus 创建的 Arch linux iso 的引导驱动器上重新启动了我的笔记本电脑。我进入cfdisk并删除了除“EFI System”和“Lenovo boot partition”分区之外的所有分区。当我尝试使用 pacstrap 安装基本软件包时,它告诉我分区块太小,所以我向上扩展了 EFI 系统分区(有 1 GB 的额外空间,我认为这可能会有所帮助)。它没有用,过了一会儿我尝试重新安装我的 linux 文件系统 (/dev/sda4) 并且它起作用了。我跳过了我采取的许多其他步骤,但我认为这些步骤最相关。
每当我尝试运行命令安装 grub 时:
grub-install --target=x86_64-efi --efi-directory=/dev/sda1 --bootloader=arch_grub
它只是输出:
Installing for x86_64-efi platform.
grub-install: error: cannot read `/dev': Is a directory.
即使我给它的路径是 efi 分区 (/dev/sda1)。我尝试为 efi 目录参数提供 /boot,但如果我尝试这样做,它只会输出:
Installing for x86_64-efi platform.
grub-install: error: /boot doesn't look like an EFI partition.
我对这些“自己动手”类型的发行版相当陌生,我将不胜感激我能得到的所有反馈,谢谢!
编辑: fdisk -l /dev/sda 的输出:
Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors
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 gpt
Disk identifier: 6393AD85-37EA-4C44-888C-C5908FC9AE82
Device Start End Sectors Size Type
/dev/sda1 2048 2582527 2580480 1.2G EFI System
/dev/sda2 2582528 4630527 2048000 1000M Lenovo boot partition
/dev/sda3 4630528 25602047 20971520 10G Linux swap
/dev/sda4 25602048 2550069646 224467599 107G Linux filesystem
我最近遇到了这个问题,因为我以前从未有过带有 UEFI 固件的系统/笔记本电脑。我假设您是从头开始并使用最新版本的 Arch Linux(我的是
4.15.9-1-ARCH
)。让我们假设:
/dev/sda
/dev/sda1
/dev/sda1
了mkfs.fat -F32 /dev/sda1
在安装过程中,将 root (
/
) 挂载到后/mnt
,您需要mkdir -p /mnt/boot/efi
并继续安装过程:arch-chroot /mnt
、语言环境等。安装
efibootmgr
,grub
(也许intel-ucode
),并挂载/dev/sda1
到/boot/efi
,执行grub-install --bootloader-id=Arch_Linux --efi-directory=/boot/efi --recheck --target=x86_64-efi
......并且不要忘记生成/更新 GRUB 配置(grub-mkconfig -o /boot/grub/grub.cfg
)。你应该准备好了!请注意,您实际上可以使用 only
/boot
而不一定/boot/efi
。与往常一样,请查看Wiki。