- Увеличение раздела диска в Linux на лету
- Сам процесс ресайза раздела прост:
- Инструкция по изменению раздела
- Расширяем раздел в панели управления VDS или Proxmox
- Размечаем раздел
- Физически изменяем размер
- Комментарии
- Оставить свой комментарий
- Изменение размера раздела ext2/ext3/ext4 без потери информации
- Увеличение размера раздела ext2/ext3/ext4
- Уменьшение размера раздела ext2/ext3/ext4
- Расширение разделов без потери данных
- Исходная проблема
- Файловая система занимает весь диск, без таблицы разделов
- Файловая система на LVM-томе
- Файловая система в обычном разделе
- Способ решения
- Расширение диска или раздела Linux
- Шаг 1. Расширение раздела
- Обычные тома
- Шаг 2. Изменение размера для файловой системы
- Увеличение разделов с Gparted
- Увеличение ext4 без потерь данных
Увеличение раздела диска в Linux на лету
Разницы нет: увеличиваете Вы размер раздела жесткого диска на работающей ОС, делаете это на виртуальной машине Proxmox или хостинге VDS . Механика работы одна и та же.
Для расширения раздела без потери данных в Linux нам понадобятся утилиты parted и resize2fs. Они должны быть в любом дистрибутиве по умолчанию. В Debian они есть. Если нет, то устанавливаем.
Сам процесс ресайза раздела прост:
- расширяем раздел в панели управления VDS или Proxmox;
- размечаем раздел, добавляя ему незанятое пространство, которое добавили в пункте №1;
- физически изменяем размер;
- перезагружаем ОС.
При этом все данные останутся на месте.
Инструкция по изменению раздела
Расширяем раздел в панели управления VDS или Proxmox
Подразумевается, что в панели управления Вы уже расширили пространство жесткого диска и теперь готовы сделать это «программно». Дополнительные объяснения здесь лишние.
Размечаем раздел
Проверяем какой размер раздела «виден» в ОС и как называется раздел:
Из примера видно, что существует жесткий диск /dev/vda уже размером 20GB. На нем есть раздел /dev/vda1, который пока занимает размер в 5GB. Именно эту разницу мы и должны исправить.
Подключаемся к жесткому диску утилитой parted, указывая жесткий диск:
Узнаем каким номером утилита parted обозначила нужный нам раздел:
В примере нужный нам раздел обозначается 1.
Расширяем раздел 1 до 20.5GB (это весь доступный размер):
Где End — это нужный размер раздела.
Выходим из утилиты parted:
На этом этап новой разметки раздела диска закончен.
Физически изменяем размер
Запускаем последнюю команду для применения всех наших действий:
После этого нужно перезапустить наш сервер и пользоваться увеличенным размером диска.
Комментарии
Нет комментариев к данной статье.
Оставить свой комментарий
Для того, чтобы оставить комментарий, необходимо авторизоваться.
Источник
Изменение размера раздела 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
После этого записываем новую таблицу раздела на диск, нажав 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, то заботиться об изменении размеров разделов будет не нужно — достаточно сменить тариф!
Источник
Расширение разделов без потери данных
Разработал программу для простого расширения раздела и файловой системы (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, т.е. быть доступными для вызова просто по имени. В подавлящем большинстве случаев это условие выполняется естественным образом.
В итоге сейчас расширение файловой системы и нижележащий разделов выглядит так:
Источник
Расширение диска или раздела 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 без потерь данных
Подскажите пожалуйста как это сделать с помощью parted? Я пытался разобраться сам, ничего не понял на счет parted resize начало-конец. Привожу свою структуру разделов.
Как видно, в 3-ем размечено 30 ГБ из 64.4 доступных. Я хочу этому 3-ему отдать всю неразмеченную область, без потерь данных.
Может пригодится ещё
Удали раздел fdisk’ом, создай с новым размером, потом resize2fs.
Всё на лету, без отмонтирования, без всяких parted.
Ruslan> Partition 2 does not end on cylinder boundary
Скажи ему, чтобы fdisk с опцией -u запускает, а то фиг потом создаст начиная с 169 цилиндра
в партеде rm 3, mkpart p ext4 1389MB -1 потом resize2fs /dev/sda3
жир просочился сквозь экран.
resize the filesystem on partition to start at start and end at end megabytes
Запускайте parted и вводите:
resize 3 1389MB 64.4GB
>Model: ATA QEMU HARDDISK
Так в чём тогда проблема просто перекопировать? Это же не Windows.
смело gparted нужно же советовать, ну. hint man parted 3
ТС просил parted. Любой каприз за его деньги.
Всё на лету, без отмонтирования, без всяких parted.
Можно же вместо resize2fs добавить к lvextend опцию «-r».
где ресайз и мои деньги%)
>Можно же вместо resize2fs добавить к lvextend опцию «-r».
Век живи, век учись 🙂
Как я понимаю, на лету всё же не получится? Надо у хостера просить загрузить с LiveCD, и тогда уже всё это делать?
Это ж кстати XEN VPS на hardware виртуализации, если это имеет отношение к делу.
> Надо у хостера просить загрузить с LiveCD, и тогда уже всё это делать?
Да, проще будет сделать так.
Но можно попробовать запустить fdisk, удалить раздел, создать новый с тем же типом ФС и координатой начала (и кординатой конца в конце диска) и перезагрузиться, после чего сделать resize2fs /dev/sda3. Способ опасен тем, что если Вы промахнётесь с началом раздела, система не запустится, и тогда придётся всё равно загружаться с livecd и testdisk’ом восстанавливать таблицу разделов.
На этапе записи изменений fdisk ругнётся, что не удалось прочитать новую таблицу разделов, потому что device or resource busy.
может тебе просто создать 4-ый раздел на 30Гб и примонтировать куда тебе надо?
А куда/как его можно примонтировать?
в /dev/sda3 есть папка /var/www
можно ли создать /dev/sda4 и примонтировать всё к той же /var/www ?
>Но можно попробовать запустить fdisk, удалить раздел, создать новый с тем же типом ФС и координатой начала (и кординатой конца в конце диска) и перезагрузиться, после чего сделать resize2fs /dev/sda3. Способ опасен тем, что если Вы промахнётесь с началом раздела, система не запустится, и тогда придётся всё равно загружаться с livecd и testdisk’ом восстанавливать таблицу разделов.
На этапе записи изменений fdisk ругнётся, что не удалось прочитать новую таблицу разделов, потому что device or resource busy.
Для этого всёравно придётся отцепить /dev/sda3, что я сделать не могу в живой системе. Только грузится с LiveCD. Верно?
Или всё же есть способ на лету? Под виндой помню акронисом или partion mafic кнопочки поклацал, дажее Apply и тут система перезагружается и в этот момент до загрузки ОС делает с разделами всё что я наклацал. Тут нельзя как-то подобным образом?
тебя заставлять что ли надо. пол треда сопли жуешь.
отмонтируй то что лежит на увеличиваемой партиции. например umount /var/www
cfdisk удали и создай там же но на больший размер партицию.
и никаких кнопочек дурацких в акронисе и перезагрузок
ext4 без отмонтирования можно увеличить.
> Для этого всёравно придётся отцепить /dev/sda3, что я сделать не могу в живой системе.
Точно? По идее, это не понадобится, т.к. fdisk редактирует только таблицу разделов (64 байта в начале диска по смещению 448), а сами данные на разделах не трогает.
Тут нельзя как-то подобным образом?
LiveCD и получается «подобный образ». Можно ещё собрать себе initramfs с parted с ssh внутри и загрузиться с него, получится то же самое.
В конце концов, если это не корень, /dev/sda3 таки можно отмонтировать (посмотрите lsof’ом, что за процессы заняли mountpoint).
/dev/sda3 таки это корень
можно ли создать /dev/sda4 и примонтировать всё к той же /var/www ?
Не к той же, а вместо:
1. Создать /dev/sda4
2. Форматнуть в ext4 (или по вкусу)
3. прописать в /etc/fstab
/dev/sda3 /var/www ext4 defaults 0 0
4. mount —bind /var/www /mnt
5. mount /var/www
6. mv /mnt/* /var/www
7. umount /mnt
/dev/sda4 /var/www ext4 defaults 0 0
>1. Создать /dev/sda4
Дык больше 30 ГБ не получится создать! Я в итоге получу 2 логических диска по
Зачем мне это нужно? Мне нужен ОДИН /dev/sda3 с полной доступной ёмкостью в
Источник