安装 Arch Linux,出现“modprobe efivars”

use*_*941 7 linux arch-linux modprobe uefi

我正在尝试在我的新 Vaio Pro 上安装 Linux,这本身就是一次冒险。我正在尝试使用 UEFI 安装 Arch Linux。我正在学习本教程(尽管我使用的是较新的 2013.11 Arch Linux 安装介质)。

问题是当我尝试运行 modprobe -r efivars 或 modprobe efivars 时,它告诉我:

致命:未找到模块 efivars。

我无法在互联网上的任何地方找到解决方案。当我运行 modprobe efivarfs 时,我没有收到任何错误,但是当我尝试安装 Grub 时,它仍然显示:此系统不支持 EFI 变量。

Cal*_*leb 7

在 UEFI 系统上安装 Archlinux 的教程中有一些小故障,但是您可以像这样解决这个特定的挂起问题:

您可能尝试从目标系统的 chroot 内部运行该 modprobe 命令。那不会让你去任何地方;您需要在主机系统的内核中加载功能。事实上,我对 2013.11 安装媒体的经验是您根本不需要加载模块;它已经加载了。问题是sysfs它使用的目录不能从 chroot 内部访问,所以这是您需要解决的问题。

  1. 将终端对 chroot 保持打开状态,但切换到新控制台 ( Alt+ F2)

  2. 检查/sys/firmware/efi/efivars目录是否存在。如果没有,那么modprobe efivars,但我怀疑你会发现它有。

  3. 将目录绑定挂载到您的 choot 中(如果您不使用,请调整/mnt

    mount --bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars
    
    Run Code Online (Sandbox Code Playgroud)
  4. 切换回您的第一个终端 ( Alt+ F1) 并再次尝试您的下一个命令。根据您在安装过程中所处的位置,您的下一步可能是这样的:(假设您/boot/efi在 chroot 内安装了 FAT32 格式的 BIOS 分区)

    grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck
    grub-mkconfig -o /boot/grub/grub.cfg
    
    Run Code Online (Sandbox Code Playgroud)

如果由于某种原因您在第 3 步中遇到问题,例如您挂载到的目录不存在,那么您没有正确遵循第 1 步。重要的是使用该arch-chroot命令初始化目标系统文件空间,然后才使用另一个控制台运行绑定挂载。原因是arch-chroot其他几个绑定安装的脚本集,包括用于/proc和的脚本集/sys,必须先到位,然后才能添加 efi-vars 缺少的那个。上面的说明让您打开第二个控制台来专门执行此操作,这样您在添加这个时就不会丢失其他绑定安装。