여기에 설명된 대로 암호화된 파티션을 사용하여 새로운 Arch Linux 설치를 설정하려고 합니다 /boot
.https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#Encrypted_boot_partition_.28GRUB.29
다음을 사용하여 세 개의 파티션을 만듭니다 cgdisk
.
/dev/sda1 - 유형 ESP( ef00
) 크기 100MiB
/dev/sda2 - 유형 Linux( 8300
) 크기 200MiB - for /boot
(암호화 후)
/dev/sda3 - 유형 Linux LVM( 8e00
) 크기 12GiB - for /
(암호화 후)
그런 다음 다음 명령을 따릅니다.
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
사용할 때ext4루트 파티션의 경우 이 마지막 절차가 작동하고 GRUB가 설치되고 심지어 부팅됩니다(이상하게도 다시 마운트할 필요는 없습니다 mkdir
.
그러나 F2FS의 경우 오류 메시지를 다음과 같이 변경하더라도 충분하지 않습니다.
x86_64 플랫폼용으로 설치.
grub-install: 오류: 알 수 없는 파일 시스템.
The Arch Wiki에 따르면([1],[2]) GRUB가 지원하는 다른 파일 시스템이 있는 별도의 파티션에 설치되어 있는 경우 루트에 F2FS를 사용할 수 있습니다. 내 /boot
파티션은 ext2
. 그렇다면 왜 설치되지 않습니까?
당신의 도움을 주셔서 감사합니다엄청나게.
답변1
/etc/fstab
해결 방법은 생성 시 주의를 기울이는 것입니다 . 왜냐하면 and 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
모든 파티션에 대한 항목이 올바르게 생성되고 모든 것이 잘 작동합니다.