LINUX.ORG.RU
решено ФорумAdmin

Уменьшение Logical Volume с таблицей разделов

 , ,


0

1

Объясните, как правильно уменьшить Logical Volume (используемый в качестве диска ВМ), на котором содержится разметка GPT и несколько разделов?
Сделал так:

  1. Уменьшил последний раздел внутри LV на 10Гб
  2. Уменьшил LV до размера, чуть большего чем конец последнего раздела в байтах
  3. Получил сломанную GPT, которую parted отказывается читать, а ВМ, естественно, не работает

Что я сделал не так и как было надо?

Что я сделал не так

Сложно сказать не видя команд, которыми делались изменения.

как было надо?

lvresize -r

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

Сложно сказать не видя команд, которыми делались изменения.

Раздел уменьшил из виртуалки, далее с хоста parted /dev/vg/lv unit B print, скопировал значение столбца End последнего раздела, затем сделал lvresize --size чуть_больше_скопированногоB /dev/vg/lv

lvresize -r

На LV таблица разделов GPT, ФС на разделах. Как -r поможет?

gasinvein ★★★
() автор топика
Ответ на: комментарий от Deleted

Какой еще logical volume?

Видишь lvm в тегах?

gasinvein ★★★
() автор топика

lv был линейным или из кусков, может тот кусок который ты от lv отрезал попадал не на конец диска

см. lvdisplay -m ...

futurama ★★★★★
()
Последнее исправление: futurama (всего исправлений: 1)

Какая-то каша. Обычно тома (volume) содержатся внутри таблиц разделов (gpt), а у тебя наоборот. Или у тебя /dev/mapper/vg0-lv0 прокинут в виртуальную машину как её диск?

Не думаю, что уменьшение gpt возможно штатно, ведь gpt сделана для аппаратных дисков, а они редко скукоживаются. Возможно, удастся просто пересоздать gpt (после того как последий том на gpt уменьшен и нижележащий lv уменьшен) введя точные координаты существующих разделов и убедившись, что утилита не обнуляет начала разделов из самых лучших побуждений. Я бы, кстати, это всё делал на снепшоте, раз уж есть lvm.

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)
Ответ на: комментарий от futurama

Не смотрел, но на 99% уверен, что lv был из одного сегмента.

gasinvein ★★★
() автор топика

У GPT вторая таблица в самом конце диска. То есть, видимо, нужно создать новую.

anonymous
()
Ответ на: комментарий от legolegs

у тебя /dev/mapper/vg0-lv0 прокинут в виртуальную машину как диск?

Ты пробовал читать ТС-пост?

Logical Volume (используемый в качестве диска ВМ)

Этот GPT мне восстанавливать не нужно, всё равно уже откатился к снапшоту, нужно понять, как это вообще делается правильно.

gasinvein ★★★
() автор топика
Ответ на: комментарий от futurama

lv был линейным или из кусков, может тот кусок который ты от lv отрезал попадал не на конец диска

Это не имеет значения в device-mapper.

anonymous
()
Ответ на: комментарий от gasinvein

На LV таблица разделов GPT

Нет, так можно, конечно, но зачем? Обычно на каждом lv одна ФС во весь этот lv, и lvresize -r ее замечательно уменьшает, если есть куда.

dexpl ★★★★★
()
Ответ на: комментарий от gasinvein

у тебя /dev/mapper/vg0-lv0 прокинут в виртуальную машину как диск?

Ты пробовал читать ТС-пост?

Ты бы хоть подтвердил или опровергнул правильность моего понимания.

как это вообще делается правильно.

100% надёжный путь - это сделать второй lv, разметить и скопировать туда разделы (с уменьшение фс), хоть через тот-же gparted. Но долго, да.

legolegs ★★★★★
()
Ответ на: комментарий от dexpl

LV в качестве дисков виртуальных машин.

gasinvein ★★★
() автор топика
Ответ на: комментарий от dexpl

Нет, так можно, конечно, но зачем?

Это совершенно повседневное решение для виртуализации.

anonymous
()
Ответ на: комментарий от legolegs

А уменьшить диск, не сломав (или хотя бы безболезненно поправив) GPT, вообще невозможно? Если да, то с MBR лучше?

gasinvein ★★★
() автор топика
Ответ на: комментарий от gasinvein

GPT держит свои данные в начале и в конце диска. если диск удлинился - это уже считается как «повреждённая gpt» и требует восстановления.

Я сейчас произвёл эксперименты. В общем, можно сжать «диск» и затем на нём создать gpt заново и создать разделы, соответствующие по размерам старым. И фс на этих новых разделах сразу видна неповреждённая. Я это тупо в gparted мышкой накликал, только понадобилось вот так сделать

losetup --find --show /dev/fedora/test
gparted /dev/loop0

legolegs ★★★★★
()
Ответ на: комментарий от gasinvein

Попробовал не затирать GPT, а восстановить её, но ни (g)parted, ни fdisk ничего не смогли сделать. testdisk справился, но это оверкил.

Так что GPT придётся создавать с нуля, как раньше делали с MBR. Минус в том, что GUIDы разделов сбрасываются.

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)

Если правило распарил.
1. Вы не написали что у вас внутри VM.
2. Произвести все изменения внутри VM, в зависимости от используемой разметки и fs, для уменьшения раздела.
3. Изменить размер LV на хосте.
4. Профит?

anc ★★★★★
()
Ответ на: комментарий от anc

2. Произвести все изменения внутри VM, в зависимости от используемой разметки и fs, для уменьшения раздела.
3. Изменить размер LV на хосте.

Я именно так и сделал. Внутри VM оффтопик-сервер, но какое это имеет значение?

gasinvein ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.