Linux расширение размера диска ext4

Быстрое и безопасное увеличение корневого раздела с файловой системой ext4.

В мире системных администраторов всё чаще применяется виртуализация. И бывает что «сегодня» виртуальный сервер требует больше дискового пространства, чем вы ему выдали «вчера». Делюсь своей проверенной шпаргалкой, которая при определённых ситуациях поможет не только в виртуальном мире.

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

Самое простое позади и вы, образно говоря, превратили жёсткий диск выключенной виртуальной машины из 100 Гб в 200 Гб, но волшебным образом раздел(ы) (partitions) сами автоматически не увеличатся и файловая система (filesystem) внутри них тоже. Так легко и просто «всего лишь» появилось сырое (raw) дисковое пространство в блочном устройстве (block device), поверх которого существуют ваши разделы и файловые системы. В данном месте должен предупредить что речь идёт по большей части о виртуальных машинах и там редко можно встретить нижеописанных гостей и поэтому данная шпаргалка совсем НЕ предназначена для тех кто активно использует:

  • менеджер логических томов (LVM), придуманный в том числе и для лёгкого манипулирования разделами. Некоторые не используют LVM, как дополнительный (лишний) уровень абстракции и имеют полное на это право. Для увеличения томов следует использовать документацию LVM.
  • файловую систему ZFS, которая объединяет концепции файловой системы и менеджера логических дисков (томов). То есть ZFS — не просто файловая система и поэтому работу по увеличению томов следует выполнять её родными средствами.
  • файловую систему BTRFS, которая как и ZFS не является чисто файловой системой и может создавать и манипулировать томами. Любые манипуляции нужно проводить родными инструментами btrfs, тщательнейше сверяясь с документацией.

При такой потенциально опасной процедуре как увеличение дискового пространства, а затем разделов и файловой системы — лучше перебздеть, чем недобздеть. Выполните, сохраните и проанализируйте вывод команды lsblk, которая поможет лучше понять текущую разметку диска и связь с точками монтирования: lsblk -f

Из предыдущей команды вы должны точно понять с каким именно блочным устройством вы будете дальше работать (в примере это /dev/sda). Сохраните схему разделов sudo fdisk —list /dev/sda

И опять таки вынужден предупредить что если вы создавали отдельные разделы аля /var/ /usr/, как это было актуально и принято в старые времена у old school, то вы значит опытный товарищ и шпаргалка вам не нужна и увеличение нужного раздела в сложнейших разметках диска вы сделаете самостоятельно и легко. Дальше по тексту идёт вариант, когда гостевая виртуальная система использует простую разметку в виде одного корня и, возможно, идущему за ним и мешающего нам раздела swap.

Исторически так сложилось, что в мире UNIX, а затем и в Linux, механизм виртуальной памяти использовал раздел swap, а не файл swap, и поэтому установщики операционных систем создавали именно раздел, который сейчас точно нам помешает. В современных дистрибутивах Linux отказались от раздела swap и перешли на файл swap и это вам упрощает задачу.

Если у вас, судя по разметке, есть раздел swap, то рекомендую просто перейти на использование swapfile и отказаться от использования swap раздела.

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon —show

Читайте также:  Вирус что удаляет windows

После вышеперечисленных команд, вы правильно создадите swapfile размером в 1 Гб и убедитесь что он задействован в механизме виртуальной памяти наряду с текущим разделом swap. Теперь необходимо прописать в файле /etc/fstab строку

и закоментировать использование старого раздела swap. Настоятельно рекомендую сделать тестовую перезагрузку сервера, чтобы убедиться что в механизме виртуальной памяти задейстован только лишь swap файл sudo swapon —show и раздел swap можно начинать удалять. Для удаления раздела swap можно использовать как fdisk, так и более понятный cfdisk. У меня нет хрустального шара, я не вижу вашей разметки и не знаю уровень работы с дисками, поэтому будьте предельно осторожны и аккуратно удаляйте то, в чём уверены. В старых виртуальных машинах, я встречал swap раздел /dev/sda5 внутри расширенного (extended partition) /dev/sda2 и мне пришлось, как в матрёшке, сначала удалить «внутренний» sda5 и потом «внешний» sda2.

