Linux уменьшить размер диска

Microsoft, Linux, Lync и etc……

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

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

И так, предположим, что в нашей системе имеется диск /dev/sdd размером 1 Тб с разделом /dev/sdd1 размером 2 Тб. Попробуем увеличить размер раздела /dev/sdd до 2 Тб, т.е. максимально возможного размера. Для этого зайдем используя ssh на консоль сервера, где введем несколько последовательных команд:

  • от монтируем партицию:
  • выполним проверку партиции:
  • запустим утилиту fdisk

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

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

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

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

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

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

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

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

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

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

  • от монтируем партицию:
  • выполним проверку партиции:

выполним команду resize2fs указав в качестве параметра размер новой партиции (100 Мб):

Действие команды

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

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

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

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

Возможно это тоже интересно:

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

имеется диск /dev/sdd размером 1 Тб с разделом /dev/sdd1 размером 2 Тб

И чо? Всем пофиг

Воу щас попробую! Недюсь ничто не сотрётся нахер

Вследствие неправильного разбиения дисковой системы на разделы или в силу других причин, иногда наступает момент, когда места на разделе уже не хватает. Но выход всегда есть! Причем, если у вас используется менеджер логических томов, то изменение размеров разделов с 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, то заботиться об изменении размеров разделов будет не нужно — достаточно сменить тариф!

Когда я начал работать с ESXi, столкнулся с проблемой нехватки дискового пространства из-за сильно разросшихся тонких дисков. Вообще, лучше создавать диски меньшего размера, потому что увеличить диск в ESXi намного проще, чем уменьшить. Но что же делать, если все-таки возникла необходимость уменьшить диск? Причем, мое положение усугубляли LVM разделы на сервере, которые не распознавал Acronis, и, следовательно, не мог изменить размер раздела.
Опишу способ, которым воспользовался я:

1 этап) Уменьшение диска внутри виртуальной машины
Сперва нужно уменьшить диск внутри самой виртуальной машины, для этого существует множество универсальных программ: Acronis disc director, paragon partition manager, встроенная утилита управления дисками в windows и т.д. Мне ни одна из этих программ не помогла, поэтому пришлось использовать средства линукса и LiveCD.

1) Для начала нужно загрузиться с livecd linux, я использовал для этого centos 7. При загрузке виртуальной машины клавиша ESC для появления меню загрузки.

2) Активируем LVM разделы

3) Проверка активированных логических томов

4) Проверяем файловые системы

5) Уменьшаем размер файловой системы

6) Уменьшаем размер тома до размера файловой системы

Также мы можем добавить это место к другом тому
Для этого:

Увеличиваем том root:

Увеличиваем размер файловой системы на томе root до размера тома:

7) Опять проверяем целостность файловой системы

8) Далее можно запустить виртуальную машину и убедиться, что все корректно работает

2 этап) уменьшение provisioning space.

10) Выключаем виртуальную машину
11) Подключаемся по SSH к физическому серверу, на котором установлен ESXi
12) Переходим в каталог, в котором хранится vmdk файл ВМ (путь можно узнать в свойствах виртуального диска в графическом клиенте vSphere). У меня это

Каталог имеет подобную структуру:

-rw——- 1 root root 3424256 Feb 2 08:24 vmmcores-1.gz
-rw-r—r— 1 root root 240722 Dec 20 20:46 vmware-1.log
-rw-r—r— 1 root root 1252287 Feb 2 08:24 vmware-2.log
-rw-r—r— 1 root root 43555 Feb 2 08:24 vmware-3.log
-rw-r—r— 1 root root 151873 Feb 2 08:25 vmware.log
-rw——- 1 root root 122683392 Feb 2 08:24 vmx-VM_name-186599173-1.vswp
/vmfs/volumes/53114b32-24d88d5a-2cbe-0025b500004f/VM_name #

13) Просмотрим содержимое конфигурационного файла с расширением *.vmdk с помощью команды cat или vi:

# Disk DescriptorFile
version=1
encoding=«UTF-8»
C > parentC > isNativeSnapshot=«no»
createType=«vmfs»

# Extent description
RW 44000000 VMFS «VM_name-flat.vmdk»

# The Disk Data Base
#DDB

ddb.adapterType = «lsilogic»
ddb.geometry.cylinders = «17884»
ddb.geometry.heads = «255»
ddb.geometry.sectors = «63»
ddb.longContent > ddb.thinProvisioned = «0»
ddb.uu > ddb.virtualHWVersion = «8»

14) Размер vmdk диска задается в секции #Extent description (после символов RW). Меняем это значение, например, чтобы установить размер диска в 20Гб ставим 41943040 (20 Гб*1024*1024*1024 / 512)

Я ставлю значение немного больше, чем размер, вычисленный по методике выше (41943040 (20 Гб*1024*1024*1024 / 512)), на всякий случай.
15) Осталось склонировать или смигрировать виртуальную машину, после чего отобразится новый размер диска.

Физическое уменьшение тонкого диска без изменения provisioning
Также возможно только уменьшить размер файла виртуальной машины, путем удаления нулевых блоков.
Для этого:
1) Нужно заполнить все неиспользованное пространство, внутри виртуальной машины, нулями. Создаем файл по размерам неиспользуемой области диска, а потом удаляем его.

2) Подключаемся по SSH к консоли ESXi как описано выше и переходим в каталог с виртуальной машиной.
3) В консоли гипервизора есть специальная утилита, которая позволяет затереть нулевые блоки, тем самым уменьшив физический размер тонкого диска.
Делается это с помощью ключа -K (можно также использовать ключ —punchzero) в консоли сервера ESXi

Надо отметить, что утилита vmkfstools, запущенная с ключом -K, еще и может преобразовать обычный диск (zeroedthick или eagerzeroedthick) в thin disk с вычищением нулевых блоков и, соответственно, уменьшением размера vmdk.

Оцените статью
Ремонт оргтехники
Добавить комментарий