(루트)가 F2FS인 경우 암호화된 파티션에 GRUB를 설치하면 작동하지 않습니다.

(루트)가 F2FS인 경우 암호화된 파티션에 GRUB를 설치하면 작동하지 않습니다.

여기에 설명된 대로 암호화된 파티션을 사용하여 새로운 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'의 정식 경로를 가져오지 못했습니다.

이미 시도했습니다:

  • fuse2mtools패키지 설치

  • 환경 에 있는 동안 디렉토리를 다시 생성 /boot/efi하고 다시 마운트합니다 ./dev/sda1chroot


사용할 때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

이후에는 chrootESP뿐만 아니라 파티션도 다시 마운트해야 합니다 /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모든 파티션에 대한 항목이 올바르게 생성되고 모든 것이 잘 작동합니다.

관련 정보