Расширение ROOT-раздела на LVM

Расширение ROOT-раздела на LVM

Иногда требуется увеличение корневого раздела #Linux в LVM-конфигурации. Рассмотрим, как это можно сделать без остановки виртуальной машины…

Предварительные данные

Имеется виртуальная машина с диском sda размером 20 GB:

Терминал
1
2
3
4
5
6
7
8
lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda               8:0    0   20G  0 disk
├─sda1            8:1    0    1M  0 part
├─sda2            8:2    0  1.9G  0 part /boot
└─sda3            8:3    0 18.1G  0 part
  ├─system-swap 254:0    0  3.8G  0 lvm  [SWAP]
  └─system-root 254:1    0 14.3G  0 lvm  /

Увеличиваем размер виртуального диска sda на 10 GB:

Терминал
1
2
3
4
5
6
7
8
lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda               8:0    0   30G  0 disk
├─sda1            8:1    0    1M  0 part
├─sda2            8:2    0  1.9G  0 part /boot
└─sda3            8:3    0 18.1G  0 part
  ├─system-swap 254:0    0  3.8G  0 lvm  [SWAP]
  └─system-root 254:1    0 14.3G  0 lvm  /

Экспорт параметров

Для начала экспортируем заранее подготовленные параметры в переменные окружения:

1
export PV='/dev/sda3'; export VG='system'; export LV='root'

Параметры

  • PV='/dev/sda3' - раздел на диске, который будет использоваться в качестве физического тома для LVM.
  • VG='system' - имя группы томов (VG).
  • LV='root' - имя логического тома (LV).

Расширение LVM

Увеличение раздела root при помощи одной команды:

1
echo 1 > "/sys/block/$( echo "${PV##*/}" | sed 's/[0-9]*//g' )/device/rescan" && parted -sf -a 'optimal' "${PV//[0-9]/}" "resizepart ${PV//[^0-9]/} 100%" && pvresize "${PV}" && lvextend -l +100%FREE "/dev/${VG}/${LV}"

В этой команде имеется 4 под-команды:

  • rescan - обновить информацию об устройстве sda.
  • parted - расширить раздел sda3 на всё свободное место.
  • pvresize - расширить физический том PV.
  • lvextend - расширить логический том LV.

Расширение ФС

Расширить файловую систему EXT4:

1
resize2fs "/dev/${VG}/${LV}"

Расширить файловую систему XFS:

1
xfs_growfs -d "/dev/${VG}/${LV}"

Итоговые значения

В итоге, имеем увеличение раздела sda3/system-root на всё свободное место:

Терминал
1
2
3
4
5
6
7
8
lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda               8:0    0   30G  0 disk
├─sda1            8:1    0    1M  0 part
├─sda2            8:2    0  1.9G  0 part /boot
└─sda3            8:3    0 28.1G  0 part
  ├─system-swap 254:0    0  3.8G  0 lvm  [SWAP]
  └─system-root 254:1    0 24.3G  0 lvm  /
Категории
Авторы
Мета
Лицензия
ID файла
UUID
Системный путь
Тип
Статистика
Количество слов
Время чтения
мин.