Почему нельзя уменьшить размер файловой системы без простоя

Обновлено: 07.07.2024

У нас есть виртуальная машина на VMware, на ней есть диск. Диск большой, данных мало. Наша задача - сделать диск меньшего размера. На борту Logical Volume Manager ( LVM ).

Gparted не умеет переносить данные на LVM разделах. Будем делать всё руками.

1. Остановим процессы на сервере.

2. Создадим клон виртуалки. Если мы напортачим - возрадуемся бэкапу как родному.

3. Пока создаётся клон рассчитаем место, которое нужно оставить на дисках.

Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_smartfe00-lv_root 50G 15G 33G 30% /tmpfs 7.8G 0 7.8G 0% /dev/shm /dev/sda2 477M 104M 348M 23% /boot /dev/sda1 197M 253K 197M 1% /boot/efi /dev/mapper/vg_smartfe00-lv_home 211G 11G 190G 6% /home

lv_root уменьшим с 50G до 30G, lv_home уменьшим с 211G до 25G

4. Выключаем ось.

5. Переключаем UEFI на BIOS.

6. Переключаем vlan на PXE или вставляем образ Resque CD.

7. Загружаемся с Resque CD.

8. Через gparted убеждаемся в том, что /dev/sdb активен (не обязательно).

9. Уменьшаем размеры файловых систем, уменьшаем логические разделы, сдвигаем данные к началу диска, уменьшаем физический раздел.

Список логических томов:

Ресайзим root до 30 Гб:

e2fsck -f /dev/mapper/vg_smartfe00-lv_home
resise2fs /dev/mapper/vg_smartfe01-lv_root 30G

Ресайзим home до 25 Гб:

e2fsck -f /dev/mapper/vg_smartfe00-lv_home
resise2fs /dev/mapper/vg_smartfe01-lv_home 25G

Уменьшаем размер логических томов:

lvreduce -L 30G /dev/mapper/vg_smartfe01-lv_root
lvreduce -L 25G /dev/mapper/vg_smartfe01-lv_home

Далее все сегменты вычисляем на калькуляторе для каждого сервера! Смысл в том, чтобы перемещать сегменты только на пустое место.

Включаем мозг, понимаем куда двигать home и сдвигаем его подальше:

Снова смотрим список сегментов:

Двигаем home вплотную к root:

vmove --alloc anywhere /dev/sdb1:19200-25599 /dev/sdb1:7680-14079

Двигаем swap вплотную к home:

pvmove --alloc anywhere /dev/sdb1:67083-71110 /dev/sdb1:14080-18107

Дальше запускаем gparted и работаем через него.

gparted - деактивируем /dev/sdb и ресайзим /dev/sdb1

10. Смотрим инфо получившегося /dev/sdb1 - total sector 148350848. Вычисляем размер нового диска:

148350848*512/1024/1024=72436,9375 Мб

Новый диск будем делать 72438 Мб, это в три раза меньше того, что было.

11. Выключаем ось.

12. Добавляем через vCenter новый диск на 72438 Мб.

13. Снова загружаемся через Resque CD.

14. gparted на /dec/sdc делаем device - create partition table.

15. gparted на /dev/sdc делаем новый раздел /dev/sdc1 в файловой системе lvm2 pv.

16. Проверяем через инфо, чтобы количество секторов на /dev/sdc1 (148350976) было не меньше чем на /dev/sdb1 (148350848).

17. Расширяем группу:vgextend vg_smartfe00 /dev/sdc1.

18. Мувим диск с /dev/sdb1 на /dev/sdc1:pvmove /dev/sdb1 /dev/sdc1.

19. Исключаем из группы /dev/sdb1:vgreduce vg_smartfe00 /dev/sdb1.

20. gparted - деактивируем диск /dev/sdc1.

21. gparted - check диска /dev/sdc1 - дополнительно раздел расширяется до полного объёма.

22. Выключаем ось.

23. Удаляем ненужный более диск через vCenter.

24. Переключаем BIOS обратно на EFI.

25. Переключаем vlan на боевой, если ранее переключались на PXE.

26. Включаем тачку.

Вот так легко и непринуждённо мы уменьшили диск и виртуального сервера с LVM.

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.

На данный момент 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. Она автоматически меняет как размер раздела, так и файловой системы. К тому же программа может не только менять положение конца раздела, но и начала, иногда это может быть полезно. А как вы меняете размер файловой системы? Напишите в комментариях!

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Коротко: у меня есть lv 140GB, но я использую там всего 10Mb, как я могу уменьшить свободное пространство на этом lv? Я пробовал команду: lvextend -l -100%FREE /dev/volgroup/logvol, но ничего не помогло, он всего лишь переносит пару блоков, но не делает lv меньше.

Во-вторых, у меня есть /dev/sda2 - LVM2_member и он имеет 199GB, после уменьшения lv, как я могу уменьшить и сжать партицию до минимума и выкинуть свободное место, чтобы потом удалить его (возможно потребуется передвинуть разделы с помощью gparted)?

