Как сжать корневой логический том (LV) на LVM?

11

Мне не нужно сокращать раздел MBR, просто логический том, содержащий корневую файловую систему «/». Сейчас это ~ 200 ГБ, и мне нужно уменьшить его до ~ 150 ГБ, чтобы освободить место для нового логического тома. Как мне это сделать?

Майкл Кропат
источник

Ответы:

23

ПЕРЕД ТЕМ, ЧТОБЫ ИЗМЕНИТЬ НИЧЕГО, УБЕДИТЕСЬ, ЧТО ВЫ ИМЕЕТЕ ТЕКУЩЕЕ РЕЗЕРВНОЕ КОПИРОВАНИЕ. Это все сработало для меня, но это может не сработать для вас. Если он взорвется по какой-то причине, вы не захотите потерять то, что не можете восстановить. Продолжая ...

Невозможно (насколько мне известно) сжать файловую систему во время ее монтирования, поэтому нам необходимо выполнить реальное изменение размера с Live CD. Все следующие инструкции предполагают, что вы загрузились с установочного компакт-диска 11.10 для настольного компьютера.

После того, как Live CD загрузится на рабочий стол, откройте Терминал.

Инструменты LVM не встроены в Live CD, поэтому сначала мы должны установить их:

sudo apt-get install lvm2

Найдите имя группы томов (далее «somevg»), которая содержит корневой логический том:

sudo lvs

(Если он не появляется, попробуйте запустить, sudo lvmdiskscanа sudo pvscanзатем повторите попытку.)

Если вы запустите, ls /dev/mapper/вы можете увидеть, что логические тома не отображаются. Если его там нет, вам нужно выполнить следующую команду, чтобы ядро ​​узнало о логических томах:

sudo vgchange --available y <somevg>

Поскольку мы не смонтировали корневую файловую систему, ее размер можно безопасно изменять. Продолжите выполнять фактическое изменение размера логического тома. Обратите внимание, что эта команда ( --size -50G) уменьшает объем на 50 ГБ - прочитайте справочную страницу lvreduce (8), чтобы узнать, как указать другой размер.

sudo lvreduce --resizefs --size -50G /dev/<somevg>/root

(Мой логический том называется «root», но ваш может называться как-то иначе.)

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

Теперь вы можете перезагрузить систему и загрузиться в корневую файловую систему, размер которой теперь изменен.

Майкл Кропат
источник
Эти инструкции не работают. lvsпоказывает правильный новый размер, но GPartedвсе еще показывает LVM с оригинальным размером. Все, что вы делаете, объясняет, как сжать файловую систему, а не раздел. Раздел по-прежнему занимает исходный объем дискового пространства.
Cerin
Вы пытаетесь сжать раздел VG и / или MBR в дополнение к LV? Эти инструкции предназначены только для сокращения LV. Я обновлю вопрос, потому что (я вижу после перечитывания) это не очень ясно.
Майкл Кропат
Ваше предположение неверно. Оперативное изменение размера (пока раздел монтируется и используется) разделов ext3 / ext4 существует уже давно. Я часто этим пользуюсь, и у меня никогда не было с этим ни одной проблемы. И да, у меня есть текущие резервные копии все время.
Флойд
@ Флойд: у вас есть цитата для этого? Я знал, что изменение размера онлайн возможно при расширении, но не при сокращении. Если онлайн-сокращение сейчас возможно, это будет крутой новостью.
Майкл Кропат
4
@Floyd, ext3 / 4 поддерживает онлайн рост, но не сокращение.
Псуси
4

Оба lvresizeи lvreduceтеперь поддерживают изменение размера файловой системы до сокращения логического тома.

Это фрагмент страницы руководства на CentOS 6.5

-r, --resizefs
       Resize underlying filesystem together with the logical volume using fsadm
jlmontes
источник
3

Любой раздел и изменение размера LV должны выполняться на несмонтированных разделах, поэтому вам нужно загрузиться с установочного диска Ubuntu или USB-накопителя, запустить его как live CD, подключиться к Интернету, установить lvm2

sudo apt-get install lvm2

... или вы можете использовать любой спасательный компакт-диск Linux, который уже lvm2имеется. Затем убедитесь, что ваш корневой LV не установлен,

mount 

и размонтируйте его при необходимости, затем выполните проверку файловой системы

e2fsck -f /dev/yourVG/yourLV 

на этом LV. Затем сожмите файловую систему

resize2fs /dev/yourVG/yourLV 150G

и уменьшить LV

lvreduce -L -50G /dev/yourVG/yourLV

Перезагрузитесь к своей системе, наслаждайтесь!

желчь
источник
3
+1 Спасибо за вашу помощь. Я посмотрел ответ на свой вопрос после того, как спросил. У инструментов LVM теперь есть --resizefsопция, которая, кажется, работает и позволяет пропустить шаг.
Майкл Кропат