旧ハードディスク(約320GB)を新ハードディスク(480GB)へ移行した。(移行の理由は,単純。HDDをSSDにしたかった。)
ddrescueコマンドを利用して,移行したので,新ハードディスク内に約150GBの未使用領域が残っています。
かなり,もったいないです。
今回は,この余っている領域(unallocated)をシステム領域(ubuntu-vg/root)に追加します。
つまり,/dev/ubuntu-vg/rootを拡張します。
その前に,LVM(logical volume manager:論理ボリュームマネジャ)について,ちょっと。
- 物理ドライブ,従来のパーティションの領域ににとらわれない構成。
- 論理的にドライブやパーティションを構成する。
- 仮想化・抽象化された記憶領域を自由に作り出すことができる。
- システムを停止することなく構成を変えることができる。
- しかし,障害からの復旧が少し面倒。
LVMをイメージ(可視)化すると,下図のようになります。
まず,拡張前。
これが,拡張後。今回の最終的な論理ドライブの構成と成ります。
※図2:の実行コマンドのfstabは,コマンドではありません。マウントの設定を記述するファイルです。
※実際には,vi /etc/fstabのようにして,編集します。
今回は,「LVMの拡張」がテーマです。新規に,論理ボリューム(Logical Volume)を,作成しません。つまり,論理ボリュームの作成とは若干手順(使用するコマンド)が異なります。ご注意ください。作成の手順は,下記の参考サイトをご覧ください。
【前提条件】
- ハードディスクは,LVMで管理されて,Ubuntu18.04がインストールされている。
- 同じハードディスク上に,未使用領域(unallocated)が存在する。
- 未使用領域を利用するために/dev/ubuntu-vg/rootを拡張する。
<手順>
- unallocatedにパーティションを作成。
- pv作成。
- vg拡張。
- lv拡張。
- ファイルシステム拡張。
- マウント。(今回は不要。)
1.unallocatedにパーティションを作成。
最初に,現在のドライブの状態を確認。または,$ sudo fdisk -l で確認できます。
$ sudo fdisk /dev/sda
[sudo] ユーザ名 のパスワード:
fdisk (util-linux 2.31.1) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。
コマンド (m でヘルプ): p
ディスク /dev/sda: 447.1 GiB, 480103981056 バイト, 937703088 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x575f6bc9
デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ
/dev/sda1 * 2048 625141759 625139712 298.1G 8e Linux LVM
では,パーティションを作成します。(fdiskを実行した状態のままで。上の続き。)
nで,パーティション作成開始。
pで,基本パーティションを選択。このとき,1はすでにsda1で利用されているので,2が選択対象となる。
ただし,2を入力せずに,Enterを押しても構わない。デフォルトで2が選択されている。「6」
最初のセクタ値もデフォルトで設定されているので,そのままEnterを押す。「7」
最終のセクタ値は,必要な領域の大きさを,例えば50GBなら,+50Gなどで入力する。
今回は,すべてを指定したいので,デフォルト値を使う。そのままEnterを押す。「8」
pで,作成したパーティションを表示する。「12」
コマンド (m でヘルプ): n
パーティションタイプ
p 基本パーティション (1 プライマリ, 0 拡張, 3 空き)
e 拡張領域 (論理パーティションが入ります)
選択 (既定値 p): p
パーティション番号 (2-4, 既定値 2):
最初のセクタ (625141760-937703087, 既定値 625141760):
最終セクタ, +セクタ番号 または +サイズ{K,M,G,T,P} (625141760-937703087, 既定値 937703087):
新しいパーティション 2 をタイプ Linux、サイズ 149 GiB で作成しました。
コマンド (m でヘルプ): p
ディスク /dev/sda: 447.1 GiB, 480103981056 バイト, 937703088 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x575f6bc9
デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ
/dev/sda1 * 2048 625141759 625139712 298.1G 8e Linux LVM
/dev/sda2 625141760 937703087 312561328 149G 83 Linux
続けて,パーティションのタイプをLVMに変更する。
tで,パーティションタイプを変更する。「1」
パーティション番号はデフォルトで2となっているので,そのままEnterを押す。「2」
Lで,パーティションタイプの一覧表を表示する。「3」
8eで,Linux LVMを選択する。「30」
pで,パーションタイプの変更を確認する。/dev/sda2のタイプがLinux LVMとなっている。「34」
コマンド (m でヘルプ): t
パーティション番号 (1,2, 既定値 2):
16 進数コード (L で利用可能なコードを一覧表示します): L
0 空 24 NEC DOS 81 Minix / 古い Li bf Solaris
1 FAT12 27 隠し NTFS WinRE 82 Linux スワップ c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 隠し OS/2 また c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 拡張領域 c7 Syrinx
5 拡張領域 41 PPC PReP Boot 86 NTFS ボリューム da 非 FS データ
6 FAT16 42 SFS 87 NTFS ボリューム db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux プレーン de Dell ユーティリ
8 AIX 4e QNX4.x 第2パー 8e Linux LVM df BootIt
9 AIX 起動可能 4f QNX4.x 第3パー 93 Amoeba e1 DOS access
a OS/2 ブートマネ 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad ハ ea Rufus alignment
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD eb BeOS fs
f W95 拡張領域 (L 54 OnTrackDM6 a6 OpenBSD ee GPT
10 OPUS 55 EZ-Drive a7 NeXTSTEP ef EFI (FAT-12/16/
11 隠し FAT12 56 Golden Bow a8 Darwin UFS f0 Linux/PA-RISC
12 Compaq 診断 5c Priam Edisk a9 NetBSD f1 SpeedStor
14 隠し FAT16 <32M 61 SpeedStor ab Darwin ブート f4 SpeedStor
16 隠し FAT16 63 GNU HURD または af HFS / HFS+ f2 DOS セカンダリ
17 隠し HPFS/NTFS 64 Novell Netware b7 BSDI fs fb VMware VMFS
18 AST SmartSleep 65 Novell Netware b8 BSDI スワップ fc VMware VMKCORE
1b 隠し W95 FAT32 70 DiskSecure Mult bb 隠し Boot Wizar fd Linux raid 自動
1c 隠し W95 FAT32 75 PC/IX bc Acronis FAT32 L fe LANstep
1e 隠し W95 FAT16 80 古い Minix be Solaris ブート ff BBT
16 進数コード (L で利用可能なコードを一覧表示します): 8e
パーティションのタイプを 'Linux' から 'Linux LVM' に変更しました。
コマンド (m でヘルプ): p
ディスク /dev/sda: 447.1 GiB, 480103981056 バイト, 937703088 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x575f6bc9
デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ
/dev/sda1 * 2048 625141759 625139712 298.1G 8e Linux LVM
/dev/sda2 625141760 937703087 312561328 149G 8e Linux LVM
wで,描き込み。「1」
pで,再度,設定を確認する。「5」「12」
qで,終了。(fdiskから抜けます。)「24」
コマンド (m でヘルプ): w
パーティション情報が変更されました。
ディスクを同期しています。
$ sudo fdisk /dev/sda
fdisk (util-linux 2.31.1) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。
コマンド (m でヘルプ): p
ディスク /dev/sda: 447.1 GiB, 480103981056 バイト, 937703088 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x575f6bc9
デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ
/dev/sda1 * 2048 625141759 625139712 298.1G 8e Linux LVM
/dev/sda2 625141760 937703087 312561328 149G 8e Linux LVM
コマンド (m でヘルプ): q
2.pv作成。
/dev/sda2のpvを作成します。「1」
現在のpvの詳細情報を表示。「3」
/dev/sda2 が pv 149.04GBのサイズで作成されている。
しかし,まだ,VG Nameはない。
$ sudo pvcreate /dev/sda2
Physical volume "/dev/sda2" successfully created.
$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/sda1
VG Name ubuntu-vg
PV Size <298.09 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 76310
Free PE 0
Allocated PE 76310
PV UUID PeLmdX-wxyY-qKg6-kNuB-4X9m-Fgx1-sHpJKf
"/dev/sda2" is a new physical volume of "149.04 GiB"
--- NEW Physical volume ---
PV Name /dev/sda2
VG Name
PV Size 149.04 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID Z1wrqW-tRpE-eu97-0fTL-N3qp-ocAo-K7SBGy
3.vg拡張。
pv(/dev/sda2)を既存のVG(ubuntu-vg)に追加する。つまり,ubuntu-vgをpv(/dev/sda2)まで拡張する。
その前に,現在のvgの詳細情報を確認します。「1」「4」
vgは,ubuntu-vg,サイズは298.09GB。
含まれるlvは,/dev/ubuntu-vg/root,/dev/ubuntu-vg/swap_1,/dev/ubuntu-vg/vbox。pv(/dev/sda1)のみが表示されています。
pv(/dev/sda2)は,まだ表示されません。
$ sudo vgscan
Reading volume groups from cache.
Found volume group "ubuntu-vg" using metadata type lvm2
$ sudo vgdisplay -v ubuntu-vg
[sudo] ユーザ名 のパスワード:
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size <298.09 GiB
PE Size 4.00 MiB
Total PE 76310
Alloc PE / Size 76310 / <298.09 GiB
Free PE / Size 0 / 0
VG UUID u6VXLa-xePg-FJ63-3TCx-3XeL-9WZX-jzGBlc
--- Logical volume ---
LV Path /dev/ubuntu-vg/root
LV Name root
VG Name ubuntu-vg
LV UUID r9vicd-Vn2J-YR2T-YLba-ytzj-ATUe-I2c5m3
LV Write Access read/write
LV Creation host, time ubuntu, 2018-05-31 07:04:03 +0900
LV Status available
# open 1
LV Size 200.00 GiB
Current LE 51200
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/ubuntu-vg/swap_1
LV Name swap_1
VG Name ubuntu-vg
LV UUID c13yPk-KHSE-etQw-Hfcx-Gpzz-TNTz-AFTrTO
LV Write Access read/write
LV Creation host, time ubuntu, 2018-06-02 19:23:52 +0900
LV Status available
# open 2
LV Size 1.00 GiB
Current LE 256
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
--- Logical volume ---
LV Path /dev/ubuntu-vg/vbox
LV Name vbox
VG Name ubuntu-vg
LV UUID ctSyGt-Ysxs-pDqt-bQhD-5Kjg-2ehw-hlVpep
LV Write Access read/write
LV Creation host, time ubuntu, 2018-06-02 19:33:21 +0900
LV Status available
# open 1
LV Size <97.09 GiB
Current LE 24854
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
--- Physical volumes ---
PV Name /dev/sda1
PV UUID PeLmdX-wxyY-qKg6-kNuB-4X9m-Fgx1-sHpJKf
PV Status allocatable
Total PE / Free PE 76310 / 0
拡張する。「1」
vgの詳細情報を表示。「3」
サイズは447.12GB。約150GB増加。
追加されたpv(/dev/sda2)も表示されています。Free PE / Size 38154 / 149.04 GB,空きがあります。
しかし,/dev/ubuntu-vg/rootは,200GBのままで,増加していません。
$ sudo vgextend ubuntu-vg /dev/sda2
Volume group "ubuntu-vg" successfully extended
$ sudo vgdisplay -v ubuntu-vg
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 8
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 2
Act PV 2
VG Size 447.12 GiB
PE Size 4.00 MiB
Total PE 114464
Alloc PE / Size 76310 / <298.09 GiB
Free PE / Size 38154 / <149.04 GiB
VG UUID u6VXLa-xePg-FJ63-3TCx-3XeL-9WZX-jzGBlc
--- Logical volume ---
LV Path /dev/ubuntu-vg/root
LV Name root
VG Name ubuntu-vg
LV UUID r9vicd-Vn2J-YR2T-YLba-ytzj-ATUe-I2c5m3
LV Write Access read/write
LV Creation host, time ubuntu, 2018-05-31 07:04:03 +0900
LV Status available
# open 1
LV Size 200.00 GiB
Current LE 51200
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/ubuntu-vg/swap_1
LV Name swap_1
VG Name ubuntu-vg
LV UUID c13yPk-KHSE-etQw-Hfcx-Gpzz-TNTz-AFTrTO
LV Write Access read/write
LV Creation host, time ubuntu, 2018-06-02 19:23:52 +0900
LV Status available
# open 2
LV Size 1.00 GiB
Current LE 256
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
--- Logical volume ---
LV Path /dev/ubuntu-vg/vbox
LV Name vbox
VG Name ubuntu-vg
LV UUID ctSyGt-Ysxs-pDqt-bQhD-5Kjg-2ehw-hlVpep
LV Write Access read/write
LV Creation host, time ubuntu, 2018-06-02 19:33:21 +0900
LV Status available
# open 1
LV Size <97.09 GiB
Current LE 24854
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
--- Physical volumes ---
PV Name /dev/sda1
PV UUID PeLmdX-wxyY-qKg6-kNuB-4X9m-Fgx1-sHpJKf
PV Status allocatable
Total PE / Free PE 76310 / 0
PV Name /dev/sda2
PV UUID Z1wrqW-tRpE-eu97-0fTL-N3qp-ocAo-K7SBGy
PV Status allocatable
Total PE / Free PE 38154 / 38154
4.lv拡張。
lv(/dev/ubuntu-vg/root)を拡張します。空き約150GB全部を割り当てます。「1」
$ sudo lvextend -l +100%FREE /dev/ubuntu-vg/root
Size of logical volume ubuntu-vg/root changed from 200.00 GiB (51200 extents) to <349.04 GiB (89354 extents).
Logical volume ubuntu-vg/root successfully resized.
5.ファイルシステム拡張。
ファイルシステムを拡張します。「1」
$ sudo resize2fs /dev/ubuntu-vg/root
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/ubuntu-vg/root is mounted on /; online resizing required
old_desc_blocks = 25, new_desc_blocks = 44
The filesystem on /dev/ubuntu-vg/root is now 91498496 (4k) blocks long.
6.マウント(今回は不要)
今回は,すでにマウントされている/dev/ubuntu-vg/rootを拡張したので,マウント作業は,不要です。
念の為に,/etc/fstabを参考として掲載しておきます。「1」
$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/ubuntu--vg-root / ext4 errors=remount-ro 0 1
/dev/mapper/ubuntu--vg-swap_1 none swap sw 0 0
/dev/mapper/ubuntu--vg-vbox /media/vbox ext4 defaults,noatime 0 2
#/dev/mapper/ubuntu--vg-vbox /mnt ext4 defaults 0 0
/swapfile none swap sw 0 0
実際に,サイズが増えていることを確認します。「1」「4」「56」
約350GBになっていれば完了です。
$ df -h /dev/ubuntu-vg/root
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-root 343G 52G 275G 16% /
$ sudo lvdisplay -v ubuntu-vg
--- Logical volume ---
LV Path /dev/ubuntu-vg/root
LV Name root
VG Name ubuntu-vg
LV UUID r9vicd-Vn2J-YR2T-YLba-ytzj-ATUe-I2c5m3
LV Write Access read/write
LV Creation host, time ubuntu, 2018-05-31 07:04:03 +0900
LV Status available
# open 1
LV Size <349.04 GiB
Current LE 89354
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/ubuntu-vg/swap_1
LV Name swap_1
VG Name ubuntu-vg
LV UUID c13yPk-KHSE-etQw-Hfcx-Gpzz-TNTz-AFTrTO
LV Write Access read/write
LV Creation host, time ubuntu, 2018-06-02 19:23:52 +0900
LV Status available
# open 2
LV Size 1.00 GiB
Current LE 256
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
--- Logical volume ---
LV Path /dev/ubuntu-vg/vbox
LV Name vbox
VG Name ubuntu-vg
LV UUID ctSyGt-Ysxs-pDqt-bQhD-5Kjg-2ehw-hlVpep
LV Write Access read/write
LV Creation host, time ubuntu, 2018-06-02 19:33:21 +0900
LV Status available
# open 1
LV Size <97.09 GiB
Current LE 24854
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
$ sudo vgdisplay -v ubuntu-vg
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 9
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 2
Act PV 2
VG Size 447.12 GiB
PE Size 4.00 MiB
Total PE 114464
Alloc PE / Size 114464 / 447.12 GiB
Free PE / Size 0 / 0
VG UUID u6VXLa-xePg-FJ63-3TCx-3XeL-9WZX-jzGBlc
--- Logical volume ---
LV Path /dev/ubuntu-vg/root
LV Name root
VG Name ubuntu-vg
LV UUID r9vicd-Vn2J-YR2T-YLba-ytzj-ATUe-I2c5m3
LV Write Access read/write
LV Creation host, time ubuntu, 2018-05-31 07:04:03 +0900
LV Status available
# open 1
LV Size <349.04 GiB
Current LE 89354
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/ubuntu-vg/swap_1
LV Name swap_1
VG Name ubuntu-vg
LV UUID c13yPk-KHSE-etQw-Hfcx-Gpzz-TNTz-AFTrTO
LV Write Access read/write
LV Creation host, time ubuntu, 2018-06-02 19:23:52 +0900
LV Status available
# open 2
LV Size 1.00 GiB
Current LE 256
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
--- Logical volume ---
LV Path /dev/ubuntu-vg/vbox
LV Name vbox
VG Name ubuntu-vg
LV UUID ctSyGt-Ysxs-pDqt-bQhD-5Kjg-2ehw-hlVpep
LV Write Access read/write
LV Creation host, time ubuntu, 2018-06-02 19:33:21 +0900
LV Status available
# open 1
LV Size <97.09 GiB
Current LE 24854
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
--- Physical volumes ---
PV Name /dev/sda1
PV UUID PeLmdX-wxyY-qKg6-kNuB-4X9m-Fgx1-sHpJKf
PV Status allocatable
Total PE / Free PE 76310 / 0
PV Name /dev/sda2
PV UUID Z1wrqW-tRpE-eu97-0fTL-N3qp-ocAo-K7SBGy
PV Status allocatable
Total PE / Free PE 38154 / 0