Увеличить размер раздела диска в Ubuntu
21.02.2023
itpro
Linux, Ubuntu
Комментариев пока нет
Если вы используете виртуальные машины с Ubuntu Linux, скорее всего рано или поздно вы столкнетесь с необходимостью расширения места на виртуальном диске. Установщик Ubuntu по умолчанию предлагает использовать логические LVM тома для развертывания ОС, поэтому мы рассмотрим расширение диска на примере именно LVM.
В первую очередь нужно увеличить размер виртуального диска со стороны вашей системы виртуализации:
После того, как вы расширили диск в ВМ, нужно расширить его в гостевой ОС (в этом примере это Ubuntu 22.04 LTS). Чтобы Ubuntu увидела добавленное место, выполните принудительный рескан дисков с помощью команды:
Для управления разделами используйте утилиту cfdisk:
В данном примере видно, что на диске /dev/sda есть свободное место размером 1 Гб. Выберите раздел, который нужно расширить (/dev/sda3 в этом примере) и выберите в меню Resize.
Чтобы сохранить изменения в разделах диска, выберите в меню Write.

Закройте утилиту cfdisk.
После того, как вы увеличили физический раздел, нужно увеличить размер логического раздела Ubuntu. Проверьте, что у вас используется используются тома LVM:

- Physical Volume (PV) — ваши физические диски /dev/sda , /dev/sdb , и т.д.
- Volume Group (VG) — группы томов, в которые объединены физически диски. Например ubuntu-vg = /dev/sda + /dev/sdb . Также VG можно состоять всего из одного диска.
- Logical Volume (LV) — логический раздел в группе томов. Например, ubuntu-vg/root , ubuntu-vg/home , и т.д.
Проверьте свободное место в группе томов LVM с помощью:
Для расширения раздела LVM нужно сначала увеличить PV (Physical Volume):
$ sudo pvresize /dev/sda3
Теперь можно увеличить логический том. В этом примере мы расширим том за счет всего доступного пространства:
Инструкция: как расширить файловую систему в Linux. Часть 1

