Увеличиваем LVM корневого раздела

Виртуальный сервер на Ubuntu Server 14.04 LTS поднятый на VMware ESXi 5.5. Жесткий диск всего 10 Гб, LVM, все настройки по умолчанию.

Требуется: расширить диск до требуемого размера без создания дополнительных дисков. Все найденные решения начинаются с совета «добавляем новый диск». Это, конечно, здорово, но не то что нужно.

Как обычно - заходим в настройки виртуальной машины и увеличиваем диск.

Чтобы Red Hat Enterprise Linux увидел новый диск надо дать команду

# echo "- - -" > /sys/class/scsi_host/host#/scan

Все действия выполняем с правами root

Добавляем раздел

До начала работы у меня есть три раздела:

# fdisk -l
   Device  Boot    Start        End      Blocks   Id  System
/dev/sda1    *      2048     499711      248832   83  Linux
/dev/sda2         501758   20969471    10233857    5  Extended
/dev/sda5         501760   20969471    10233856   8e  Linux LVM

А места всего 10 ГБ, из них под корневой раздел отведено 8.5 Гб, а свободно после установки системы всего 7.1 Гб:

# df -h | grep G
/dev/mapper/store00--vg-root  8.5G  1.1G  7.1G  13%  /

Добавляем новый раздел:

# fdisk /dev/sda
n (новый раздел)
p (раздел будет primary)
3 (номер раздела 3)
20971519 (номер первого сектора, высчитывается как последний сектор 20969471 плюс 2048)
<Enter> (автоматически подставляется последний сектор)
t (изменяем тип вновь созданного раздела)
3 (номер нашего нового раздела)
8e (тип раздела Linux LVM)
w (сохранить изменения в таблице разделов и закрыть fdisk) 

Запускаем partprobe (kpartx) или перезагружаем сервер (обязательно!)

Работаем с LVM

Для начала инициализируем раздел в качестве физического тома в LVM:

# pvcreate /dev/sda3

и добавляем его в группу store00-vg:

# vgextend store00-vg /dev/sda3

Теперь расширяем логический том на все доступное пространство:

# lvextend -l +100%FREE /dev/mapper/store00--vg-root

И осталось только увеличить «на лету» файловую систему (внимание, далеко не каждая ФС умеет это делать!):

# resize2fs /dev/mapper/store00--vg-root

Готово, проверяем что получилось:

# df -h | grep G
/dev/mapper/store00--vg-root  48G  1.1G  45G  13%  /

Все, раздел увеличен.