p.s. Я не могу уменьшить lv или раздел через resize2fs, потому что не могу уменьшить файловую систему XFS.

Средний 1 комментарий

Adamos

Коротко: у меня есть lv 140GB, но я использую там всего 10Mb

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

Все верно, это "неудачное решение" - /home ок, без проблем, я так и делал:

1. Как потом уменьшить LVM2_member - /dev/sda2?

Adamos

Alex Pebody, понятия не имею, не трогал LVM никогда.
Насколько я знаю об XFS, редактированию эта система не поддается в принципе, и проблема скорее в этом.

leahch

XFS? А! Да, ее нельзя уменьшить, только расширить, в отличии от ext3/4.

Вариант только один:
- копируем данные
- отмонтируем раздел
- сносим логический том
- создаем новый нужного размера
- форматируем
- копируем данные обратно

И да, на будущее, XFS конечно же хороша (особенно автоматической дефрагментацией), но EXT4 совсем не хуже, что говорят те пол петабайта данных в наших рабочих хранилищах!

Спасибо. Да я понял, это реальный выход из положения, задавал XFS не я, вот проблема: КАК ПОТОМ уменьшить раздел LVM2_member - /dev/sda2? Требуется ВЫКИНУТЬ неиспользуемое место и потом может с gparted или еще чем то, сдвинуть существующие разделы, а свободное место удалить и тем самым уменьшив диск в 500ГБ. Пробую сейчас: rescuezilla вроде как копирует только существующие данные в отличии от clonezilla, было бы просто замечательно, найти систему клонирования, которая копирует и создает разделы, при этом копируя только существующие данные, а не блоком LVM как кусок блочный и не важно забит он на 100% или на 1%.

leahch

Alex Pebody, LVM2_member - /dev/sda2 Это физический раздел таблицы дисков или логический раздел LVM? Подозреваю, что логический, хотя неплохо бы прилепить вывод команд, чтобы знать точно куда и как у вас что распределено

Ну и хорошо бы знать, что за файловая система на этом разделе.

Алексей Черемисин, LVM2_member - /dev/sda2 это сам LMV2_member партиция /dev/sda2, когда разберемся с LV внутри /dev/sda2, те с самим LVM, как уменьшить сам диск? А над ним еще /dev/sda который 500ГБ, еще его надо будет уменьшить, а после уменьшения партиции /dev/sda2, но это уже танцы с gparted. Главное - уменьшить LVM2 - /dev/sda2 КАК?

leahch

Если честно, не стал бороться, попробовал resize2fs, tune2fs и забил, если честно мне не совсем понятен процесс? Вот я пересобрал LV, далее что, мой /dev/sda2 как был 199ГБ так и остался, чтобы его уменьшить ЧТО НАДО СДЕЛАТЬ?

Далее после уменьшение, пустая область будет ПЕРЕД /dev/sda2 или после? Дело в том, что перед /dev/sda2 есть раздел /dev/sda1 и я не очень верю, что можно просто "выкинуть" часть неиспользуемой емкости /dev/sda2 перед /dev/sda2 и после /dev/sda1, не совсем понимаю процесс.

Как итог, нужны проверенные команды для /dev/sda2 - LVM2_member раздела, чтобы его уменьшить и получить свободное место, далее, как я уже сказал в том же GParted я буду двигать разделы, как уже не раз делал, чтобы все свободное место передвинуть вконец, далее там же уменьшить /dev/sda. Вот суть задачи.

Помимо базовой способности удалять, создавать и форматировать раздел, Windows 10/8/7 встроенная утилита управления дисками имеет расширенные функции сжатия тома и расширения тома, чтобы помочь изменить размер разделов без потери данных. Однако он может только уменьшить раздел влево и сделать Нераспределенное пространство справа. Кроме того, в некоторых случаях это не может уменьшить объем или может только сжимать небольшое пространство. В этой статье я покажу вам общие причины, по которым Управление дисками не может сжиматься. Windows 10 раздел и что делать, если вы не можете уменьшить объем в Windows 10/8/7 ноутбук / настольный компьютер / коврик.

Содержание:

Не могу усадить перегородку

Почему Управление дисками не может уменьшить раздел в Windows 10/8/7

Причина 1. Файловая система не поддерживается.

Управление дисками может сжимать и расширять только разделы, отформатированные с помощью NTFS файловая система, FAT32 и любые другие типы разделов не могут быть сжаты или расширены.

FAT32 partition

Причина 2: недостаточно свободного места

Not enough space

Причина 3: ошибка файловой системы

Если есть ошибка файловой системы или другая системная проблема, Disk Management не может уменьшить раздел даже до 1 МБ.

Can

Причина 4: Есть неподвижные файлы