Чаще всего задача расширить файловую систему возникает при работе с облачной инфраструктурой. Виртуализация позволяет экономить на дисковом пространстве и выделять его столько, сколько необходимо в конкретный момент. Но простого расширения ресурсов недостаточно, об изменениях необходимо сообщить операционной системе. Сегодня ведущий архитектор #CloudMTS Дмитрий Фисенко в формате пошагового туториала расскажет, как это сделать.
Материал будет интересен начинающим системным администраторам, а также разработчикам, которые хотят ближе познакомиться с файловыми системами.
Подготовительная работа
Мы рассмотрим сценарии с двумя вариантами разметки диска — с использованием LVM и логических разделов, а также без них. Поскольку мы будем работать в облачной среде, где важны доступность и непрерывность сервисов, сфокусируемся на подходах, позволяющих расширить файловую систему без перезагрузки виртуальной машины (хотя сделать это не всегда возможно).
В рамках руководства нам также потребуется утилита growpart. К сожалению, нельзя просто так взять и расширить смонтированную файловую систему. Стандартные утилиты вроде fdisk или GParted предлагают предварительно размонтировать раздел. Вот команды установки growpart для различных семейств Linux-систем:
Также рекомендуем сформировать на виртуальной машине точку восстановления (snapshot) на случай, если что-то пойдет не по плану.
Когда нет LVM
Рассмотрим задачу, когда на диске присутствует два раздела — загрузочный и корневой. Они смонтированы в произвольную точку. Вот как это выглядит в графическом интерфейсе GParted:
Расширять будем корневой раздел. Первым делом необходимо увеличить доступный объем жесткого диска через панель управления облачной инфраструктурой #CloudMTS — с 7 до 8 Гбайт.
Увеличение диска займет какое-то время, а мы вернемся на тестовый стенд. Отобразим структуру разделов с помощью команды:
Параметры print и free отвечают за отображение структуры разделов и неразмеченного пространства.
Мы увеличили объем диска, но все равно не видим в выдаче команды parted свободную память. Можно перезагрузить сервер, но мы решили, что по возможности не будем останавливать виртуальную машину. Вместо этого, выполним команду:
Если мы попытаемся снова отобразить структуру разделов командой parted , то увидим предупреждение. Мы используем таблицу разделов в формате GPT. Информация о ней хранится в начале и в конце диска (для резервирования). Когда мы увеличили объем физического накопителя, сменился конец адресного пространства. Система предлагает автоматически переместить резервные файлы. Соглашаемся и пишем в командной строке fix.
Появилось свободное дисковое пространство в размере одного гигабайта:
Прежде чем перейти к расширению файловой системы, необходимо разметить новое пространство и расширить сам раздел. Здесь нам пригодится утилита growpart — выполним команду:
Мы расширили раздел, но файловая система осталась нетронутой. Вот как это выглядит в GParted:
Давайте расширим ФС командой resize2fs . Если у вас xfs, то нужно указывать точку монтирования. В случае с ext2, ext3 и ext4 достаточно выполнить команду с указанием блочного устройства, которое монтируется в файловую систему. Мы используем ext4, поэтому выполним:
Таким образом, мы успешно расширили файловую систему до размера диска.
Теперь рассмотрим другую ситуацию, когда ФС находится в логическом диске, созданном в расширенном разделе. Так структура выглядит в древовидном формате:
У нас два основных раздела — sdc1 и sdc2. Второй — расширенный, и внутри него можно сформировать неограниченное количество новых разделов. Перейдем в облачную панель управления и увеличим диск на один гигабайт, а затем обновим информацию об устройстве sdc уже известной командой:
Конкретно этот диск мы разметили в формате MBR, поэтому здесь мы не видим предупреждений о переносе резервной копии таблицы разделов, как в случае с GPT.
Вернемся в консоль и отобразим информацию о диске:
Чтобы не захламлять выдачу, временно уберем отображение свободного пространства на диске:
У нас есть три раздела: основной под номером один, расширенный и логический под номерами два и пять.
Чтобы понять, какие разделы находятся в extended, необходимо сверить их начало и конец. Здесь мы видим, что конец второго раздела соответствует концу пятого раздела — 5369 Мбайт. И размер последнего на один мегабайт меньше. Так мы можем утверждать, что пятый раздел находится во втором разделе.
Чтобы расширить пятый раздел, необходимо предварительно увеличить второй. Для этого выполним:
Вот так результат команды будет выглядеть в графическом отображении:
Раздел extended был расширен до конца всего раздела — вокруг неразмеченной области появилась голубая рамка. Теперь расширим пятый раздел, который пока занимает 4,5 Гб из доступных 5,5 Гб. В консоли пишем:
Теперь и желтая рамка, обозначающая пятый раздел, протянулась до конца физического диска. Но мы видим, что файловая система все еще заканчивается сильно раньше. В нашем примере мы используем файловую систему xfs, которая наиболее распространена на CentOS, хотя иногда её применяют и на Debian с Ubuntu.
Для расширения файловой системы выполним команду:
Обратите внимание, что в случае с xfs мы указываем не само физическое устройство, а точку монтирования. В нашем случае это /mnt/sdc5 , но в частном случае это будет корень.
Вновь обращаемся к GParted и видим, что файловая система расширена до конца.

Если есть доп. разделы
Рассмотрим ситуацию, когда после расширяемого раздела идут другие — SWP, Home, Data и так далее.

В случае SWP облачная инфраструктура предлагает выход из ситуации. Мы можем выделить операционной системе столько памяти, чтобы ей вообще не приходилось применять своп. Затем раздел можно отключить из автозагрузки и удалить, а освободившееся дисковое пространство присоединить к целевому.
Есть и другой вариант, позволяющий сохранить SWP. С точки зрения виртуальной машины диск представляет собой файл в системе хранения данных с разными расширениями — например, VDI или VHDX. Мы можем изменить локацию SWP на файл в файловой системе, которую планируем расширять. Мы не будем говорить о переносе SWP в файл, так как это выходит за рамки нашего материала. Однако в интернете можно найти подробные руководства — вот одна из таких инструкций.
Если вместо SWP за целевым разделом следует раздел с данными, ситуация становится интереснее. К сожалению, в этом случае нельзя расширить файловую систему без простоя. Поэтому на реальной инфраструктуре лучше запланировать технологическое окно в вечернее время.
Для решения задачи мы воспользуемся GParted Live CD — скачать его можно на официальном сайте. Переходим на вкладку Download и загружаем образ.

Подключаем образ к виртуальной машине. Последовательность действий зависит от конкретной системы виртуализации. Загружаемся с диска и видим уже привычный графический интерфейс для расширения файловой системы. Как обычно, начинаем с увеличения доступного объема диска в панели управления облаком.
В этом примере разделом с данными выступает linux-swap. Обновляем информацию по разделам в консоли:
Затем — информацию в графическом интерфейсе. Видим неразмеченное дисковое пространство объемом в один гигабайт.
Расширим раздел extended до максимального размера. Для этого правой кнопкой мыши вызываем выпадающее меню и выбираем пункт Resize/Move.
Откроется новое всплывающее окно, в котором необходимо подвинуть ползунок в крайнее правое положение. И подтвердить операцию.
alt=»image» />
Далее открываем меню Resize/Move для раздела с данными — в нашем случае это linux-swap.

