Имеем один диск в виртуальной машине размером 40GB. ВМ работает под OS Ubuntu 16.04. Нужно увеличить корневой раздел на 10G при этом не останавливая виртуальную машину.
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 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: gpt
Disk identifier: 87245036-2212-4699-9BA4-420AEE9FDF9A
Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 2050047 999424 488M Linux filesystem
/dev/sda3 2050048 83884031 81833984 39G Linux LVM
Здесь sda1 файлы UEFI, sda2 это /boot, а на sda3 создан LVM том.
root@mail:~# vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 39.02 GiB
PE Size 4.00 MiB
Total PE 9989
Alloc PE / Size 9989 / 39.02 GiB
Free PE / Size 0 / 0
VG UUID k8gsGL-x03z-MfY4-24EU-yFyD-7jUM-djPvSE
Как видим у нас одна группа ubuntu-vg и нет свободного места, что бы ее расширить (Free PE / Size 0 / 0)
Посмотрим логические тома:
root@mail:~# lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/root
LV Name root
VG Name ubuntu-vg
LV UUID nBK0Sf-pu53-i7p6-kPdR-a5RU-TGEa-w0jsyH
LV Write Access read/write
LV Creation host, time ubuntu, 2016-10-07 14:10:07 +0300
LV Status available
# open 1
LV Size 31.52 GiB
Current LE 8069
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/ubuntu-vg/swap_1
LV Name swap_1
VG Name ubuntu-vg
LV UUID 3y99hr-GmH8-RkqC-59Jn-ftfC-EtR8-KvJj4p
LV Write Access read/write
LV Creation host, time ubuntu, 2016-10-07 14:10:07 +0300
LV Status available
# open 2
LV Size 7.50 GiB
Current LE 1920
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
Имеем два логических тома, одна под swap, вторая под корень.
root@mail:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 346M 0 346M 0% /dev
tmpfs 73M 2.5M 71M 4% /run
/dev/mapper/ubuntu--vg-root 31G 1.7G 28G 6% /
tmpfs 365M 0 365M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 365M 0 365M 0% /sys/fs/cgroup
/dev/sda2 473M 118M 331M 27% /boot
/dev/sda1 511M 7.1M 504M 2% /boot/efi
tmpfs 73M 0 73M 0% /run/user/0
Как видим под корень у нас выделено 31GB.
Необходимо увеличить место в корневом разделе. Идем сначала в parted
root@mail:~# parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 42.9GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot, esp
2 538MB 1050MB 512MB ext2
3 1050MB 42.9GB 41.9GB lvm
(parted)
Теперь запустим просмотр лога и увеличим размер диска в гипервизоре на 10GB
root@mail:~# journalctl -af
Nov 29 14:49:39 konovalov1001 kernel: sd 0:0:0:0: [storvsc] Sense Key : Unit Attention [current]
Nov 29 14:49:39 konovalov1001 kernel: sd 0:0:0:0: [storvsc] Add. Sense: Capacity data has changed
Nov 29 14:49:39 konovalov1001 kernel: sd 0:0:0:0: [sda] 104857600 512-byte logical blocks: (53.7 GB/50.0 GiB)
Nov 29 14:49:39 konovalov1001 kernel: sd 0:0:0:0: [sda] 4096-byte physical blocks
Nov 29 14:49:39 konovalov1001 kernel: sda: detected capacity change from 42949672960 to 53687091200
В логе видим изменение размера диска, идем снова в parted
root@mail:~# parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 53.7GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot, esp
2 538MB 1050MB 512MB ext2
3 1050MB 42.9GB 41.9GB lvm
Видим изменение размера
Переключаемся в режим просмотра секторов
(parted) unit s
(parted) p
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 104857600s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2048s 1050623s 1048576s fat32 boot, esp
2 1050624s 2050047s 999424s ext2
3 2050048s 83884031s 81833984s lvm
(parted)
Тут обычно расширяют размер командой resize, но это уже выпилили,
(parted) resize 3
Error: The resize command has been removed in parted 3.0
Поэтому удалим раздел и создадим его заново, бояться не нужно, надо только запомнить стартовый сектор, в данном случае 2050048s.
Удаляем третий раздел
(parted) rm 3
Error: Partition(s) 3 on /dev/sda 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
(parted) p
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 104857600s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2048s 1050623s 1048576s fat32 boot, esp
2 1050624s 2050047s 999424s ext2
(parted)
Игнорируем ошибку и смотрим разделы, раздел успешно удален, все нормально, теперь создаем новый раздел со стартовым сектором 2050048s и указываем -1 в качестве конечного сектора, это значит до конца диска.
(parted) mkpart name 2050048s -1
Warning: You requested a partition from 2050048s to 104857599s (sectors 2050048..104857599).
The closest location we can manage is 2050048s to 104857566s (sectors 2050048..104857566).
Is this still acceptable to you?
Yes/No? Yes
(parted) p
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 104857600s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2048s 1050623s 1048576s fat32 boot, esp
2 1050624s 2050047s 999424s ext2
3 2050048s 104857566s 102807519s name
(parted)
выходим из parted через q.
Теперь расширяем физический том
root@mail:~# pvresize /dev/sda3
Physical volume "/dev/sda3" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
Проверяем
root@mail:~# pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name ubuntu-vg
PV Size 49.02 GiB / not usable 1.98 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 12549
Free PE 2560
Allocated PE 9989
PV UUID Bm77kO-pZTZ-Azw5-sPgD-3vKO-Gsii-KvnY3l
Смотрим группу
root@mail:~# vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 49.02 GiB
PE Size 4.00 MiB
Total PE 12549
Alloc PE / Size 9989 / 39.02 GiB
Free PE / Size 2560 / 10.00 GiB
VG UUID k8gsGL-x03z-MfY4-24EU-yFyD-7jUM-djPvSE
Видим, что появилось пространство, которое сможем использовать для расширения логического тома (Free PE / Size 2560 / 10.00 GiB)
Расширяем логический том используя все доступное пространство
root@mail:~# lvextend /dev/ubuntu-vg/root -l +100%FREE
Size of logical volume ubuntu-vg/root changed from 31.52 GiB (8069 extents) to 41.52 GiB (10629 extents).
Logical volume root successfully resized.
Проверяем
root@mail:~# lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/root
LV Name root
VG Name ubuntu-vg
LV UUID nBK0Sf-pu53-i7p6-kPdR-a5RU-TGEa-w0jsyH
LV Write Access read/write
LV Creation host, time ubuntu, 2016-10-07 14:10:07 +0300
LV Status available
# open 1
LV Size 41.52 GiB
Current LE 10629
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
Видим, что размер увеличился и стал: 41.52 GiB
Осталось только расширить файловую систему, вот так:
root@mail:~# resize2fs /dev/ubuntu-vg/root
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/ubuntu-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/ubuntu-vg/root is now 10884096 (4k) blocks long.
Смотрим вывод df:
root@mail:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 346M 0 346M 0% /dev
tmpfs 73M 2.5M 71M 4% /run
/dev/mapper/ubuntu--vg-root 41G 1.7G 38G 5% /
tmpfs 365M 0 365M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 365M 0 365M 0% /sys/fs/cgroup
/dev/sda2 473M 118M 331M 27% /boot
/dev/sda1 511M 7.1M 504M 2% /boot/efi
tmpfs 73M 0 73M 0% /run/user/0
Успешно увеличилили системный раздел на лету на 10 GB.