答えは簡単です。 EFI システム パーティション (ESP) は FAT32 である必要があります (FAT16 または FAT12 でさえ、ほとんどの適切な UEFI に対応します。ほとんどの場合、vfat として表示されます)。 Linux では) ext2:の代わりに
mkfs.fat -F32 /dev/sda2
FWIW、grub i386-pc (BIOS/CSM ブート用) をインストールしない場合は、「BIOS ブート」パーティションは必要ありません。 grub i386-pc でのみ必要です (ただし x86_64-efi をグラブしない または i386-efi ) GPT で。
/boot に ESP を使用するかどうかは問題ではありません .その場合は、実行する必要があります:
grub2-install --efi-directory /boot
/boot/efi にマウントする場合 代わりに、次を実行する必要があります:
grub2-install --efi-directory /boot/efi
--boot-directory /boot 暗示されています(つまり、デフォルト)。 /boot かどうかは関係ありません ESP、別の別のパーティション、または / 上のディレクトリです ファイルシステム。
grub2-install を実行するために再度 chroot する必要さえないかもしれません;たとえば、sda4 をマウントしました 、/ のパーティション 、 /mnt で;そして、マウントされた sda2 、あなたのESP、/mnt/boot/efi 、次に実行するだけです:
grub2-install --boot-directory /mnt/boot --efi-directory /mnt/boot/efi
grub2-mkconfig でも chroot AFAIKで実行する必要があります。しかし、単純できれいな grub.cfg を書くつもりなら 代わりに自分で (grub2 を使用する唯一の適切な方法です)、これは気にする必要はありません。
問題は、BIOS、EFI、MBR、および GPT の組み合わせにあるようです。ガイドに従って GPT を使用しようとしましたが、経験が浅すぎて解決できない依存関係がいくつかありました。カーネルがGPTサポート付きで構築されていることさえ私には明らかではありません(構成オプションCONFIG_EFI_PARTITIONを介して) ).
GPT と EFI を削除し、純粋な BIOS と MBR に切り替えたところ、結果のマシンを起動できました。 BIOS と GPT は有効な組み合わせであるはずですが、実際に機能するかどうか疑問に思っています (たとえば、ブートローダー オプションを参照してください)。
マシンを実行できた構成は次のとおりです:
$ parted
GNU Parted 3.2
Using /dev/sda
(parted) print
Model: ATA VMware Virtual I (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 135MB 134MB primary ext2 boot
2 135MB 19.5GB 19.3GB primary ext4
3 19.5GB 21.5GB 2012MB primary linux-swap(v1)
パーティション 1 は /boot です 、パーティション 2 は / です 、パーティション 3 は swap です .