Мышкой перемещаем красную рамку в конец жесткого диска, подтверждаем операцию.
Теперь на главном экране раздел linux-swap находится в конце блока extended.
Далее остается произвести расширение целевого раздела и файловой системы.
В верхней части экрана нажимаем кнопку Apply All Operations.
Спустя какое-то время утилита применит все изменения.
У такого подхода есть одна серьезная проблема. Если раздел linux-swap довольно объемный, то его перемещение в конец диска может занять два-три часа. Все это время приложения и сервисы виртуальной машины будут простаивать. Вопрос можно решить, если сформировать в виртуальной инфраструктуре несколько дисков под каждый раздел. Так вы всегда сможете расширить условные /data и /root, поскольку они будут независимы друг от друга.
Другим решением, которое позволит избежать простоев, является разметка диска с помощью LVM.
Если есть LVM
К сожалению, для работы с LVM нет нормальных программ с графическим интерфейсом. Точнее, они есть, но не слишком информативные. Так с логическими томами приходится работать исключительно в командной строке.
В контексте LVM существуют физические тома (physical volume) — это целые неразбитые диски или их разделы. Внутри физических томов также есть разделы, объединённые в volume-groups. Эти группы, в свою очередь, дробятся на логические разделы — еще один уровень абстракции.
Что нам это дает? Рассмотрим два варианта разметки разделов диска. Чисто технически они ничем не отличаются — первый загрузочный, а второй физический том с LVM. В последнем случае он уже разбит на дополнительные разделы.

Может быть и следующая картина. Два раздела лежат в extended partition, а третий стоит отдельно, но добавлен в volume group. На отдельном диске дополнительно выделен раздел и также добавлен в эту группу.

Дополнительный уровень абстракции LVM позволяет нам расширять файловую систему вне зависимости от порядка разделов и предоставляет несколько подходов. Например, можно просто увеличить объём раздела, а можно создать новый и «приписать» его в логическую группу. Главное не переборщить с дроблением, чтобы разметку было проще читать.
Небольшая ремарка — если на диске есть раздел, который монтируется как блочное устройство и не участвует в LVM, то при расширении могут возникнуть проблемы. Здесь нужно или подключать образ Live CD, или перемещать раздел на отдельный виртуальный диск — тогда он не будет мешать увеличивать основной и логические разделы и volume groups.

Перейдем непосредственно к расширению файловой системы с LVM. На нашем тестовом стенде есть диск /dev/sde со следующей структурой:
В панели управления облаком увеличим объем диска на один гигабайт. Отобразим информацию о нем в консоли:
Мы видим, что у нас добавилось свободное дисковое пространство.
Разделы, использующие LVM, помечены соответствующим тегом. В этом конкретном примере мы будем увеличивать диск под номером три до необходимого нам объёма. Нам не придется ставить дополнительные утилиты, так как все инструменты по умолчанию присутствуют во всех популярных дистрибутивах Linux.
Мы воспользуемся возможностями parted . Но предварительно отобразим размер свободного пространства в мегабайтах для наглядности.
Далее смотрим на ключевые столбцы — Start, End и Size. Свободное дисковое пространство заканчивается на точке в 6442 Мбайта.
Чтобы расширить последний раздел, прописываем команду:
Обратите внимание, что мы уменьшили цифровое значение в конце на один мегабайт. Проверим внесенные изменения:
Свободное дисковое пространство уменьшилось до одного мегабайта, а наш второй раздел имеет объем в 3806 Мбайт.
Вернемся в GParted и обновим информацию по разделам. Сейчас LVM в /dev/sde3 не «растянут» до конца.
Посмотрим на объем текущего физического тома – для этого выполним:
Как физические тома у нас помечены два устройства — sde2 и sde3. Последний имеет объем в 2,5 Гб, но в GParted эта цифра равна 3,5 Гб. Чтобы исправить ситуацию и синхронизировать значения, нужно выполнить команду:
Повторяем pvdisplay и видим, что объем физического раздела увеличился.
Визуальное отображение в GParted также изменилось:
Чтобы отобразить существующие логические разделы, обратимся к команде:
В нашей группе томов присутствуют два логических раздела — root и data.
Мы можем увеличить любой из этих томов. Для примера расширим /root следующей командой:
Ключ -r автоматически расширит и раздел, и файловую систему внутри него (как в случае с xfr, так и с ext). Переходим в GParted и видим, что операция выполнена успешно:
Теперь, если прописать в консоли df -h , мы увидим, что устройство dev/mapper/vg-root имеет объем в два гигабайта, хотя изначально его объем был равен одному гигабайту.

