ルートパーティションをdm-crypt暗号化パーティションに複製します。

ルートパーティションをdm-crypt暗号化パーティションに複製します。

25.93GB / 62.43GBパーティションにGentoo Linuxをインストールしました/dev/sda4。ディスクの他のパーティションには150 MB/boot/dev/sda1未使用領域があり、他の2つのパーティションには56,66 GBの未使用領域があります。

dm-crypt未使用領域を暗号化してext4でフォーマットし、インストールをその領域に移行して古いパーティションを削除する予定です。私の質問は次のとおりです

  • これは可能ですか?または、暗号化されたボリュームでインストールを実行するには多くの調整が必要ですか/dev/sda2

  • これは効率的なアプローチですか?私が25.9GBのGentooを持っていることを考えると、ディスク全体を暗号化してGentoo(そしてすべてのパッケージ)を再インストールすると面倒はありませんか?

  • ここを使用する必要がありますかencfs、それともecryptfs交換する必要がありますかdm-crypt?同等のセキュリティを提供していますか?

  • パーティションを暗号化するにはどのアルゴリズムを使用する必要がありますか?私のプロセッサにはAES-NIはありません。

  • 暗号化されたパーティションを他のパーティションと同期させるには何を使用する必要がありますか?似たようなものがありますかdcfldd


移行されたパーティションから編集内容を書き込む:

  • 未使用のパーティションを削除し、フォーマットされていない新しいパーティションを作成したら、次の手順を/dev/sda2実行します。

    cryptsetup luksFormat /dev/sda2
    cryptsetup luksOpen /dev/sda2 encrypt
    pv /dev/zero > /dev/mapper/encrypt
    

    pvこれはゼロ書き込みの進行状況を監視するために使用され、その後暗号化されたパーティションをext4としてフォーマットしますmkfs.ext4 /dev/mapper/encrypt

  • パーティションを同期するためにrsyncライブUSBからPCを起動した後、YoMismoの提案を使用しました。しかし、入ることはできませんchroot。古いパーティションを再起動し、chrootそこから起動する必要があります。このプロセスでは、以下を実行します。

    mkdir /tmp/old_partition /tmp/new_encrypt
    mount /dev/sda4 /tmp/old_partition
    mount /dev/mapper/encrypt /tmp/new_encrypt
    cd /tmp/new_encrypt
    rsync -av /tmp/old_partition/* .
    

    古いパーティションを再起動したら、仮想カーネルファイルシステムを開き、/dev/sda4マウントします。/dev/sda2

  • 私は一つを作り/etc/crypttabましたroot UUID=<uuid of /dev/sda2> none luks

  • /etc/fstab私のルートパーティションUUID=<uuid of mapper>は。
  • 変更点/boot/grub/grub.confroot=<root>行末を削除しkernel、暗号化されたデバイスを設定しましたcrypt_root=UUID=<uuid> root=/dev/mapper/root
  • 私はgenkernel --install --luks initramfsluksのサポートを受けて新しいinitramfsを作るために走りました。

これで起動して実行できます。残りの唯一のことは、古いパーティションに火をつけることです。

ベストアンサー1

1.-はい、可能です。しかし、少し調整が必要です。

2.- ディスク全体を暗号化できません。システムを起動するには、少なくともブートパーティションを暗号化解除する必要があります(誰かが復号化パスワード-initrd-を要求し、それを暗号化解除する必要があります)。

3.-encfsいくつかの欠陥があります。読むことができます。ここ。私はタスクを実行するためにdm-cryptを使用します。

4.- まさか、たぶん魚座でしょうか?

5.- これを行うには、Live CD/USBを使用します。残された領域が他のパーティションのデータを収容するのに十分かどうかはわかりません。その場合(パーティションがいっぱいになっていない場合)、次の操作を行います。

  • まず、目的のパーティションスキームの種類を決定する必要があります。 /、/boot、およびスワップのみが必要であるとします。したがって、/bootを台無しにする必要はなく、未使用のパーティションに残っているスペースが暗号化されたパーティション(この場合/)に入れるデータを保持するのに十分であるとします。
  • life CDを使用してシステムを起動します。
  • 宛先パーティションが/dev/sdc1であると仮定すると、cryptsetup luksFormat /dev/sdc1暗号化パスワードを入力するように求められます。次に、暗号化されたパーティションを開き、ここにcryptsetup luksOpen /dev/sdc1 Encゼロをすべて書き込んでdd if=/dev/zero of=/dev/mapper/Encファイルシステムを作成します。mkfs.ext4 /dev/mapper/Enc
  • パーティションをマウントし、ファイルをコピーし、ルートディレクトリを新しいパーティションに変更します。

mkdir /tmp/O /tmp/D

mount /dev/sda4 /tmp/O

mount /dev/mapper/Enc /tmp/D

cd /tmp/D;rsync -av /tmp/O/* .

mount --bind /dev dev

mount --bind /proc proc

mount --bind /proc/sys sys

mount --bind /sys sys

chroot /tmp/D

mount /dev/sda1 /boot

-blkidパーティションUUIDを識別し、この情報を使用してgrub構成ファイルとfstabを変更するために使用されます(ルートパーティションデバイスは/ dev / mapper / root_cryptでなければなりません)。新しい暗号化パーティションが参照されるように/ etc / crypttabを変更します。 initrdで新しい変更を更新するには、グルーブが必要な場所にroot_crypt UUID=your/encrypted/dev/uuid none luksgrub-update grub-installupdate-initramfs

私が何も見逃さなかったら、今準備ができているはずです。スワップパーティションが心配されない限り、心配され、休止状態で再起動したい場合は、前の手順に従ってスワップパーティションを暗号化する必要があります。mkswap代わりにmkfs.ext4。また、/etc/crypttabにスワップパーティションを追加する必要があります。 /dev/mapper/name_swap_you_created_in_etc_crypttabがスワップパーティション用のデバイスになるようにfstabを変更しますupdate-initramfs

おすすめ記事