← Все статьи

Как увеличить диск в Linux: LVM, обычный раздел, новый диск

Автор: Юрий Нефёдов, системный инженер · 14.04.2021 · обновлено 24.10.2026

Увеличение диска виртуальной машины в Linux

Как увеличить место на диске Linux, особенно на виртуальной машине. Порядок такой: увеличить диск в гипервизоре, показать системе новый размер, расширить раздел, затем LVM, если он есть, и в конце файловую систему.

Перед началом сделайте снимок виртуальной машины или резервную копию: ошибка в номере раздела может стоить данных.

1. Показать системе новый размер

После увеличения диска в гипервизоре система может не увидеть изменения без перезагрузки. Пересканировать уже подключённый диск:

echo 1 > /sys/block/sda/device/rescan

Если подключили новый диск, пересканируйте контроллеры. Список контроллеров и сканирование каждого:

ls /sys/class/scsi_host
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan

Или всё сразу одной строкой:

for host in /sys/class/scsi_host/*; do echo "- - -" | sudo tee $host/scan; ls /dev/sd* ; done

Проверить размеры дисков и разделов:

lsblk

2. Расширить раздел

Проще всего утилитой growpart: она расширяет раздел до конца диска. Указывается диск и номер раздела через пробел:

sudo yum -y install cloud-utils-growpart     # в Debian и Ubuntu: apt install cloud-guest-utils
growpart /dev/sda 2

То же можно сделать в parted. Запустите его и выведите таблицу разделов:

parted
p
Вывод parted: размер диска и номер раздела
Запомните полный размер диска из второй строки и номер раздела, который нужно расширить.

Расширьте раздел командой resizepart с номером раздела. Здесь расширяется корневой раздел номер 2:

resizepart 2
parted resizepart: ввод нового размера раздела
На вопрос о новом конце раздела введите полный размер диска из вывода parted.

Выйдите из parted командой quit.

3. Если используется LVM

Посмотрите группы и логические тома:

vgdisplay
lvdisplay

Расширьте физический том до нового размера раздела, затем логический том на всё свободное место. Ключ -r сразу увеличивает и файловую систему, отдельный шаг 4 тогда не нужен:

pvresize /dev/sda2
pvdisplay
lvextend -r -l +100%FREE /dev/mapper/vgroup1-root

Вместо /dev/sda2 укажите раздел или диск, который является физическим томом, вместо vgroup1-root — свой логический том. В CentOS 7 с разметкой по умолчанию это выглядит так:

lvextend -r centos/root /dev/vda2

4. Увеличить файловую систему

Если не использовали lvextend -r, расширьте файловую систему вручную. Для ext4 — resize2fs с указанием устройства, для XFS — xfs_growfs с указанием точки монтирования:

resize2fs /dev/mapper/cl-root   # LVM, ext4
resize2fs /dev/sda2             # обычный раздел, ext4
xfs_growfs /                    # XFS

Проверить результат: df -Th.

Добавить новый диск в LVM

Пример: новый диск /dev/sdb становится отдельным томом под резервные копии с точкой монтирования /backup.

fdisk -l                    # найти новый диск
fdisk /dev/sdb              # создать раздел: n, p, 1, Enter, Enter, w
vgcreate vl_backup /dev/sdb1                         # группа томов
lvcreate --name vl_backup -l +100%FREE vl_backup     # логический том на всё место
mkfs.xfs /dev/vl_backup/vl_backup                    # файловая система XFS
mkdir /backup                                        # точка монтирования
echo "/dev/vl_backup/vl_backup /backup xfs rw,noatime,attr2,inode64,noquota 0 0" >> /etc/fstab
mount -a                    # смонтировать всё из fstab
df -Th                      # проверить

Увеличить существующий том LVM после увеличения диска

echo 1 > /sys/block/sdb/device/rescan
pvresize /dev/sdb
lvdisplay                   # путь к логическому тому
lvextend -r -l +100%FREE /dev/vg_db/vl_db

Нужна помощь с настройкой?

Если задача сложнее, чем в статье, напишите мне. Первая консультация бесплатная.