それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

暗号化ディスクを新しいSSDに移動させてサイズを増大させる enlarge lvm on Luks

ssd を移動させたい。しかし暗号化ディスクだ

HDD/ssd はデータ式年遷宮をするのだけど、今回は、暗号化ディスクだった。

手順

手順は次の通り

  • とりあえず、dd
  • ubuntu など live disk で起動させる
  • gdisk などでパーティションを拡大
  • crypt領域を拡大
  • lvm pv を拡大
  • lvm vg lv を拡大
  • ext4 を拡大

lvm の拡大とext4 の拡大は、よくあるので大丈夫でしょう。

問題は、 cryptdisk の拡大ですね。

他にも dump restore でまるっと新しいものにすることもできるけど、dump 結果の保存場所を考えるとやっぱり ddかなと

SSDの移動

ssd 間で データをコピーする

ubuntu の live usb で起動して

dd status=progress if=/dev/sda of=/dev/sdb bs=1M

gdisk でパーティションを最大にする

今回は、EFI パーティションを含むディスクなので、パーティションは3つ。 1 はEFI互換性システム、2がEFI。3がルートファイルシステムになる。

パーティションを最大にする

takuya@:~$ sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.4

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1050623   512.0 MiB   EF00  EFI System Partition
   2         1050624         2549759   732.0 MiB   8300
   3         2549760        69658623   32.0 GiB    8300  Linux filesystem

Command (? for help): d
Partition number (1-3): 3
Command (? for help): n
Partition number (3-128, default 3):
First sector (34-234441614, default = 2549760) or {+-}size{KMGTP}:
Last sector (2549760-234441614, default = 234441614) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'

Command (? for help): p

Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1050623   512.0 MiB   EF00  EFI System Partition
   2         1050624         2549759   732.0 MiB   8300
   3         2549760       234441614   110.6 GiB   8300  Linux filesystem

暗号化ディスクを最大にする

最初に 暗号化ディスクを解錠して読み込み可能にする。

cryptsetup luksOpen /dev/sdb my_crypt

つぎにリサイズをかける

cryptsetup resize /dev/mapper/my_crypt
Enter passphrase for /dev/sda3:

ここまでで、ほぼ完了に近い。

LVM PVでリサイズする

つぎに、lvm で pv を最大にする

pvresize /dev/mapper/my_crypt

確認する。

Before

takuya@:~$ sudo pvs
  PV                     VG Fmt  Attr PSize  PFree
  /dev/mapper/dm_crypt-0 vg lvm2 a--  27.92g    0

After

takuya@livaz:~$ sudo pvs
  PV                     VG Fmt  Attr PSize   PFree
  /dev/mapper/dm_crypt-0 vg lvm2 a--  110.55g 82.63g

LVM vg/lv を最大にする

このへんはいつもの

takuya@livaz:~$ sudo lvresize -l100%FREE /dev/mapper/vg-lv
  Size of logical volume vg/lv changed from 27.92 GiB (7148 extents) to 82.63 GiB (21154 extents).
  Logical volume vg/lv successfully resized.
takuya@livaz:~$

ext4 を最大にする

このへんも、いつものオンラインリサイズ

sudo resize2fs /dev/mapper/vg-lv

まとめ

cryptsetup resize

これを覚える

暗号化ディスクをddしてコピーしても大丈夫。 blkid などをちゃんと設定しておくと、ddしたそのままで動く。

参考資料

https://wiki.archlinux.org/index.php/Resizing_LVM-on-LUKS