Featured image of post Расширение диска в Linux

Расширение диска в Linux

Пошаговая инструкция по расширению диска в Linux без потери данных

В данном гайде будут рассмотрены сценарии расширения дискового пространства разделов в Linux без потери данных. Лучшим вариантом является использование growpart, но в инструкции описаны и другие способы, когда возможности установить данную утилиту нет. Расширение диска в Linux всегда состоит из двух этапов:

  • Увеличение раздела (partition)
  • Расширение файловой системы (filesystem)

Важно: порядок критичен, сначала раздел, потом файловая система. В зависимости от типа раздела и файловой системы, действия различаются.

Перед всеми манипуляциями делайте по возможности бэкапы

Проверка текущего состояния диска

Команды:

1
2
3
4
lsblk
df -h
sudo fdisk -l
sudo lsblk -f

Покажут:

  • Диски (/dev/sda, /dev/sdb)
  • Разделы (/dev/sda1, /dev/sda2)
  • Точки монтирования
  • Файловую систему

Установка утилиты growpart

Удобная утилита, которая позволит нам увеличить место не размонтируя диск - growpart.
В большинстве случаев отсутствует в системе. Устанавливаем:
Для Debian/Ubuntu систем:

1
2
apt update
apt install cloud-guest-utils -y

Для RHEL/CentOS систем:

1
2
yum update
yum install cloud-utils-growpart -y

После чего добавляем дисковое пространство в Cloud, VmWare или пр.

Система “на горячую” не знает, что размер диска изменился, поэтому выполняем rescan

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

Далее расширяем в зависимости от типа

Обычные разделы (без LVM)

После всех манипуляций расширяем обычный диск командой:

1
sudo growpart /dev/sda 1

где:

/dev/sda - диск
1 - номер раздела

После расширения раздела нужно “растянуть” файловую систему

Для ext4:

1
sudo resize2fs /dev/sda1

Для XFS:

1
sudo xfs_growfs /

Всё расширение в одну команду:

1
echo 1 > /sys/class/block/sda/device/rescan && growpart /dev/sda 1 && resize2fs -p /dev/sda1

LVM диски

Команды для информации по LVM:

1
2
3
sudo pvs
sudo vgs
sudo lvs

Расширяем раздел 3 до конца диска:

1
sudo growpart /dev/sda 3

где:

/dev/sda - диск
3 - номер раздела

Сообщаем LVM, что PV стал больше:

1
sudo pvresize /dev/sda3

Затем расширяем LV и сразу же файловую систему ключом -r:

1
sudo lvextend -l +100%FREE -r /dev/mapper/ubuntu--vg-ubuntu--lv

Расширение диска через fdisk

Бывают случаи, когда возможности установить growpart нет, но расширить диск нужно.
Для этого используется стандартная утилита fdisk. Она не умеет расширять “на горячую” и требует перезагрузки. Самый опасный способ, здесь важно соблюдать аккуратность чтобы не остаться без данных, или загрузчика.

Запускаем утилиту:

1
fdisk /dev/sda

Смотрим разделы:

1
p

Запоминаем для нужного диска: start sector sda2

Удаляем раздел:

1
d2

Создаём заново:

1
np2

Start, прописать вручную старый sector
После чего End по умолчанию и нажать Enter

Проверить новый раздел:

1
p

Сохраняем изменения:

1
w

И растягиваем файловую систему. (На этом этапе потребуется перезагрузка)

1
resize2fs /dev/sda2

p.s.

fdisk может не подойти для GPT, поэтому лучше использовать утилиту parted.

Расширение диска через parted

Используется как альтернатива fdisk:

  • для GPT-дисков
  • дисков более 2 ТБ
  • современных систем (cloud, NVMe и прочих)

Запускаем утилиту:

1
parted /dev/sda

Проверка текущей разметки:

1
print

Расширяем например 2 раздел:

1
resizepart 2

Но можем столкнуть с ошибкой, что диск используется. Тогда расширение возможно только через LiveCD или режим восстановления.

Выходим:

1
quit

Иногда требуется обновление таблицы разделов:

1
partprobe

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

1
resize2fs /dev/sda2

XFS:

1
xfs_growfs /

Готово.

Информацию можно использовать в свободном доступе, с указанием ссылки на сайт
Telegram GitHub YouTube