
最近、ディスクを 128GB SSD から 512GB SSD にアップグレードしました。/ パーティションは LUKS で暗号化されています。新しいディスクの空き領域をすべて使用できるようにパーティションを拡張する方法を探しています。すでに古いドライブを新しいドライブに dd で接続しました。
[root@localhost ~]# fdisk -l /dev/sda
Disk /dev/sda: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00009f33
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1026047 1024000 500M 83 Linux
/dev/sda2 1026048 250064895 249038848 118.8G 83 Linux
sda2 の後に約 380 GB の未使用領域があります。
より関連のある情報:
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
fedora_chocbar 1 3 0 wz--n- 118.75g 4.00m
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home fedora_chocbar -wi-a----- 85.55g
root fedora_chocbar -wi-a----- 29.30g
swap fedora_chocbar -wi-a----- 3.89g
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/mapper/encrypted fedora_chocbar lvm2 a-- 118.75g 4.00m
これを実行する方法については多くの情報があるようですが、説明はほとんどありません。これについてご助力いただければ幸いです。
答え1
OK! ついに決定的な答えが見つかりました。LUKS で暗号化されたボリュームを拡張する手順...
cryptsetup luksOpen /dev/sda2 crypt-volume
暗号化されたボリュームを開きます。parted /dev/sda
パーティションを拡張しますresizepart NUMBER END
。vgchange -a n fedora_chocbar
次のステップに進むために、VG の使用を停止します。cryptsetup luksClose crypt-volume
次の手順に進むために、暗号化されたボリュームを閉じます。cryptsetup luksOpen /dev/sda2 crypt-volume
もう一度開きます。cryptsetup resize crypt-volume
LUKS ボリュームのサイズを使用可能なスペースに合わせて自動的に変更します。vgchange -a y fedora_chocbar
VGをアクティブにします。pvresize /dev/mapper/crypt-volume
PVのサイズを変更します。lvresize -l+100%FREE /dev/fedora_chocbar/home
/home の LV を空き領域の 100% にサイズ変更します。e2fsck -f /dev/mapper/fedora_chocbar-home
サイズ変更されたファイルシステムに fsck マジックを実行します。resize2fs /dev/mapper/fedora_chocbar-home
. /home のファイルシステムのサイズを変更します (自動的に 100% の空き領域を使用します)
他の誰かにとってもこれが役に立つことを願っています。私のラップトップにはテスト VM 用に 300 GB 以上が確保されています。
答え2
LUKS パーティションのサイズを、サイズ変更されたコンテナーのサイズに単純に変更する方法を知りたいという人のために、コマンドは次のとおりです。
LUKS暗号化ボリューム開いた開かれたボリュームが としてマップされている場合は
opened-volume
、sudo cryptsetup resize /dev/mapper/opened-volume
LUKS 暗号化ボリュームのサイズをオンラインで変更するには...
次にコンテンツのサイズを変更します。
例えば、Ext4 ファイルシステムマウントされていてもサイズを変更することができます
sudo resize2fs /dev/mapper/opened-volume
あるいは、ライトVM物理ボリューム 内部LUKS で暗号化されたボリュームの場合は、以下を使用します
pvresize
:sudo pvresize /dev/mapper/opened-volume
私は、マウントされたファイル システム/アクティブ化された PV で中断することなくこれを実行しました。暗号化されたボリュームは LVM 論理ボリューム ( を使用lvresize
) 上にあったため、最初にアンマウントせずにコンテナーのサイズparted
を変更し、その後に続く空き領域を含めるために を使用しました。
答え3
もっと簡単な解決策を見つけました。Xubuntu をライブで実行し、パーティション マネージャーをインストールして起動します。暗号化されたパーティションを非常にうまく処理できます。
詳細は以下をご覧ください:http://e1z.ca/devlog/encrypted_partition_resize.html
答え4
parted を使ってコマンドラインからサイズを変更するLVMなし(楽しさを増すために、MS-DOS パーティション テーブル上)。
VPS を 50G から 150G に拡張しました。
Crypttab には次のように書かれています:
# cat /etc/crypttab
vda5_crypt UUID=c5e67d21-6af4-4d55-a4bc-2978e50c00c3 none luks
vda6_crypt /dev/vda6 /dev/urandom cipher=aes-xts-plain64,size=256,swap
サイズ:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vda5_crypt 47G 12G 35G 26% /
/dev/vda1 641M 63M 532M 11% /boot
パーティションのレイアウトは次のとおりです。
# parted /dev/vda print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 161GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 700MB 699MB primary ext4 boot
2 701MB 53.7GB 53.0GB extended
5 701MB 51.7GB 51.0GB logical
6 51.7GB 53.7GB 1985MB logical
ご覧のとおり、スワップ パーティション (パーティション 6) が邪魔になっています。パーティションを拡張するには、これを削除する必要があります。まず、スワップをオフにします。
swapoff -a && free -lm
「Swap:」行はすべてゼロになるはずです。
さて、難しいのは、パーティションのサイズを変更し、再起動して拡張する前に復元することです (parted はカーネルに通知できないと文句を言いますが、私はそれを何度か無視しました)。
まず、スワップ パーティションを削除します。
parted /dev/vda
(parted) rm 6
Error: Partition(s) 6 on /dev/vda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a
result, the old partition(s) will remain in use. You should reboot now before making further changes.
Ignore/Cancel? i
拡張パーティションを保持するために論理パーティション (2) をディスクの末尾 (-1) まで拡張します。
(parted) resizepart 2 -1
論理パーティション 5 のサイズを変更し、スワップ パーティション用のスペースを確保します (parted が再度エラーを出しますが、そのまま続行して (i) 無視します)。
(parted) resizepart 5 -4G
スワップ パーティションを再作成します。crypttab からわかるように、起動のたびにランダム化されるため、UUID を気にする必要はありません。サスペンドには適していませんが、サーバーやサスペンドなしの場合は、これが推奨される方法です。以前のパーティションの末尾 (157G) からディスクの末尾 (-1) まで作成します。
(parted) mkpart
Partition type? primary/logical? l
File system type? [ext2]? linux-swap
Start? 157GB
End? -1
結果を確認してください:
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 161GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 700MB 699MB primary ext4 boot
2 701MB 161GB 160GB extended
5 701MB 157GB 156GB logical
6 157GB 161GB 3998MB logical linux-swap(v1) lba
(parted) quit
今リブート通常はパーティションのロックを解除してシステムを起動する必要があります。
再起動後、スワップスペースを確認します。
# swapon
NAME TYPE SIZE USED PRIO
/dev/dm-1 partition 3.7G 0B -1
拡張する時間です! 'cryptsetup resize /dev/mapper/opened-volume' と 'resize2fs /dev/mapper/opened-volume' を使用してください
cryptsetup resize /dev/mapper/vda5_crypt
resize2fs /dev/mapper/vda5_crypt
結果、暗号化されたボリュームのサイズが 132G に変更されました。
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vda5_crypt 144G 12G 132G 9% /
/dev/vda1 641M 63M 532M 11% /boot