LUKSパーティションを縮小するにはどうすればよいですか、「cryptsetup resize」は何をしますか?


14

単一のext4ファイルシステム(LVMなどが含まれていない)を含むLUKS暗号化パーティションのサイズを変更しています。cryptsetupよくあるご質問は、古いパーティションを削除して再作成が、多くの時間を無駄ような音ことをすることをお勧めします。そのため、手動でパーティションのサイズを慎重に変更します。

これまでのところ、私はする必要があると思います:

  1. ファイルシステムの(暗号化された)バックアップを作成します。重要!次のタスクを実行している間、データを最初に失うことはありません。
  2. 既存のext4ファイルシステムをアンマウントします(ライブCDから起動するなど)。Live CDから起動する場合は、次を使用して暗号化パーティションをマウントしますcryptsetup luksOpen /dev/sdXY ExistingExt4
  3. 既存のext4ファイルシステムのサイズを変更します
  4. cryptsetup resize /dev/mapper/ExistingExt4 -b $SECTORS
  5. 閉じる/ LUKSパーティションを「アンマウント」する cryptsetup luksClose ExistingExt4
  6. パーティションサイズを縮小します。

上記の手順は正しいですか?

ステップ4では、何を選ぶべき$SECTORSですか?このステップは必要ですか?cryptsetupマニュアルページには、本当にに記述されていないresizeオプション:

resize <name>
    resizes an active mapping <name>.
    If --size (in sectors) is not specified, the size of the underlying
    block device is used.

最後に、ext4パーティションを15 GiB縮小すると、parted?を使用して15 GiBを既存のパーティションから削除できると安全に想定できますか?はいの場合、その方法は?それが重要な場合、私のディスクはGPTパーティション化されています。


1
cryptsetupのサイズ変更オプションについてもいつも疑問に思っていました。cryptsetup FAQでも、「2.15 dm-cryptまたはLUKSパーティションのサイズを変更できますか?はい、dm-cryptもLUKSもパーティションサイズを保存しないため、できます。」それは、パーティションのサイズとは何の関係も持っていない場合は、なぜそれが...リサイズオプションを持っているん
ダゴ

回答:


15

バックアップ(ステップ1)およびアンマウント(2〜3)後、実行fsckしてファイルシステムが正常であることを確認します。

e2fsck -f /dev/mapper/ExistingExt4

それ以外は、手順はOKです。

$ SECTORSには何を選ぶべきですか?このステップは必要ですか?

この手順は必要です。そうしないと、パーティションが古い側に表示されたままになります。これはNautilusで確認されており、でサイズを変更した後でもresize2fs、LUKSパーティションは古いサイズとして表示されていました。を実行するcryptsetup resizeと、正しい番号が表示されます。 この手順は必要ありません。ファイルブラウザに表示される現在のサイズステータスにのみ影響します。サイズを変更し、パーティションを再度閉じる/開くと、番号が復元されます。そのため、後で示すようにLUKSパーティションを閉じると、これは廃止されます。

$SECTORSの出力を見ることで決定できますcryptsetup status ExistingExt4

    / dev / mapper / ExistingExt4はアクティブです。
      タイプ:LUKS1
      暗号:aes-cbc-essiv:sha256
      キーサイズ:256ビット
      デバイス:/ dev / sda2
      オフセット:2056セクター
      サイズ:     156049348セクター
      モード:読み取り/書き込み

1セクタは常に512バイトです(cryptsetupマニュアルページに記載)。したがって、15 GiBを減算するには、次のセクターサイズを使用します156049348 - 15 * 1024 * 1024 * 2 = 124592068

cryptsetup resize ExistingExt4 -b 124592068

パーティションのサイズ変更に関しては、partedGPTパーティションで正常に動作します。resize回避策(または解決策)として、このコマンドは機能しません。http//ubuntuforums.org/showthread.php?p = 8721017#post8721017に触発されたように、パーティション情報を削除して新しいパーティションを作成します。

のcryptsetup luksClose ExistingExt4partedのは/ dev / sda2は
GNU Parted 2.3
/ dev / sdaを使用する
GNU Partedへようこそ!コマンドのリストを表示するには、「help」と入力します。
(別れた)ユニットs 
(別れた)p
モデル:ATA INTEL SSDSA2CW08(scsi)
ディスク/ dev / sda:156301488s
セクターサイズ(論理/物理):512B / 512B
パーティションテーブル:gpt

番号開始終了サイズファイルシステム名フラグ
 1 34秒2082秒2049秒ブートbios_grub
 3 2083s 250034s 247952s ext2 RootBoot
 2 250035s 156301438s 156051404sすべて

15 GiBを削る必要があるため、新しい終わりはになり156301438 - 15 * 1024 * 1024 * 2 = 124844158ます。パーティション2を変更したいので、まずそれを削除してから、ラベル「Everything」で再作成する必要があります(必要に応じて変更できます)。:このディスクにはGPTレイアウトがあります。MBRのために、あなたは交換する必要がありますEverythingによって、primaryまたはextended(MBRのパーティションがいリサイズ、テストされていないいないテストされてとされていない、それは未検証ですのでお勧めします)。

警告:次のコマンドはデータ破壊しました。何が起こっているのか理解せずにコピーしないでください。セクターの寸法は、必要がありそうでないあなたが、変更することがWILLあなたのパーティションを破壊します。私は、あなたのstupidnessに責任がないように思いますBACKUP BACKUPのバックアップにデータデータを危険にさらす前に、記憶媒体。

(別れた)rm 2 
(別れた)mkpart Everything 250035s 124844158s
警告:最適なパフォーマンスを得るために、作成されるパーティションは適切に調整されません。
無視/キャンセルしますか?無視 
(分離)p
モデル:ATA INTEL SSDSA2CW08(scsi)
ディスク/ dev / sda:156301488s
セクターサイズ(論理/物理):512B / 512B
パーティションテーブル:gpt

番号開始終了サイズファイルシステム名フラグ
 1 34秒2082秒2049秒ブートbios_grub
 3 2083s 250034s 247952s ext2 RootBoot
 2 250035s   124844158s 124594124s                すべて
(別れた)終了

上記のparted例では、私のセクターは整列されていません。これは以前のインストールの誤りであり、あまり注意を払ってはいけません。

それだ!cryptsetup statusおよびfile -Ls /dev/...を使用して、すべてが正常であることを確認してから再起動できます。


1
完全にバックアップせずにこのソリューションを使用することは強くお勧めします。失敗する可能性が高いためです。ただし、完全バックアップがある場合は、新しいパーティションを作成する方がはるかに簡単です。

人間がこれをしたと思いますか?とにかく、これで遊ぶ前にバックアップを実行する必要があることを明確に強調しました。これを手動で行う前にバックアップを実行する必要があることは明らかだと思いました...それでも、明確な指示と検証方法を考えると、誰かがこれを台無しにすることができますか?
-Lekensteyn

あなたが言及した失敗の原因もありますか?誰もが提供された情報が間違っていると主張することができますが、私はそれを確認したいと思います。将来的には他のユーザーにも役立つかもしれません
...-Lekensteyn

Arnoはメーリングリストでこの投稿について話していました:saout.de/pipermail/dm-crypt/2013-September/003521.html
フィリップ

rm 2およびの代わりに、名前または開始オフセットを変更せずにパーティションのサイズを変更するmkpart [part-type] [start] [end]こともできresizepart 2 [end]ます。
ロブW

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.