web-dev-qa-db-ja.com

完全なディスク暗号化を使用したブートパーティションのサイズ変更

ブートパーティションのサイズ変更に関する一般的な質問に対する回答を見ました。私の場合、Ubuntu 12.04 Alternateをフルディスク暗号化でインストールしました。サイズ変更操作中にドライブをマウントできないため、メインパーティションが破損しませんか?

潜在的に再インストールを実行できるようにすべてをバックアップしましたが、暗号化の前にブートパーティションサイズを指定する方法がわかりません。

12
Tom Stone

私はこの質問が古いことを知っていますが、小さなブートパーティションの問題を検索し、ディスク暗号化を使用すると出てきます。

Ubuntuインストーラーubiquityは、パーティション化にpartmanを使用します。 「ディスク全体を使用」オプションが選択されている場合、パーティション構成は、ライブCDの/lib/partman/recipes-[Arch]/*および/lib/partman/recipes/*にあるパートマンレシピファイルから取得されます。インストーラーが使用するレシピを見つけて、/bootパーティションの最大サイズを変更します。私のシステムでは、使用されるデフォルトのレシピは/lib/partman/recipes/30atomicです。ターミナルを開きます。

ubuntu@ubuntu:~$ Sudo nano /lib/partman/recipes/30atomic

ブートパーティションのセクションに移動し、3番目の数字(以下の256)を必要なサイズに変更します(少なくとも512を推奨します)。

128 512 256 ext2
    $defaultignore{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext2 }
    mountpoint{ /boot }

このセクションでは、サイズが128Mから256Mの間で、優先度が512であり、このパーティションのサイズが他のパーティションに対してどれほど重要かを決定します。

で保存 Ctrl+O、 Enter。次に、インストーラーを起動し、通常どおりインストールします。

3
mkayaalp

完全なディスク暗号化とは、小さな暗号化されていないブートパーティションと、暗号化用の物理ボリューム(dm-crypt)である別のパーティションがあることを意味します。それらの間にスペースがない場合、/ bootのためのより多くのスペースを作成するために、暗号化されたパーティションを非破壊的にサイズ変更することはできません。

私の答えを見てください here -これが役立つかもしれません。

2
Marcin Kaminski

はい、ブートのサイズ変更は可能ですが、非常に複雑です。すべてのデータをバックアップした後にのみ、これを試みます。間違えた場合、データ損失の可能性は非常に高くなります。ライブUSB/CDから起動した後にこれらの操作を実行する必要があるため、起動可能なUbuntuライブUSB/CDを用意する必要があります。

Linuxコミュニティがブートパーティションに必要なサイズに関する要件を変更したとき、私はしばらく前に難しい方法を見つけました。以前は、ブートには10​​0〜200 MBで十分でしたが、コミュニティはそのサイズ要件を2倍にしました。これは、以前のガイドラインに従っていたユーザーに影響を与えました。

https://serverfault.com/questions/334663/what-is-the-recommended-size-for-a-linux-boot-partition

/ bootの現在の要件については、公式のガイドラインを参照してください。

https://help.ubuntu.com/community/DiskSpace

この記事の執筆時点では、ガイドラインでは/ bootを250MBから1GBのスペースに推奨しています。必要なスペースが最も大きい別のブートパーティションをお勧めします。ブートプロセス中は、ブートパーティションを暗号化解除する必要があります。起動プロセスでは、LUKS暗号化ディスクや暗号化されたHOMEディレクトリなど、さまざまな暗号化パーティションがマウントされますが、これらのアプローチには違いがあります。私の経験では、さまざまなUbuntuハードディスク暗号化オプションを使用すると、後で手動で介入する必要があるUbuntuをアップグレードするときに問題が発生する傾向があります。

一般的な概要については、よく書かれていると思われるこの記事を参照します。

「Debian/Ubuntu上の複数のパーティションを単一のパスフレーズで暗号化するLUKS」

https://www.martineve.com/2012/11/02/luks-encrypting-multiple-partitions-on-debianubuntu-with-a-single-passphrase/

パーティションを変更する必要があると感じたとき、私はこの投稿が非常に役立つことを発見しました。

「LUKS暗号化ファイルシステムのサイズを変更する方法」

https://ubuntuforums.org/showthread.php?t=726724

Gpartedは暗号化されたLUKSパーティションの移動をサポートしていないため、コマンドラインまたはGUIからgpartedコマンドを使用してこれを行うことはできません。 gpartedを使用してパーティションを作成し、ddを使用して、セクターごとのコピーを使用して暗号化されたパーティションを移動できることがわかりました。これには、セクターの観点からパーティションサイズを計算できることが含まれます。間違いを犯すことは、データの損失と再インストールを意味します。

私の場合、ブートパーティションのサイズを537MBから1GBに増やす必要があります。 Ubuntu 12.04から14.04へのアップグレードの一部としてこれが必要です。これにより、Ubuntuのアップグレードで/ bootに十分なスペースを見つけることができます。はい、autoremoveを削除して/ bootのスペースを解放できますが、一般的な要件が変更されたため、これらのガイドラインに合わせてブートを調整しました。これが私のパーティションレイアウトです。

Partition Table: gpt

Number  Start   End    Size   File system  Name  Flags
 1      1049kB  538MB  537MB  fat32              boot
 2      538MB   794MB  256MB  ext2
 3      794MB   240GB  239GB

パーティション#3にLUKS暗号化ディスクがあり、パーティション#1にブートがあるため、/ bootを拡張するのに十分なスペースがありませんでした。注Gpartedは暗号化されたパーティションであるため、パーティション#3を移動できません。これを修正するために、セクターの同じサイズの4番目のパーティションをディスクの最後に作成し、ddを使用してパーティション#3の内容をパーティション#4にコピーしました。ルートのサイズを必要な最小サイズに変更すると便利です。したがって、次の操作を実行して/ bootのサイズに対処しました。

  1. #3パーティションのルートファイルシステムを縮小する
  2. #3パーティションのサイズを変更(小さくする)
  3. 同じサイズの#4パーティションを作成しました(ディスクの最後)
  4. DDを使用して、#3パーティションのセクターを#4パーティションにコピーしました
  5. #3パーティションを削除して、ディスク上のスペースを解放しました
  6. Gpartedを使用して、#1および#2パーティションのサイズ変更と移動を行いました
  7. 縮小された#3(または#4パーティション)と同じサイズの新しい#3パーティションを作成しました
  8. DDを使用して、#4パーティションのセクターを#3パーティションにコピーしました
  9. #4パーティションを削除します
  10. #3パーティションのサイズを元の#3サイズに拡張します
  11. #3暗号化パーティションに含まれるファイルシステムを残りのスペースに更新しました

このようにして、パーティション#3を削除し、gpartedを使用してパーティション#1および#2を移動および拡大できました。上記のガイドに目を通すことで、前進するための十分な洞察が得られます。ここには表示されていませんが、ルートパーティションを縮小する際に、同じパーティション上のスワップボリュームグループを削除し、最後に再作成しました。これらはすべて、Linux Live USBフラッシュドライブから起動しながら実行されます。以下は、上記のガイドでは簡単に入手できなかった私のメモの一部です。

Blockdevは、セクターのパーティションのサイズを表示するのに役立ちます。これは、セクターサイズを計算するときに役立ちます。

Sudo blockdev --getsize /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p2
499712

Gpartedコマンド 'unit s'は、パーティションテーブルをセクターで表示します。パーティションのサイズ変更、削除、作成はすべてGpartedを使用して行われます。この方法では、すべての計算をセクターで行うことができます。セクター計算がどのように見えるかを確認したい場合、「ユニットコンパクト」はMB/GB形式に戻ります。

(parted) unit s
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     1050623s    1048576s    fat32              boot
 2      1050624s  1550335s    499712s     ext2
 3      1550336s  456656896s  455106561s

Resize2fsコマンドには、最小サイズに変更するための気の利いたオプションがあります。また、このパートでスワップボリュームグループを削除しました。

ubuntu@ubuntu:~$ Sudo resize2fs -M -p /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Resizing the filesystem on /dev/ubuntu-vg/root to 2261211 (4k) blocks.
Begin pass 3 (max = 1600)
Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/ubuntu-vg/root is now 2260992 blocks long.

パーティションテーブルのサイズを変更すると、戻ってgpartedを更新します。 4096 * 2260992とblockdevを使用して、ここで計算を確認しました。これがgpartedコマンドです。

(parted) resizepart 3
End?  [224419843s]? 225970179s 
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? yes                                                               
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on  failed: No such device or address
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     1050623s    1048576s    fat32              boot
 2      1050624s  1550335s    499712s     ext2
 3      1550336s  225970179s  224419844s

パーティション#3のセクターカウントサイズは、元のリストよりも小さいことに注意してください。つまり、gpartedを使用して、DDコピーの前に#4パーティションを作成できます。縮小することで、そのコピーのためにより多くのディスク容量が解放されます。

ubuntu@ubuntu:~$ Sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=1550336 count=224419844 seek=244437218
224419844+0 records in
224419844+0 records out
114902960128 bytes (115 GB) copied, 2146.1 s, 53.5 MB/s

DDコピー後、/ bootパーティションのサイズを拡大します。元の#3パーティションを削除してから、拡大した#1および#2パーティションの後に新しいセクターの場所でパーティション#3を再作成します。繰り返しになりますが、blockdevはセクターサイズの測定に使用されました。この#3パーティションは、元々#3より小さい#4パーティションと同じサイズとして作成しました。 DDを使用して、#4セクターを#3パーティションにコピーします。

ubuntu@ubuntu:~$ Sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=244437218 count=224419844 seek=9242624

コピー後、#4パーティションを削除し、#3パーティションのサイズを拡張します。私の場合、私は開始時のサイズに#3パーティションに復元しました。これを行うのに十分なスペースがありました。

(parted) resizepart 3                                                     
End?  [464349185s]? 464349184s                                           
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? y                                                                 
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on  failed: No such device or address
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     4192255s    4190208s    fat32              boot
 2      5146624s  9242623s    4096000s    ext2
 3      9242624s  464349184s  455106561s

Gpartedがパーティションサイズを増やした場合、ファイルシステムは更新されません。ファイルシステムは暗号化されたパーティション内に含まれているため、この変更を行うには、ファイルシステムを開いてマウントする必要があります。これを修正するには、次のコマンドを使用します。これは、必要に応じてライブシステムで実行できます。

user@zagyg:/$ Sudo resize2fs /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/ubuntu-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 13
The filesystem on /dev/ubuntu-vg/root is now 54266880 blocks long.

結論として、Gpartedは彼の操作をネイティブにサポートしていませんが、パーティションを管理するための非常に便利なツールです。私の意見では、fdiskよりも少し便利です。 GpartedとDDの間で、パーティションを管理し、Ubuntuツールを使用して12.04 LTSから14.04 LTSにアップグレードすることができました。

0
Doc