- Расширение диска или раздела Linux
- Шаг 1. Расширение раздела
- Обычные тома
- Шаг 2. Изменение размера для файловой системы
- Увеличение разделов с Gparted
- Как изменить размер Ext4
- Как увеличить размер Ext4
- Шаг 1. Увеличение раздела
- Шаг 2. Увеличение файловой системы
- Шаг 3. Проверка на ошибки
- Шаг 4. Монтирование
- Как уменьшить размер Ext4
- Шаг 1. Проверка файловой системы
- Шаг 2. Уменьшение файловой системы
- Шаг 3. Уменьшение раздела
- Шаг 4. Монтирование
- Выводы
- Linux изменение размера диска без потери данных
- Как изменить размер раздела Linux
- Расширение разделов без потери данных
- Исходная проблема
- Файловая система занимает весь диск, без таблицы разделов
- Файловая система на LVM-томе
- Файловая система в обычном разделе
- Способ решения
Расширение диска или раздела Linux
В инструкции рассмотрены сценарии расширения дискового пространства разделов в Linux без потери информации.
Принцип увеличения диска:
- Расширение раздела.
- Изменение размера файловой системы.
В зависимости от типа раздела и файловой системы, действия различаются.
Любая работа с диском несет риск потери информации. Перед началом работ убедитесь в наличие резервных копий ценных данных.
Шаг 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-разделы и расширяем пространства для нужного:
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»:
Источник
Как изменить размер Ext4
На данный момент Ext4 — это самая популярная файловая система для операционных систем семейства Linux, она используется как на серверах, так и на домашних компьютерах, и там и там часто возникает необходимость изменить размер раздела.
В сегодняшней статье мы рассмотрим как расширить раздел Ext4 в графическом интерфейсе или с помощью терминала.
Как увеличить размер Ext4
Шаг 1. Увеличение раздела
Если вы хотите изменить размер корневого раздела файловой системы, то вам обязательно надо будет загрузится с LiveCD иначе вы не сможете редактировать примонтированный раздел. Если это не системный раздел, то его можно отмонтировать и затем изменять. Для увеличения раздела будем использовать parted. Сначала запустите утилиту:
sudo parted /dev/sda
Здесь /dev/sda — это ваш диск, один из разделов которого вы хотите расширить. Сначала выведите текущую таблицу разделов, для этого выполните:
Как видите, здесь есть только один раздел и он занимает 16 гигабайт, а всего на диске доступно 21,7 гигабайт. Чтобы расширить Ext4 и занять всё это пространство используйте команду resizepart:
(parted) resizepart 1 21,7GB
Первый параметр, это номер раздела, который вы узнали из предыдущей команды, а второй, размер раздела, доступный размер тоже выводится в предыдущей команде. Теперь утилиту можно закрыть:
Шаг 2. Увеличение файловой системы
Осталось увеличить самую файловую систему до конца раздела. Для этого воспользуемся утилитой resize2fs. Она может работать даже когда файловая система смонтирована.
sudo resize2fs /dev/sda1
Утилита по умолчанию увеличивает файловую систему на всё доступное пространство раздела.
Шаг 3. Проверка на ошибки
После этого не помешает проверить всё на ошибки с помощью fsck:
sudo e2fsck -f /dev/sda1
Шаг 4. Монтирование
Затем можно монтировать полученную файловую систему и проверять её размер, как видите, теперь она занимает 20 гигабайт:
df -h | grep /dev/sda1
Как уменьшить размер Ext4
Допустим, нам надо отделить от корневого раздела четыре гигабайта и создать из них другой раздел, например, раздел подкачки. Для этого сначала надо уменьшить размер файловой системы, а затем самого раздела.
Шаг 1. Проверка файловой системы
Перед тем, как уменьшить размер Ext4 надо проверить её на ошибки. Если файловая система смонтирована, размонтируйте её:
sudo umount /dev/sda1
Для этого выполните:
sudo e2fsck -f /dev/sda1
Шаг 2. Уменьшение файловой системы
Уменьшение размера файловой системы тоже выполняется с помощью resize2fs. Но теперь утилите надо передать в параметрах новый размер файловой системы. Например, 16 гигабайт:
resize2fs /dev/sda1 16G
Размер можно указывать в килобайтах (K), мегабайтах (M) или гигабайтах (G). Теперь вы знаете как изменить размер Ext4. В выводе утилита вы увидите сколько теперь блоков занимает файловая система. Это число надо умножить на 4096 чтобы получить размер файловой системы в байтах. Цифра четыре взята потому что размер одного блока в Ext4 равняется четырём килобайтам. Например, в данном случае это будет 17179869184 байт или 16 гигабайт:
Теперь надо уменьшить размер раздела с помощью parted. Но значение желательно брать чуть больше, для безопасности, потому, что если вы зацепите пространство, где расположена файловая система, то работать с ней вы больше не сможете.
Шаг 3. Уменьшение раздела
Запустите parted и используйте ту же команду resizepart чтобы уменьшить размер раздела:
sudo parted /dev/sda
(parted) resizepart 1 16,1GB
Чтобы закрыть программу выполните:
Шаг 4. Монтирование
После этого файловую систему можно монтирововать и проверять её размер:
sudo mount /dev/sda1 /mnt
df -h | grep /dev/sda1
Выводы
В этой статье мы рассмотрели как уменьшить раздел Ext4, а также как его увеличить через терминал. Если вы работаете в графическом интерфейсе, то всё выполняется гораздо проще. Для этого можно воспользоваться утилитой Gparted. Она автоматически меняет как размер раздела, так и файловой системы. К тому же программа может не только менять положение конца раздела, но и начала, иногда это может быть полезно. А как вы меняете размер файловой системы? Напишите в комментариях!
Источник
Linux изменение размера диска без потери данных
Изменение размера разделов — потенциально опасная операция, которая может повлечь потерю данных. При отсутствии опыта все операции предварительно лучше проверять на виртуальных машинах без ценных данных.
Как изменить размер раздела Linux
Поменять размер существующего раздела можно используя такие утилиты как fdisk и parted.
Первая по умолчанию используется для абсолютного большинства дистрибутивов, поэтому рассмотрим ее. Ниже порядок действий с краткими комментариями
Посмотреть список разделов
Выбрать для работы определенный раздел
Чтобы операция была возможно на диске должно быть неразмеченное пространство.
Command (m for help): p
Disk /dev/vda: 10.7 GB, 10737418240 bytes
16 heads, 63 sectors/track, 20805 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x89fc115c
Device Boot Start End Blocks Id System
/dev/vda1 2048 10487807 5242880 83 Linux
Сейчас одна партиция /dev/vda1 . Добавим места.
Партицию понадобится удалить, затем не применяя изменений создать новую большего размера поверх этой. Должен совпадать исходный блок, с которого начинается раздел.
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/vda1 2048 10487807 5242880 83 Linux
Command (m for help): d
Selected partition 1
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Command (m for help):p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-20971519, default 2048): [Enter]
Using default value 2048
Конец раздела ставим +7Гб вместо начальных 5 Гб.
Last sector, +sectors or +size
Убеждаемся в том, что все верно
Device Boot Start End Blocks Id System
/dev/vda1 2048 13673922 6835937+ 83 Linux
Записываем изменения на диск
Command (m for help): w
Далее требуется перезагрузить сервер чтобы таблица разделов перечиталась. Изменить размер раздела Linux без перезагрузки может parted, об этом в следующем материале.
Источник
Расширение разделов без потери данных
Разработал программу для простого расширения раздела и файловой системы (xfs, ext3,4) без потери данных. github.com/rekby/fsextender/releases/latest
Исходная проблема
Файловая система занимает весь диск, без таблицы разделов
В самом простом случае (одна файловая система на весь диск, без разделов) достаточно вызвать xfs_growfs или resize2fs и дело сделано.
Файловая система на LVM-томе
Если файловая система работает поверх LVM — расширение немного усложняется, но всё еще безопасно: добавить новый раздел, создать там физический том LVM, добавить его в LVM группу, расширить логический том и после этого расширять файловую систему. Побочным эффектом тут будет нагромождение разделов и физических томов, если место добавляется постепенно несколько раз. порциями. А если используется msdos-таблица разделов, то надо еще вспомнить про использование расширенных разделов, иначе их количество ограничено 4-мя штуками и потом надо шаманить и переписыванием таблицы разделов.
Файловая система в обычном разделе
Самый опасный вариант для ручного исполнения: нужно вручную удалить и пересоздавать раздел так, чтобы он начинался там же где и предыдущий, а заканчивался на последнем свободном секторе диска.
Тут требуется повышенная внимательность и аккуратность — при ошибке в цифрах можно легко потерять все данные. Кроме этого в качестве побочного эффекта меняются GUID GPT-разделов, к которым могут быть какие-то привязки в настройках системы.
Способ решения
Во всех случаях, когда возможно я решил переписывать таблицу разделов. В автоматическом режиме это не так опасно как вручную (в msdos-таблице вся таблица умещается в одном секторе, а запись сектора атомарна, а в GPT-таблицах есть контрольная сумма и запасная копия на случай повреждения первой таблицы).
Языком реализации выбран go, т.к. на выходе очень просто получить статический бинарник, без внешних зависимостей, это важно т.к. один и тот же бинарник должен запускаться разных версиях ОС от centos 5.4 x86 до последних ubuntu 14.04 x64 и далее — по мере обновления шаблонов.
Написаны две библиотеки для работы напрямую с таблицами разделов: github.com/rekby/mbr — для работы с таблицей разделов msdos (внешний интерфейс не очень, но работает исправно) и github.com/rekby/gpt — для работы с таблицами GPT.
Написан расширитель разделов и файловых систем. Он умеет:
1. Расширять основные (primary, не logical) разделы таблицы msdos и разделы GPT по месту, без потери данных, флагов, индентификаторов и т.п. (если ядро поддерживает, то и без перезагрузки — как например в ubuntu 14.04).
2. Расширять физические тома LVM (LVM-PV) по месту без потери данных, если возможно расширить раздел под LVM-PV.
2. Создавать новые разделы для расширения LVM (во избежании недоразумений разделы создаются только на дисках, где уже есть готовая таблица разделов).
3. Фильтровать диски для создания новых разделов (по умолчанию новые разделы создаются только на тех дисках, где уже размещена эта LVM-группа, фильтры можно отключить).
4. Расширять файловые системы ext3,ext4, xfs.
5. Автоматом определяет нужна ли перезагрузка после перезаписи таблицы разделов.
Работа с таблицами разделов происходит напрямую перезаписью данных в служебных областях диска. Так получается безопаснее, чем работа через инструменты вроде parted, т.к. время нарушения целостности таблицы разделов меньше, а в ряде случаев отсутствует совсем.
Работа с LVM и расширение файловых систем делается через внешние вызовы соответствущих команд (pvcreate, xfs_growfs и т.п.), так что эти команды должны быть установлены и присутствовать в PATH, т.е. быть доступными для вызова просто по имени. В подавлящем большинстве случаев это условие выполняется естественным образом.
В итоге сейчас расширение файловой системы и нижележащий разделов выглядит так:
Источник