フォーマットせずにFedoraの既存のディスクを暗号化する方法は?

フォーマットせずにFedoraの既存のディスクを暗号化する方法は?

ディスクを再暗号化する方法をすでに扱う既存のオンラインガイドがたくさんあります。マックスヘルプジガー回答ここそして文書にアーチウィキ。ただし、Arch Wikiはmkinitcpio代わりに使用されるシステムに重点を置いており、dracut既存のStackExchangeの回答ではext4ファイルシステムを使用すると想定しています。

ベストアンサー1

これは、デフォルトのFedoraインストールに次のBtrfsベースのパーティションがあると想定しています。

  • ルートパーティション(Btrfsサブボリューム「root」[にマウント済み/]および「home」[にマウント済み/home])
  • ブートパーティション(にインストールされている/boot
  • EFIパーティション(UEFIシステムのみ、にインストールされています/boot/efi

必要

  • フルディスクバックアップ
  • パスワード設定(含まれている必要があり、そうでない場合はを使用してインストールする必要がありますdnf install cryptsetup
  • 最低100MiBの空き容量
  • ルートファイルシステムをマウント解除できます(例:Fedora Live USB)
  • メモ:/etc/vconsole.conf暗号化画面は、(使用)で定義されているキーボードレイアウトを使用しますlocalectl。起動時にレイアウトを変更することはできません。

指示する

  1. ルートファイルシステムを識別するために使用されますlsblk -fXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX後で使用するためにUUID(フォーマット)を保存します。
  2. 現在のカーネルバージョンを識別し、uname -r後で使用するためにその値を保存するために使用されます。
  3. 回復システムで再起動します。blkid --uuid <UUID>以下を使用してルートファイルシステムを見つけます。btrfs check <device>
  4. ファイルシステムのマウントmount /dev/<device> /mnt
  5. LUKSヘッダー用のスペースを確保するためにファイルシステムを縮小します。少なくとも32MiBを使用することをお勧めします。btrfs filesystem resize -32M /mnt
  6. ファイルシステムをマウント解除します。umount /mnt
  7. 暗号化されたパーティションを使用しcryptsetup reencrypt --encrypt --reduce-device-size 32M /dev/<device>、メッセージが表示されたらパスワードを入力してください。
  8. 暗号化されたLUKSパーティションを識別しますlsblk -f(UUIDが変更されました)。後で使用するためにこのLUKSパーティションUUIDを保存してください。
  9. パーティションを開いてメッセージが表示されたら、パスワードを入力してください。cryptsetup open /dev/<device> system
  10. マップされたファイルシステムのマウントmount /dev/mapper/system /mnt
  11. すべてのスペースを使用するようにファイルシステムのサイズを変更し、次を使用してbtrfs filesystem resize max /mntファイルシステムをマウント解除します。umount /mnt
  12. インストールするルートボリューム(Linuxファイルシステムルート)mount -t btrfs -o "noatime,subvol=root,compress=zstd:1" /dev/mapper/system /mnt
  13. 起動およびEFIパーティションを識別するデバイスを使用してくださいlsblk。起動ファイルシステム(mount /dev/<boot device> /mnt/boot)をマウントし、UEFIシステム用のEFIファイルシステム()をマウントしますmount /dev/<EFI device> /mnt/boot/efi
  14. マウント擬似ファイルシステムバインド/dev、、、、、、/dev/ptsの形式は次のとおりです。/proc/run/sysmount --bind /sys /mnt/sys
  15. ファイルシステムでシェルを開きます。chroot /mnt /bin/bash
  16. テキストエディタで開き、/etc/default/grubカーネルパラメータを変更してLUKSパーティションを認識し、SELinuxの適用を一時的に無効にします。次のパラメータを追加したら、変更を保存してファイルを閉じます。
GRUB_CMDLINE_LINUX="[other params] rd.luks.uuid=<LUKS partition UUID> enforcing=0"
  1. SELinuxのラベルリダイレクトの設定touch /.autorelabel
  2. GRUB構成の再生成:(、およびUEFIシステムに対してもgrub2-mkconfig -o /boot/grub2/grub.cfg作成されます)/etc/grub2.cfg/etc/grub2-efi.cfg
  3. cryptsetupが有効になっていることを確認するには、initramfsを再構築してください。dracut --kver <kernel version> --force
  4. chroot 終了
  5. すべてのファイルシステムを逆順にマウント解除します。 (--bindこのオプションはマウントされたファイルシステムで使用できます-l。)以下を使用してLUKSパーティションをオフにします。cryptsetup close system
  6. 再起動して通常のシステムにログインします。起動プロセス中にシステムのパスワードを復号化するには、パスワードを入力するように求められます。
  7. /etc/default/grubテキストエディタでそれを開き、enforcing=0SELinuxの適用を削除して再度有効にしますGRUB_CMDLINE_LINUX。保存と終了。
  8. SELinuxラベルを再指定してくださいtouch /.autorelabel
  9. 手順18を繰り返します。GRUB構成を再生成します。
  10. システムを再起動してログインします。

この回答は主に以下から来ています。マックスヘルプジガー~の回答そしてアーチウィキ。それはまたから来るセレムセン 回答。 2023年3月16日、--reduce-device-size空白が誤って含まれている誤字が修正されました。

おすすめ記事