web-dev-qa-db-ja.com

luksで暗号化された外部ドライブにフォルダを移動するにはどうすればよいですか?

現在のシステムはディスク全体が暗号化されており、/homeフォルダーをLUKS暗号化でフォーマットされた外部ハードドライブに移動/マッピングしたいと思います。これは可能ですか?

Linuxの更新は、私にとってすべてを壊し続けます。 FDEと関係があると思います。 /homeデータを保存、暗号化、別のハードドライブに保存したいだけです。

須藤lsblk

(この場合のsda1は、/ homeが存在する外部暗号化ドライブになります)

 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT 
 sda 8:0 0 931.5G 0 disk 
└─sda18:1 0 931.5G 0 part 
└─luks-39afxxxxxxxxxxxxxxxxxxxx252:3 0 931.5G 0 crypt /media/user/My_external_drive
sdb 8:16 0 931.5G 0 disk 
├─sdb18:17 0 487M 0 part/boot
├─sdb28:18 0 1K 0 part 
└─sdb58:21 0 931G 0 part 
└─sda5_crypt252:0 0 931G 0 crypt 
├─xubuntu--vg-root252:1 0 919.1G 0 lvm /
└─xubuntu--vg-swap_1252:2 0 11.9G 0 lvm [SWAP] 
 sr0 11:0 1 1024M 0 rom 
 

猫/ etc/fstab

#/ bootはインストール中に/ dev/sda1にありました
 UUID = f2c4a3ef-xxxx-xxxx-xxxx-xxxx/boot ext2 defaults 0 2 
/dev/mapper/xubuntu- -vg-swap_1 none swap sw 0 0 

Sudo cat/etc/crypttab

 sda5_crypt UUID = 4426b1a1-xxxx-xxxx-xxxx-xxxx none luks、discard 

すどう

/dev/mapper/sda5_crypt:UUID = "NKYcrR-xxxx-xxxx-xxxx-xxx-xxxx-xxxx" TYPE = "LVM2_member" 
/dev/mapper/xubuntu--vg-root :UUID = "fffe201d-xxxxxxxxxxx" TYPE = "ext4" 
/dev/sda1:UUID = "39af7a74-xxxx" TYPE = "crypto_LUKS" PARTUUID = "04f839ad-xxxxxxxxxxxxxxxxxxxxxxx" 
/dev/sdb1:UUID = "f2c4a3ef-xxxx" TYPE = "ext2" PARTUUID = "df4931bf-01" 
/dev/sdb5:UUID = "4426b1a1-xxxxxx" TYPE = "crypto_LUKS" PARTUUID = "df4931bf-05" 
/dev/mapper/xubuntu--vg-swap_1:UUID = "2abaef03-xxxxxx" TYPE = "swap" 
 
 ***使用する外部luks暗号化ドライブ/home****

/dev/mapper/luks-39axxxxxxxxxxxx:LABEL = "My_external_drive" UUID = "d7f7xxxxxxxxxxxxxxxxxxx" TYPE = "ext4" 
 
1
positivetypical

/ homeおよびその他の明らかな問題の移行

まず、/dev/mapper/xubuntu--vg-rootのルートパーティションが/etc/fstabで構成されていないようです。それを修正する必要があります。第二に、/bootパーティションはかなり小さいです。古いカーネルを削除することを怠らないと、/bootパーティションが100%に達すると、更新プログラムのインストールで問題が発生します。インストール中に手動でパーティションを作成することで、より大きなブートパーティションを作成し、別のドライブにすべて置くことができます。興味がある場合は my post here でその方法を確認してください。ただし、これは新規インストールにのみ適用されます。

移行を支援し、ルートパーティションを/etc/fstabに戻すことができるはずです。これらのファイルの1つ以上に既に変更を加えたことを示しているので、ルートまたはSudoを使用してファイルを編集する方法を既に知っていると仮定します。この方法で、以下で説明するファイルの変更を行う必要があります。

システムイメージの取得:
システムを大幅に変更する予定です。現在「稼働中」のシステムがある場合は、 Clonezilla のようなツールを使用して、システムイメージを取得し、何かが本当に混乱した場合に備えて復元する必要があります。これは絶対に必要というわけではありませんが、私は強くアドバイスします!

固定/etc/fstab
/etc/fstabを編集し、上部に次のような行を追加します。
/dev/mapper/xubuntu--vg-root / ext4 errors=remount-ro 0 1
その行がないと、コンピューターは起動しません。

_/homeの移行
これにはいくつかの部分があります。すべてのドキュメントを外部ドライブに移動する必要があります。システムがブート中に外部ドライブを復号化できるように、/etc/crypttabファイルを更新する必要があります。つまり、内部ディスクを復号化するにはパスワードを入力する必要があり、外部ディスクを復号化するには別のパスワードを入力する必要があります。 1つのパスワードのみを提供しながら2つのディスクのロックを解除する方法がありますが、ここでは説明しません。それについてもっと知りたい場合は herehere を読んでください。また、/etc/fstabも更新して、システムがホームディレクトリをマウントする方法を認識できるようにする必要があります。最後に、initramfsを更新する必要があります。

  1. ホームディレクトリの内容を外部ドライブにコピーします。ターミナルで次を実行し、必要に応じて外部ドライブへのパスを変更します。これらの各コマンドの実行には数分かかる場合があります。
    • コピーしたファイルの整合性を検証するために後で使用するハッシュを作成します。絶対に必要なわけではありませんが、コピー中に何も破損していないことを確認できると便利です。
      Sudo find $HOME -type f -exec md5sum '{}' >> $HOME/checksums.md5 \;
    • ホームディレクトリ内のすべてを外部ドライブにコピーします
      Sudo cp -ar $HOME/. /media/$USER/My_external_drive
    • すべてのファイルのチェックサムを作成した場合は、先に進んでチェックしてください。アカウントにログインした場合は、チェックサムの作成とコピーされたファイルのチェックの間に、一部のファイルが自然に変更される可能性があることに注意してください。エラーが発生した場合は、それらが重要なファイルではないことを確認してください。
      cd /media/$USER/My_external_drive
      Sudo md5sum -c checksums.md5 | grep "FAILED"
    • また、/homeからすべてを削除してマウントポイントとして使用できるようにする必要がありますが、ローカルのxubuntuインストールからは削除したくありません。再起動し、そのためにライブCD/USBを使用する準備ができるまで待機します。
  2. /etc/crypttabの更新:
    /etc/crypttabを開いて編集し、次の行を追加して、xを外部ドライブのLUKSパーティションのUUIDの実際の値に置き換えます。
    luks_home UUID=39af7a74-xxxx none luks,discard
  3. /etc/fstabを更新して新しい/homeパーティションを含める:
    /etc/fstabを編集用に開き、次の行を最後に追加します
    /dev/mapper/luks_home /home ext4 defaults 0 2
  4. Initramfsを更新する
    Sudo update-initramfs -k all -u

チェックするもの:
あなたの/etc/fstabファイルは次のようになります。

/dev/mapper/xubuntu--vg-root/ext4 errors = remount-ro 0 1 
#/ bootはインストール中に/ dev/sda1にありました
 UUID = f2c4a3ef- longstringofnumbers/boot ext2 defaults 0 2 
/dev/mapper/xubuntu--vg-swap_1 none swap sw 0 0 
/dev/mapper/luks_home/home ext4 defaults 0 2 

/etc/crypttabファイルは次のようになります。

 sda5_crypt UUID = 4426b1a1-longstringofnumbers none luks、discard 
 luks_home UUID = 39af7a74-xxxx none luks、discard 

/etc/crypttabファイルで問題を見つけて変更を加えた場合は、ポイント4からupdate-initramfsコマンドを再度実行してください。

ライブOSに再起動します
コピーする必要があるものがすべて揃ったら、/homeからすべてを消去して、マウントポイントとして使用できるようにします。ライブCD/USBを入手し、そこから起動します。

  • 起動したら、LUKSパーティションを復号化して、内部ディスクにマウントする必要があります。次のコマンドを実行して、プロンプトが表示されたら暗号化パスワードを入力します

     dev = $(Sudo lsblk | grep -B1 "sda5_crypt" | grep -oP "sd [az]\d\b" | awk '{print "/dev/"$1}')
     sudo cryptsetup luksOpen $ dev internal_crypt 
     sudo mount/dev/mapper/xubuntu--vg-root /mnt
    
  • これで、古いホームパーティションは/ mnt/homeに配置されます。内部のすべてを削除しましょう
    Sudo rm -fr /mnt/home/*

ローカルインストールで再起動します:
この時点で、再起動する準備が整いました。古いホームディレクトリが空になったら、ライブOSをシャットダウンし、システムを再起動します。システムは2つのパスワードを要求する必要があります。1つは内部ドライブの暗号化を解除し、もう1つは外部ドライブの暗号化を解除します。これらの両方を正しく入力すると、システムが起動し、ホームディレクトリが外部ドライブに存在するはずです。

外部ドライブが/homeとして使用されていることを確認する
すべてがホームディレクトリに残した場所にある場合、あなたは黄金色です。ターミナルウィンドウにmount | grep "/home"と入力できます。外付けドライブのLUKSパーティションが/homeにマウントされていることを示すはずです。

1
b_laoshi