ここで説明されているように、暗号化されたパーティションを使用して新しい Arch Linux インストールをセットアップしようとしています/boot
: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-install: エラー: 不明なファイルシステムです。
The 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
すべてのパーティションのエントリが正しく生成され、すべてが正常に動作します。