/boot
以下のように、暗号化されたパーティションを使用して新しいArch Linuxインストールをセットアップしようとしています。https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#Encrypted_boot_partition_.28GRUB.29
3つのパーティションを作成していますcgdisk
。
/dev/sda1 - タイプ ESP( ef00
) サイズ 100MiB
/dev/sda2 - タイプ Linux( 8300
) サイズ 200MiB - 使用済み/boot
(暗号化後)
/dev/sda3 - タイプ Linux LVM( 8e00
) サイズ 12GiB - 使用済み/
(暗号化後)
その後、次のコマンドに従いました。
mkfs.fat -F32 /dev/sda1
cryptsetup luksFormat /dev/sda2
cryptsetup open /dev/sda2 cryptoboot
mkfs.ext2 /dev/mapper/cryptoboot
mkdir /mnt/boot
mount /dev/mapper/cryptoboot /mnt/boot
mkdir /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
cryptsetup luksFormat /dev/sda3
cryptsetup open /dev/sda3 cryptosystem
mkfs.f2fs /dev/mapper/cryptosystem
mount /dev/mapper/cryptosystem /mnt
# edit "/etc/pacman.d/mirrorlist" as needed
pacstrap /mnt base grub-efi-x86_64 efibootmgr dosfstools f2fs-tools
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
# remember to configure time, locale, language and hostname
# edit "/etc/mkinitcpio.conf"
# HOOKS="base udev autodetect modconf block keymap encrypt lvm2 filesystems keyboard fsck"
mkinitcpio -p linux
# edit "/etc/default/grub"
# GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda3:lvm"
# GRUB_ENABLE_CRYPTODISK=y
grub-mkconfig -o /boot/grub/grub.cfg
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck
次のエラーが発生します。
x86_64プラットフォーム用にインストールされました。
grub-install: エラー: '/boot/efi' の正規パスを取得できません。
すでに試しました:
インストール
fuse2
とmtools
パッケージ環境でディレクトリを再作成し
/boot/efi
て再インストールします。/dev/sda1
chroot
使用するとき外部4ルートパーティションの場合、最後のプロセスが機能し、GRUBがインストールされ、さらにブートされました(異常には再インストールは不要ですmkdir
)。
しかし、F2FSの場合、エラーメッセージは次のように変更されましたが、これだけでは不十分です。
x86_64プラットフォーム用にインストールされました。
grubインストール:エラー:不明なファイルシステム。
Arch Wikiによると([1]、[2])GRUBがサポートする他のファイルシステムと一緒に別のパーティションにインストールされている場合は、ルートにF2FSを使用できます。私の/boot
パーティションはext2
。それで、なぜインストールできないのですか?
助けてくれてありがとう非常に。
答え1
/etc/fstab
genfstab
回避策は、アイテムを追加せずに手動で実行する必要があるため、作成時に集中することです。/boot
/boot/efi
その後、chroot
ESPだけでなく/boot
パーティションも再マウントする必要があります。これで、grub-install
機能する準備が整いました。
修正する:マウント/boot
とESPは、実際にはルートファイルシステムをにマウントした後に実行する必要があります/mnt
。
# format the ESP
mkfs.fat -F32 /dev/sda1
# set up LUKS for the boot partition
cryptsetup luksFormat /dev/sda2
cryptsetup open /dev/sda2 cryptoboot
mkfs.ext2 /dev/mapper/cryptoboot
# same for the root partition
cryptsetup luksFormat /dev/sda3
cryptsetup open /dev/sda3 cryptosystem
mkfs.f2fs /dev/mapper/cryptosystem
# mount root, and only then, mount /boot and the ESP, in that order
mount /dev/mapper/cryptosystem /mnt
mkdir /mnt/boot
mount /dev/mapper/cryptoboot /mnt/boot
mkdir /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
# edit "/etc/pacman.d/mirrorlist", then continue with pacstrap etc
これは論理的な質問です。この順序で操作を実行すると、genfstab
すべてのパーティションのエントリが正しく作成され、すべてがうまく機能します。