Шлифуем админское кунг-фу. Расширим раздел диска и файловую систему на лету без перезагрузки и без потери данных. Я буду расширять диск на виртуальной машине VMware с операционной системой Ubuntu.
Имеется диск /dev/sdb размером примерно 900 Гб. На диске есть раздел /dev/sdb1 с файловой системой ext4. Раздел забит на 89%, нужно добавить немного свободного места.
df -hT
На виртуальной машине увеличиваем диск до 1400 Гб. Командуем операционной системе выполнить сканирование диска sdb:
echo 1>/sys/class/block/sdb/device/rescan
Смотрим что получилось:
lsblk
Система увидела, что диск sdb стал больше.
Теперь выполним приём кунг-фу. С помощью fdisk удалим и заново создадим раздел без потери данных. Переходим к управлению разделами диска:
fdisk /dev/sdb
Отобразим список разделов:
p
У меня на диске только один раздел. Удаляем текущий раздел (данные сохранятся):
d
Создадим новый раздел:
n
Для основного (primary) раздела указываем:
p
Номер раздела 1 по умолчанию, остальное тоже по умолчанию. Сохраняем изменения:
w
Таблица разделов изменена.
Обращаем внимание на предупреждение:
WARNING: Re-reading the partition table failed with error 16: Устройство или ресурс занято.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Обновляем таблицу разделов диска sdb:
partx -u /dev/sdb
Расширяем файловую систему ext4 в разделе sdb1 до конца раздела:
resize2fs /dev/sdb1
Косметическая процедура. Отключаем зарезервированное под root место:
tune2fs -m 0 /dev/sdb1
Проверяем что получилось:
df -hT
Раздел /dev/sdb1 с файловой системой ext4 занимает 1.4 Тб. Раздел забит на 60%.
Задача выполнена. Раздел и файловая система расширены на лету без перезагрузки и без потери данных. И без остановки сервисов, работающих с этим разделом.
Ссылки
Linux — расширяем раздел на лету 2
Linux — расширяем раздел на лету 3
Linux — расширяем раздел на лету 4
Linux — расширяем раздел на лету 5