web-dev-qa-db-ja.com

データを失うことなく暗号化されたファイルシステムを使用するようにext3パーティションを変換する方法は?

私の組み込みLinuxデバイスには2つのパーティションがあります。

  • oSを含む小さなルートパーティション
  • ext3を使用するビッグデータパーティション

暗号化されたファイルシステムを使用してデータパーティションを暗号化したい。パーティション上のデータを失いたくありません。ルートパーティションのサイズが小さすぎて、データパーティションのすべてのデータを保持できません。外部データストレージを使用することはできません。

すべてのファイルを別の場所にコピーせずに、データパーティションのファイルシステムをext3から暗号化されたFSに変換できるツールはありますか?

2
SKi

可能ですが、注意が必要です。問題が発生した場合、データはトーストになります。最初にバックアップする方法を見つけることを強くお勧めします。

外部データストレージは使用できないため、その場で使用する必要があります。

これは、データパーティション内のデータが現在のスペースの半分に収まることができることを前提としています。

  1. データパーティションのサイズを変更し、ディスクの最後で現在のサイズの半分に移動します。
  2. 新しく作成された空き領域に、新しい暗号化されたLUKSボリュームを作成し、その中に新しいファイルシステムを作成します。
  3. 古いパーティションから新しいパーティションにすべてのファイルをコピーしてから、古いパーティションを削除します。
  4. 暗号化されたボリュームのサイズを変更します(指示に基づいて ここ ):

    Cryptsetupを使用してクリプトのサイズを表示します。

    Sudo cryptsetup status crypt1
    

    これは、陰窩のサイズをセクター単位で示しています。

    オフセットをメモします

    offset: 2056 sectors
    

    Cryptsetupでサイズを変更します。

    Sudo cryptsetup -o 2056 -b 11800000 resize crypt1
    

    -o =オフセット(statusコマンドからこれを取得)-b =セクター単位のサイズ。

  5. 最後に、暗号化されたボリュームに含まれるファイルシステムのサイズをフルサイズに変更します。 ext3/4を使用した場合、Sudo resize2fs /the/partitionで十分です。

データが半分以上のスペースを占める場合は、暗号化された小さなパーティションから始めて、一部のファイルのサイズを変更して数回コピーすることで、この手順を適応させることができます。明らかにもっと面倒です。

2