Как определить разметку
Поговорим о том, как понять, какая разметка у нас используется — с LVM или без? Если после выполнения команды df -h вы видите исключительно устройства типа /dev/sda — блочные устройства — то разметка выполнена без LVM. Также можно ввести команду lvscan . Если LVM не используется, то она ничего не отобразит. В противном случае покажет используемые логические разделы. На изображении ниже их два — root и data.
Иногда консоль может отобразить достаточно экзотические варианты, когда используется не dev, а dm0, dm1 и так далее. Чтобы понять, что это за устройства и какие логические разделы следует расширять, можно воспользоваться следующей командой. Она выведет всю информацию об устройствах.
Например, мы видим, что dm-0 смонтирован в /mnt/sde-vg-root. Достаточно часто этот путь указывает в корень. И есть еще одна команда:
Она отображает все устройства вида dm-*. Как видно на скриншоте ниже, в нашем случае их два.

Пока на этом всё. В следующей части поработаем с реальной виртуальной машиной на операционной системе Linux Mint.
Расширение дискового пространства в Ubuntu Linux
Часто бывает необходимо расширить имеющееся дисковое пространство без потери места и данных. Данная инструкция описывает весь процесс расширения — от добавления дополнительного файлового пространства в панели администрирования до настройки операционной системы и того, как выполнить увеличение размера диска в Ubuntu.
Перейдите в панель управления, выберите ваш сервер, перейдите на вкладку Действия, выберите Выключить средствами ОС и нажмите кнопку Выключить. После этого перейдите на вкладку Настройки, Конфигурация, увеличьте величину диска и нажмите кнопку Изменить (рис. 1).
Рис. 1. Конфигурация виртуального сервера
В нашем примере величина дискового пространства в корневом каталоге составляла 20 Гб. Сделаем жесткий диск виртуальной машины равным 40 Гб.
После нажатия на кнопку Изменить нужно дождаться выполнения операции и можно будет снова запускать сервер.
Рис. 2. Изменение конфигурации выполнено
Расширение дискового пространства в операционной системе Linux
Перед тем как в Ubuntu увеличить диск, посмотрим, как выполнена разметка и сколько сейчас дискового пространства доступно:
Рис. 3. Доступно 19 G
Как видите, общая величина группы томов /dev/mapper/ составляет 19 Гб. Наша задача — расширить размер этой группы томов до полной величины диска.
Увеличение дискового пространства на Ubuntu 18.04
При работе с облаком иногда возникают ситуации, когда не хватает свободного дискового пространства. Чтобы увеличить объем заходим в панель администратора и вручную прописываем новый размер диска. Теперь переходим к настройкам сервера для добавления объема в конфигурацию. Ниже приведена инструкция со скриншотами на примере сервера Ubuntu 18.04.
Как увеличить размер дискового пространства
1. Подключаемся к Ubuntu Server под именем суперпользователя (root) и проверяем текущий размер дискового пространства.
echo 1 > /sys/block/sda/device/rescan
Утилита запросит конфигурацию сервера и определит изменения. В нашем случае она транслирует Ubuntu информацию о новом размере дискового пространства.
2. Воспользуемся встроенной программой parted – введем её в терминал. Отобразим список разделов, используя ключ p: (parted) p
На мониторе появится следующее:

Скриншот №1. Пример.
Красным выделены пункты, которые запоминаем или записываем. Первая строка отображает количество гигабайт, которые доступны на текущем разделе.
Вторая – текущий размер диска, объем которого будет увеличен. Его легко определить по метке LVM.
3. Информация собрана, запускаем процедуру слияния, используя следующий синтаксис:
(parted) resizepart 2
Где «2» означает номер тома, на котором происходит изменение дискового пространства:
![]()
Скриншот №2. Изменяем размер.
Утилита уточнит какое значение добавить. В квадратных скобках указан текущий размер раздела. Вводим новое значение – просто добавляем к числу требуемый объем.
В нашем примере выглядит так: 64.4 + 20 = 84.4 Gb
Выходим из приложения parted командой quit.
(parted) quit
4. После закрытия на экране появится сообщение о необходимости обновить информацию:

Скриншот №3. Информационный текст.
Вручную транслируем операционной системе информацию об изменениях. Вводим:
pvresize /dev/sda2
, где /dev/sda2 – номер устройства и раздела, на котором произошли изменения.
5. Меняем значение тома командой:
lvextend -r -l +100%FREE /dev/mapper/vgroup1-root
Добавление дискового пространства прошло успешно, но, дабы убедиться, проверим результат.