Есть масса способов увеличить размер вначале раздела и в данном месте у каждой утилиты свои закидоны. Рекомендую поставить пакет sudo apt install cloud-guest-utils и использовать команду sudo growpart /dev/sda 1 , которая как вы догадались увеличит раздел с порядковым номером 1 на величину свободного места.

Теперь собственно саму файловую систему ext4 самого корня: sudo resize2fs /dev/sda1

Проверьте что всё хорошо получилось: lsblk -f; df -h

Не забудьте закомментировать старый swap или исправить на новый в файле /etc/initramfs-tools/conf.d/resume и выполнить sudo update-initramfs -u

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

Неплохой вариант загрузиться с помощью диска LiveCD и сделать всё наглядно через GParted.

Источник

Расширение диска или раздела Linux

В инструкции рассмотрены сценарии расширения дискового пространства разделов в Linux без потери информации.

Принцип увеличения диска:

  1. Расширение раздела.
  2. Изменение размера файловой системы.

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

Любая работа с диском несет риск потери информации. Перед началом работ убедитесь в наличие резервных копий ценных данных.

Шаг 1. Расширение раздела

Обычные тома

Допустим, есть диск /dev/sdb и раздел /dev/sdb2, который нужно увеличить.

Сначала необходимо отмонтировать раздел:

В случае работы с корневой директорией, отмонтировать ее не получиться. В таком случае необходимо загрузить компьютер с LiveCD.

Подключаемся утилитой fdisk к /dev/sdb:

Если мы работаем с разделом более чем 2Тб, используем утилиту parted.

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

Удаляем раздел (не переживайте — все данные сохраняются):

* в моем примере, раздел для удаления на второй позиции.

Создаем новый раздел:

Номер раздела — 2:

На запрос начального и конечного секторов просто нажимаем Enter.

Если раздел был загрузочный, добавляем соответствующий флаг:

Еще раз проверяем, что получилось:

LVM-тома расширяются на лету, даже для корневых разделов. В данном примере, работаем с /dev/sda.

Открываем диск утилитой fdisk:

* напомню, что при работе с диском 2Тб и более, следует использовать утилиту parted.

Создаем еще один раздел:

Номер раздела оставляем тот, который предлагает система (просто нажимаем Enter).

Первый и последний сектора также оставляем по умолчанию для использования всего дискового пространства (еще два раза Enter).

Задаем тип раздела:

Выбираем номер раздела (в моем примере создавался раздел 3):

Командой L можно посмотреть список всех типов, но нас интересует конкретный — LVM (8e):

Проинформируем систему, что в таблице разделов произошли изменения:

Создаем физический том из нового раздела:

Смотрим наши Volume Group и для нужного добавляем созданный том:

vgextend vg_centos /dev/sda3

* в моем примере группа томов LVM называется vg_centos

Смотрим LVM-разделы и расширяем пространства для нужного:

Читайте также:  Проверка штрафов по windows

lvextend -l +100%FREE /dev/vg_centos/lv_root

* данная команда расширяем LVM-раздел /dev/vg_centos/lv_root, используя все свободное пространство (100%FREE).

Шаг 2. Изменение размера для файловой системы

После того, как на предыдущем шаге мы расширили раздел, система по-прежнему будет видеть старый по объему диск. Чтобы это исправить, необходимо выполнить команду по изменению размера файловой системы. В зависимости от последней, команды различаются.

Посмотреть файловую систему:

ext2/ext3/ext4:

XFS:

Reiserfs:

* обратите внимание, что в данных примерах используются различные устройства.

Если раздел был отмонтирован, монтируем его, например:

