debian 12 live grub-install:error:/boot/efi 看起来不像 EFI 分区

debian 12 live grub-install:error:/boot/efi 看起来不像 EFI 分区

我现在已经把Debian 12 live环境安装在U盘上,并且使用live环境在硬盘上安装了自己组装的Linux系统(通过busybox编译的根文件系统,自己创建的grub.cfg,自己编译的Linux内核)/dev/sda。在执行时遇到了问题:grub-install --target=x86_64-efi --root-directory=/mnt --boot-directory=/mnt/boot /dev/sda --force --efi-directory=/boot/efi --recheck,报如下信息:`

我找到了一个类似的问题(https://unix.stackexchange.com/questions/405472/cannot-find-efi-directory-issue-with-grub-install),但是按照上面的步骤并没有解决我的问题。我是初学者,我不确定我把问题写在了哪里。

1#,将硬盘分成/dev/sda三个分区:

/dev/sda1  
/dev/sda2 
/dev/sda3 

2#,同时将sda1设置为efi分区:

   $sudo  fdisk /dev/sda -l
   ...
   Device Start  End  Sectors Size    Type 
   /dev/sda1   .....                  EFI System
   /dev/sda2   .....                  Linux System
   /dev/sda3   .....                  Linux System
     

3#,格式化这3个分区:

/sbin/mkfs.fat -F32 /dev/sda1
/sbin/mkfs.ext4 /dev/sda2
/sbin/mkfs.ext4 /dev/sda3

4#、分别挂载到不同的路径:

 mount /dev/sda1 /mnt/boot/efi
 mount /dev/sda2 /mnt/boot
 mount /dev/sda3 /mnt

5#,chroot然后进入新的bash

sudo chroot /mnt/
bash-5.2# grub-install --target=x86_64-efi --root-directory=/mnt --boot-directory=/mnt/boot /dev/sda --force --efi-directory=/boot/efi --recheck  
Installing for x86_64-efi platform.
grub-install:error:/boot/efi does't look like an EFI partition.

答案1

步骤4:

4#、分别挂载到不同的路径:

mount /dev/sda1 /mnt/boot/efi
mount /dev/sda2 /mnt/boot
mount /dev/sda3 /mnt

顺序错误。每次挂载都会被下一次挂载覆盖,最后只留下最后一个可见的文件系统。顺序应该颠倒过来(并且可能创建缺失的目录):

mount /dev/sda3 /mnt
mkdir -p /mnt/boot
mount /dev/sda2 /mnt/boot
mkdir -p /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi

同时,为了正确处理 UEFI(在 UEFI 固件中写入要启动的内容),请注意在之前的某个步骤中grub-install,在目标结果中(在/mntchroot 中)还应挂载这些伪文件系统:

  • sysfs/sys
  • efivarfs/sys/firmware/efi/efivars

相关内容