답변1
이는 기본 Fedora 설치에 다음과 같은 Btrfs 기반 파티션이 있다고 가정합니다.
- 루트 파티션(Btrfs 하위 볼륨 "root" [ 에 마운트됨
/
] 및 "home" [ 에 마운트됨/home
]) - 부팅 파티션( 에 설치됨
/boot
) - EFI 파티션(UEFI 시스템만 해당,에 설치됨
/boot/efi
)
필요하다
- 전체 디스크 백업
- 비밀번호 설정(포함되어야 하며, 그렇지 않으면 를 사용하여 설치해야 합니다
dnf install cryptsetup
) - 최소 100MiB의 여유 공간
- 루트 파일 시스템을 마운트 해제할 수 있습니다(예:페도라 라이브 USB)
- 노트:
/etc/vconsole.conf
암호화 화면은 (사용)에 정의된 키보드 레이아웃을 사용합니다localectl
. 시작 시 레이아웃을 변경할 수 없습니다.
지시하다
- 루트 파일 시스템을 식별하는 데 사용됩니다
lsblk -f
.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
나중에 사용할 수 있도록 UUID(형식)를 저장합니다 . - 현재 커널 버전을 식별
uname -r
하고 나중에 사용할 수 있도록 해당 값을 저장하는 데 사용됩니다. - 복구 시스템으로 재부팅합니다.
blkid --uuid <UUID>
다음을 사용하여 루트 파일 시스템을 찾으십시오.btrfs check <device>
- 파일 시스템 마운트
mount /dev/<device> /mnt
- LUKS 헤더를 위한 공간을 확보하기 위해 파일 시스템을 축소합니다. 최소 32MiB를 사용하는 것이 좋습니다.
btrfs filesystem resize -32M /mnt
- 파일 시스템을 마운트 해제합니다.
umount /mnt
- 암호화된 파티션을 사용
cryptsetup reencrypt --encrypt --reduce-device-size 32M /dev/<device>
하고 메시지가 표시되면 비밀번호를 제공하십시오. - 암호화된 LUKS 파티션을 식별합니다
lsblk -f
(UUID가 변경되었습니다). 나중에 사용할 수 있도록 이 LUKS 파티션 UUID를 저장하세요. - 파티션을 열고 메시지가 표시되면 비밀번호를 입력하세요.
cryptsetup open /dev/<device> system
- 매핑된 파일 시스템 마운트
mount /dev/mapper/system /mnt
- 모든 공간을 사용하도록 파일 시스템 크기를 조정한
btrfs filesystem resize max /mnt
다음 다음을 사용하여 파일 시스템을 마운트 해제합니다 .umount /mnt
- 설치하다루트 볼륨(Linux 파일 시스템 루트)
mount -t btrfs -o "noatime,subvol=root,compress=zstd:1" /dev/mapper/system /mnt
- 부팅 및 EFI 파티션을 식별하는 장치를 사용하십시오
lsblk
. 부팅 파일 시스템(mount /dev/<boot device> /mnt/boot
)을 마운트한 다음 UEFI 시스템용 EFI 파일 시스템( )을 마운트합니다mount /dev/<EFI device> /mnt/boot/efi
. - 마운트 의사 파일 시스템 바인드
/dev
,/dev/pts
,/proc
,/run
및/sys
, 형식은 다음과 같습니다.mount --bind /sys /mnt/sys
- 파일 시스템에서 셸을 엽니다.
chroot /mnt /bin/bash
- 텍스트 편집기로 열고
/etc/default/grub
커널 매개변수를 수정하여 LUKS 파티션을 인식하고 SELinux 적용을 일시적으로 비활성화합니다. 다음 매개변수를 추가한 후 변경 사항을 저장하고 파일을 닫습니다.
GRUB_CMDLINE_LINUX="[other params] rd.luks.uuid=<LUKS partition UUID> enforcing=0"
- SELinux에 대한 레이블 재지정 구성
touch /.autorelabel
- GRUB 구성 재생성: ( , 및 UEFI 시스템에 대해서도
grub2-mkconfig -o /boot/grub2/grub.cfg
생성됨 )/etc/grub2.cfg
/etc/grub2-efi.cfg
- cryptsetup이 활성화되었는지 확인하려면 initramfs를 다시 빌드하세요.
dracut --kver <kernel version> --force
- chroot 종료
- 모든 파일 시스템을 역순으로 마운트 해제합니다. (
--bind
이 옵션은 마운트된 파일 시스템에 사용할 수 있습니다-l
.) 다음을 사용하여 LUKS 파티션을 끄십시오.cryptsetup close system
- 재부팅하고 일반 시스템에 로그인합니다. 부팅 프로세스 중에 시스템 암호를 해독하려면 비밀번호를 입력하라는 메시지가 표시됩니다.
/etc/default/grub
텍스트 편집기에서 이를 열고enforcing=0
SELinux 적용을 제거하여 다시 활성화하십시오GRUB_CMDLINE_LINUX
. 저장 및 종료.- SELinux 레이블을 다시 지정하세요
touch /.autorelabel
. - 18단계를 반복하세요.GRUB 구성을 재생성합니다.
- 시스템을 다시 시작하고 로그인합니다.
이 답변은 주로 다음에서 비롯됩니다.맥스 헬프지거~의답변그리고아치 위키. 그것은 또한에서 온다세렘셈의 답변. 2023년 3월 16일 --reduce-device-size
공백이 잘못 포함된 오타가 수정되었습니다.