mount /dev/sda2 /mnt

Проверяем, что настройки применились:

Увеличение разделов с Gparted

Если работы выполняются на системе с графическим интерфейсом или есть возможность перезагрузить сервер и загрузиться с LiveCD, можно воспользоваться простым средством — утилитой Gparted, которая позволяем менять размер разделов мышкой.

Запускаем утилиту — выбираем диск, с которым будем работать — кликаем правой кнопкой по разделу, который хотим увеличить и выбираем Resize/Move:

В открывшемся окне с помощью мышки или форм меняем размер раздела:

Нажимаем кнопку Resize/Move.

Проверяем изменения в окне программы и сохраняем настройки кнопкой «Apply All Operations»:

Источник

Изменение размера раздела ext2/ext3/ext4 без потери информации

Вследствие неправильного разбиения дисковой системы на разделы или в силу других причин, иногда наступает момент, когда места на разделе уже не хватает. Но выход всегда есть! Причем, если у вас используется менеджер логических томов, то изменение размеров разделов с LVM гораздо проще, и возможно на лету (т.е без перезагрузки системы) даже с корневым разделом!

Для тех же, кто еще не использует LVM, рассмотрим изменение размеров разделов файловых систем ext2, ext3, ext4 операционной системы Linux с помощью утилит fdisk и resize2fs на примерах. Эти методы позволяют сохранить существующую информацию на разделах, но в целях безопасности лучше сделать копии важных данных. Поскольку утилиты работают с отмонтированным разделом, то для имзенения размера корневого раздела потребуется загрузка с установочного или live-диска. Если же у вас дескоп с графической системой, то можно воспользоваться легкой в применении программой gparted с графическим интерфейсом.

Увеличение размера раздела ext2/ext3/ext4

Имеется диск /dev/vdb размером 1 Гб с разделом /dev/vdb1 размером 100 Мегабайт, остальная область — неразмеченная.

Попробуем увеличить размер раздела /dev/vdb1 до максимального (использовалась версия fdisk util-linux-ng 2.18):

После последней команды попадаем в интерактивную оболочку fdisk. Жмем клавишу d (удалить раздел):

Команда (m для справки): d

Выбранный раздел 1

Создаём новый раздел:

Команда (m для справки): n

p основной раздел (1-4)

Номер раздела (1-4, по умолчанию 1): 1

Первый сектор (2048-2097151, по умолчанию 2048): r>

Последний сектор тоже выбираем по-умолчанию, нажав Enter:

Last сектор, +секторы or +size (2048-1097151, по умолчанию 1097151): r>

После этого записываем новую таблицу раздела на диск, нажав w:

Команда (m для справки): w

Таблица разделов была изменена!

Теперь увеличиваем размер файловой системы до последнего сектора (проверено на версии resize2fs 1.41.12):

После этого монтируем раздел обратно:

И проверяем новый размер раздела:

Уменьшение размера раздела ext2/ext3/ext4

Для уменьшения размера раздела с файловой системой ext2/ext3/ext4 необходимо выполнить те же действия, но в обратном порядке.

Например, уменьшим размер раздела до 100 Мб (главное, чтобы этот размер был больше занятого файлами пространства на разделе).

resize2fs /dev/vdb1 100M

Команда (m для справки): d

Команда (m для справки): n

p основной раздел (1-4)

Номер раздела (1-4, по умолчанию 1): 1

Первый сектор (2048-2097151, по умолчанию 2048): r>

Последний сектор выбираем не по-умолчанию, а соответственно новому размеру раздела:

Первый сектор (2048-2097151, по умолчанию 2048): +100M

После этого записываем новую таблицу раздела на диск, нажав w:

Команда (m для справки): w

Таблица разделов была изменена!

После этого монтируем раздел обратно:

И проверяем новый размер раздела:

Однако, если вы пользуетесь таким VPS-хостингом, как BudgetVM, то заботиться об изменении размеров разделов будет не нужно — достаточно сменить тариф!

Читайте также:  Кодек microsoft windows media player

Источник

Как быстро увеличить размер раздела диска на сервере

Всем привет! Недавно столкнулся с простой на первый взгляд задачей — увеличить «на горячую» размер диска на сервере Linux.

Описание задачи

Есть сервер в облаке. В моем случае, это Google Cloud — Compute Engine. Операционная система — Ubuntu, файловая система ext4 (подойдет для всех ext). Сейчас подключен диск размером 30 Гб. База растет, файлы пухнут, поэтому нужно увеличить размер диска, допустим, до 50 Гб. При этом мы ничего не отключаем, ничего не перезагружаем.

Внимание! Перед тем как начать, делаем бекап всей важной информации!

1. Для начала, проверим, сколько у нас всего свободного пространства. В консоли Linux пишем:


Простыми словами, у меня 30 Гб всего и 7.9 Гб сейчас свободно. Нужно увеличить.

2. Дальше я иду и через консоль своего хостера подключаю еще немного Гб. В Google Cloud это делается легко, без перезагрузки. Захожу в Compute Engine -> Диски -> Выбираю диск своего сервера — ему и поменяем размер:


Захожу внутрь, нажимаю «Редактировать» и увеличиваю размер диска до нужных мне размеров (в моем случае, до 50 Гб).

3. Итак, теперь у нас 50 Гб. Проверим это на сервере командой:


Видим свои новые 50 Гб, но пока использовать мы можем только 30 Гб.

4. Теперь удалим текущий раздел диска на 30 Гб, создадим новый на 50 Гб. У вас может быть несколько разделов. Возможно, вам нужно будет создать и несколько новых разделов. Для этой операции будем использовать программу fdisk, которая позволяет управлять разделами жесткого диска. Также важно понимать, что такое разделы диска и для чего они нужны — читаем тут. Для запуска программы fdisk используем команду:

5. Внутри интерактивного режима программы fdisk выполняем несколько операций.


Команда выводит список наших текущих разделов. В моем случае один раздел на 30 Гб и еще 20 Гб в свободном плавании, если так можно сказать.

6. Затем вбиваем:


Удаляем текущий раздел для того, чтобы создать новый на все 50 Гб. Перед операцией еще раз проверяем, сделали ли мы бекап важной информации!

7. Далее указываем программе:


Команда создает новый раздел. Все параметры стоит устанавливать по умолчанию — можно просто нажимать Enter. Если же у вас какой-то особый случай, то указываете свои параметры. Как видно из скриншота, я создал раздел на 50 Гб — то, что мне нужно.

8. В итоге указываю программе:


Эта команда записывает изменения и выходит из fdisk. Не пугаемся, что чтение таблицы разделов не удалось. Следующая команда поможет это исправить. Осталось совсем чуть-чуть.

9. Мы вышли из fdisk и вернулись в основную Linux — строку. Далее вбиваем, как нам посоветовали ранее:

Если все прошло успешно, то вы не увидите никакого сообщения. Если у вас не установлена программа partprobe, то установите ее. Именно partprobe обновит таблицы разделов, что позволит нам расширить раздел до 50 Гб в режиме онлайн. Идем дальше.

Подсказка! Установить partprobe можно вот так:

10. Теперь осталось переопределить размер раздела с помощью программы resize2fs. Она сделает это в режиме онлайн — у меня даже в этот момент скрипты работали и писали на диск.

Программа resize2fs перезапишет метаданные файловой системы. Для этого используем следующую команду:


Здесь sda1 — это имя вашего раздела. В большинстве случаев, это sda1, но возможны и исключения. Будьте внимательны. В итоге программа изменила нам размер раздела. Думаю, что это успех.

11. Теперь давайте убедимся, что размер раздела изменился и теперь у нас 50 Гб. Для это повторим самую первую команду:

Источник

Оцените статью