Если в этом разделе есть несколько неподвижных файлов, таких как файл подкачки и файлы гибернации, «Управление дисками» может только уменьшить пространство.

Unmovable files

Что делать, если не удается уменьшить объем Windows 10/8/7

Если вы не можете сжать раздел в Windows 10/8/7 Управление дисками, выясните причину и следуйте соответствующим решениям ниже.

Решение 1. Сжимайте с помощью программного обеспечения для создания разделов

Если вы хотите уменьшить FAT32 раздел, Объем усадки неактивен in Windows 10/8/7 Управление диском. В этом случае вам необходимо запустить стороннее программное обеспечение, такое как NIUBI Partition Editor.

Решение 2. Сжимайте, занимая меньше места

Как я сказал выше, Управление дисками вычислит дисковое пространство раздела, который вы хотите сжать, а затем предоставит вам максимально доступное пространство. Если вы ввели большее пространство или много файлов, сохраненных в этом разделе, до того, как нажали кнопку «Сжать». Реальное доступное пространство и расчетное пространство противоречат друг другу. В этом случае вам просто нужно снова запустить Shrink Volume или самостоятельно ввести меньшую сумму.

Решение 3. Исправьте ошибку файловой системы

На многих компьютерах имеется ошибка файловой системы в одном или нескольких разделах. В общем, вы не найдете никакой разницы в ежедневном использовании, но можете столкнуться с проблемой при сжатии и расширении разделов. Если в разделе много свободного места, но Управление дисками не позволяет или не дает вам сжиматься, попробуйте восстановить файловую систему.

  1. Нажмите на Windows значок или Start меню, введите CMD, то вы увидите результат, щелкните его правой кнопкой мыши и выберите Запуск от имени администратора.
  2. В командной строке введите chkdsk X: / v / f и нажмите Enter. (X - буква диска раздела, который вы хотите сжать.)
  3. На системный диск C: командное окно сообщит, что этот раздел не может быть заблокирован, и спросит вас, запланировать ли это задание, введите Y и нажмите Enter.
  4. Перезагрузите компьютер и снова уменьшите размер диска C.

Решение 4.Уменьшите раздел с помощью NIUBI

Если в разделе много свободного места, но Управление дисками дает мало свободного места при сжатии, это означает, что в этом разделе есть «неподвижные» файлы. В этом случае уменьшите NIUBI Partition Editor. Лучше, чем Управление дисками, NIUBI может перемещать эти неподвижные файлы, поэтому вы можете уменьшить этот том до минимального размера, если хотите.

Что делать, если перегородка не сжимается вправо

Windows Инструмент управления дисками не может изменить начальную позицию раздела, поэтому он не может уменьшить перегородку вправо in Windows 10/8/7. Он только дает вам возможность ввести сумму, а затем автоматически сжимает том влево и автоматически делает Нераспределенное пространство справа.

Если вы просто хотите уменьшить раздел, чтобы создать больше томов, это не имеет значения. Но это большая проблема, если вы хотите сжать D, чтобы расширить C, потому что Управление дисками может расширить незанятое пространство только на смежный раздел слева.

Как вы видите на снимке экрана, после сжатия диска D E находится справа от незанятого пространства, диск C не является смежным, поэтому Расширение томов отключено для обоих разделов.

Extend Volume disabled

Лучше, чем управление дисками, NIUBI Partition Editor имеет больше преимуществ, в то время как перераспределение жесткого диска:

  1. Он может сжимать и расширять разделы NTFS и FAT32.
  2. Он может перемещать неподвижные файлы и сокращать раздел до минимального размера.
  3. Он может сделать незанятое пространство слева или справа при сжатии раздела.
  4. Он может объединить незанятое пространство либо в смежный, либо в любой несмежный раздел на одном диске.

NIUBI Partition Editor имеет бесплатное издание для Windows 10/8/7/Vista/XP пользователи домашних компьютеров, то же самое с коммерческой профессиональной версией, за исключением отсутствия технологии 1 Second Rollback и конструктора загрузочных носителей. К термоусадочная перегородка в Windows 10 ноутбук / рабочий стол / планшет, вам просто нужно перетащить на карту диска.

Вариант 1: Если вы перетащите левая граница к правильно

Нераспределенное пространство будет сделано на левая сторона .

Shrink D rightwards

Вариант 2: Если вы перетащите правая граница к оставил

Нераспределенное пространство будет сделано на правая сторона .

Shrink D lefttwards

Следуйте инструкциям, если хотите расширить диск C, расширить системный зарезервированный раздел or увеличить привод D сжав другой раздел. Помимо уменьшения и увеличения объема, NIUBI Partition Editor помогает выполнять множество других операций, таких как перемещение, объединение, преобразование, очистка, дефрагментация, скрытие, копирование раздела. Лучше, чем другие инструменты, он имеет уникальные 1 второй откат, Виртуальный режим и Отменить-на-хорошо технологии для защиты системы и данных.

Читайте также: