Увеличение размера диска или раздела Linux — достаточно частая процедура в жизни сисадмина. При этом, очень часто требуется выполнить эту операцию «на лету», без остановки работающих сервисов.
В моей практике чаще всего приходилось увеличивать раздела для хранения данных СУБД, вроде Postgres или Mysql, из-за растущего числа клиентов у бизнеса и быстро разрастающихся баз на проде, из-за чего процедура первое время казалась очень страшной. Но на самом деле не так страшен чёрт, как его малюют.
Однако, описанное выше, не отменяет необходимость создания резервной копии перед выполнением процесса. Помните — своевременный бэкап — сохраняет ваши нервы и деньги ваших клиентов. Всегда есть шанс, что что-то пойдет не по плану.
Перейдем к процедуре:
В примере использую тестовую ВМ с Ubuntu-20.04 на борту и 51Гб диска без LVM, у воображаемого хостера в вакууме.
Прежде всего нужно убедится, что увеличение раздела действительно требуется, потому проверяем место на диске, выполнив в консоли:
df -h
На скрине выше корневой раздел, сточкой монтирования «/
» занят на 22%, из 49Гб свободно только 36Гб. А нужно 40Гб, по этому добавим 5Гб нашей ВМ.
Тут вам следует расширить диск вашей машины в гипервозире или панели управления облаком. Я добавил диску 5Гб.
После физического расширения — проверяем, что место добавилось командой:
lsblk
Как видно на скрине — диск увеличился на 5Гб до 56Гб, если у вас размер диска не увеличился, то просим систему просканировать железо выполнив команду:
echo 1>/sys/class/block/sda/device/rescan
И по завершении — снова просим lsblk
. В результате вы должны увидеть увеличенный объем диска.
Диск увеличили, переходим к расширению раздела:
Запускаем утилиту fdisk
выполнив команду:
fdisk /dev/sda
Откроется консоль утилиты, для начала смотрим текущий статус, вводим:
p
Видим /dev/sda2
размером 49.5Гб который требуется увеличить.
Удаляем раздел введя в консоли:
d
Консоль предложит вам выбрать раздел, который вы собираетесь удалить, в моем случае это /dev/sda2
, по этому ввожу 2
При этом удалится только запись о диске, данные на нём сохранятся.
Теперь на его месте создаем новый раздел, с увеличенным объемом, вводим:
n
Консоль проведет вас через несколько шагов создания раздела:
Partition number (2-128, default 2)
— Логический номер нового раздела, по умолчанию 2, просто нажимаем наEnter
First sector (1050624-117440478, default 1050624)
— Адрес начала диска, вариант по умолчанию нас так же устраивает — оставляем пустым, жмёмEnter
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1050624-117440478, default 117440478)
— Адрес конца диска, по умолчанию самый последний сектор, нас устраивает — оставляем пустым, жмёмEnter
После этого система сообщит что нашла файловую систему, хотим ли мы её удалить, мы не хотим, потому отвечаем:
n
Проверяем результат, снова вводим:
p
Видим, что раздел увеличился, сохраняем и выходим из утилиты введя в консоли:
w
Теперь просим систему перечитать таблицу разделов, вводим:
partprobe /dev/sda
Команда не вернет никакого сообщения в консоль, а нам осталось расширить файловую систему, вводим:
resize2fs /dev/sda2
Команда вернет нам сообщение об увеличении раздела
И снова проверяем объем свободного места на диске:
df -h
Радуемся увеличившемуся месту.
Спасибо, подробно и понятно!
Рад, что статья вам помогла!
Спасибо за информацию!
Рад помочь!