ベストアンサー1
これは、デフォルトのFedoraインストールに次のBtrfsベースのパーティションがあると想定しています。
- ルートパーティション(Btrfsサブボリューム「root」[にマウント済み
/
]および「home」[にマウント済み/home
]) - ブートパーティション(にインストールされている
/boot
) - EFIパーティション(UEFIシステムのみ、にインストールされています
/boot/efi
)
必要
- フルディスクバックアップ
- パスワード設定(含まれている必要があり、そうでない場合はを使用してインストールする必要があります
dnf install cryptsetup
) - 最低100MiBの空き容量
- ルートファイルシステムをマウント解除できます(例:Fedora Live 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
空白が誤って含まれている誤字が修正されました。