помогите восстановить lvm2

Kubuntu, Xubuntu и другие

Модератор: Модераторы разделов

VioletQbik
Сообщения: 6

помогите восстановить lvm2

Сообщение VioletQbik »

Доброго времени суток и с наступающим Новым годом! Прошу помощи вот с такой проблемкой. Имеется виртуалка с Ubuntu 18 server на борту. Возникла необходимость расширить ей диск с 25Gb до 30Gb. Разметка диска была вот такой:
Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 2101247 2097152 1G Linux filesystem
/dev/sda3 2101248 52426751 50325504 24G Linux filesystem

sda1 и sda2 не трогались, к ним вопросов нет. На sda3 был lvm2.

Далее пересканировал устройства scsi, размер /dev/sda стал 30Гб как и задумано. Далее удаляю раздел sda3, и создаю первичный раздел на его месте такой же, но на всё свободное место. На вопрос, что fdisk видит сигнатуру LVM2_member, отвечаю что не удалять (хотя есть вероятность что нажал всё таки Y). Далее делаю partprobe, и теперь вывод pvdisplay, vgdisplay, lvdisplay стали пустыми. ВМ не перезагружалась, т.к. получим трупик.

blkid говорит:
/dev/sda2: UUID="8cfd2e63-e0ea-4c52-acd6-f72f8334d858" TYPE="ext4" PARTUUID="e3169871-130e-4d23-9bc4-9852692d8264"
/dev/mapper/ubuntu--vg-ubuntu--lv: UUID="95253173-faf8-4385-ba89-63dd620eb831" TYPE="ext4"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/sda1: PARTUUID="8cceaca7-f0cc-4990-ae1f-a4fc435a63f1"
/dev/sda3: PARTUUID="1b1127fc-3e8b-4055-9bb0-df7cd8c1ab05",
т.е. у sda3 потерялся UUID. Есть не очень свежий бэкап этой ВМ, структуру диска или сигнатуры вытащить оттуда можно без проблем. Как стоит поступить в данном случае?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 16307
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: помогите восстановить lvm2

Сообщение Bizdelnick »

pvresize /dev/sda3 что скажет?
VioletQbik писал:
31.12.2019 14:19
у sda3 потерялся UUID
Его там и не должно было быть.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

VioletQbik
Сообщения: 6

Re: помогите восстановить lvm2

Сообщение VioletQbik »

pvresize /dev/sda3 говорит "Failed to find physical volume "/dev/sda3"

У этой ВМ есть не очень свежая копия (до ресайза), в которой видно, что у sda3 UUID таки имеется. blkid на на копии также выдает TYPE="LVM2_member"
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 16307
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: помогите восстановить lvm2

Сообщение Bizdelnick »

Покажите рядом, что говорят fdisk и blkid в обоих случаях. По обрывочной информации сложно что-то понять.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

VioletQbik
Сообщения: 6

Re: помогите восстановить lvm2

Сообщение VioletQbik »

Вот вывыод fdisk -l и blkid для текущей (проблемной) ситуцации:
current_bad.png
А вот аналогичное для старого бэкапа:
old_ok.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 16307
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: помогите восстановить lvm2

Сообщение Bizdelnick »

Ну зачем же какртинками-то…
Не вижу никаких изменений в таблице разделов. Что Вы всё-таки делали?
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

VioletQbik
Сообщения: 6

Re: помогите восстановить lvm2

Сообщение VioletQbik »

За картинки прошу прощения, копия без сети (поэтому shh нет), а из консоли VMWare не копируется текстом (по крайне мере у меня), постараюсь в дальнейшем без картинок.
В таблице разделов изменений не видно, и вот почему: после того, как обнаружил проблему я попробовал привести ситуацию к изначальной и тем же fdisk удалил и заново создал sda3 старого размера.
Ещё раз опишу свои действия:
1)в VMWare увеличил диск с 25Гб до 30Гб
2)пересканировал устройства (в выводе fdisk -l диск стал 30GiB)
3)с помощью fdisk удалил раздел sda3 и создал новый раздел sda3 большего размера. На запрос об удалении LVM2_member сигнатуры нажал NO (но вот тут меня гложат сомнения, проводил эксперимент на копии: если жать NO, то проблем не происходит, а если нажать Yes, то проблема проявляется, но вроде как бы и не всегда, тут утверждать не берусь). Если нужно могу поэксперитментировать и результаты сообщу.
4)partprobe и уже после этого pvs, который даёт пустой вывод.
5)пытался вернуть ситуацию назад, создал раздел sda3 старого размера, запроса про сигнатуру уже не было. В таком виде оно сейчас. Пытался выполнить pvcreate --restorefile, ругается на а)uuid не найден (uuid такой же как в выводе blkid на копии, тот про который я писал, что он "пропал"), б)sda3 примонтирован. Ещё через dd считал начало раздела sda3, данные LVM2 и там и там (на проблемном и на копии) одинаковые. Больше ничего "с записью" не делал.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 16307
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: помогите восстановить lvm2

Сообщение Bizdelnick »

Понятно, что ничего не понятно… В общем, я бы попробовал перемонтировать /dev/mapper/ubuntu--vg-ubuntu--lv в ro и сдампить его dd, а потом попробовать залить дамп на копию бекапа. Перед перемонтированием, конечно, следует сделать снапшот виртуалки, если Вы, вдруг, этого ещё не сделали (вмварь, надеюсь, умеет «горячие» снапшоты?).
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

VioletQbik
Сообщения: 6

Re: помогите восстановить lvm2

Сообщение VioletQbik »

/dev/mapper/ubuntu--vg-ubuntu--lv смонтирован в /, поэтому наверное такой вариант не сработает.
Я потестил копию и выяснил, что проблема случается когда говоришь fdisk удалить сигнатуру. Всё таки я кажется прибил её собственноручно, если нажать NO, то ничего не ломается. Есть возможность выдернуть её (сигнатуру) из бэкапа? Где она располагается? В самом начале раздела всё вроде на месте...

Shell

test:~# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 ubuntu-vg lvm2 a-- <24,00g 0
root@test:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
ubuntu-lv ubuntu-vg -wi-ao---- <24,00g
root@test:~# blkid
/dev/sda2: UUID="8cfd2e63-e0ea-4c52-acd6-f72f8334d858" TYPE="ext4" PARTUUID="e3169871-130e-4d23-9bc4-9852692d8264"
/dev/sda3: UUID="13u6M2-Dj3c-bg6m-kcrZ-uIML-23cs-XQg01y" TYPE="LVM2_member" PARTUUID="1b1127fc-3e8b-4055-9bb0-df7cd8c1ab05"
/dev/mapper/ubuntu--vg-ubuntu--lv: UUID="95253173-faf8-4385-ba89-63dd620eb831" TYPE="ext4"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/sda1: PARTUUID="8cceaca7-f0cc-4990-ae1f-a4fc435a63f1"
root@test:~# fdisk /dev/sda

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B1AA4C8E-7BEF-425C-9885-CB855AB47F9E

Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 2101247 2097152 1G Linux filesystem
/dev/sda3 2101248 52426751 50325504 24G Linux filesystem

Command (m for help): d
Partition number (1-3, default 3): 3

Partition 3 has been deleted.

Command (m for help): n
Partition number (3-128, default 3): 3
First sector (2101248-52428766, default 2101248):
Last sector, +sectors or +size{K,M,G,T,P} (2101248-52428766, default 52428766):

Created a new partition 3 of type 'Linux filesystem' and of size 24 GiB.
Partition #3 contains a LVM2_member signature.

Do you want to remove the signature? [Y]es/[N]o: y

The signature will be removed by a write command.

Command (m for help): w
The partition table has been altered.
Syncing disks.

root@test:~# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 ubuntu-vg lvm2 a-- <24,00g 0
root@test:~# partprobe
root@test:~# pvs
root@test:~# pvscan
No matching physical volumes found
root@test:~#
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 16307
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: помогите восстановить lvm2

Сообщение Bizdelnick »

VioletQbik писал:
02.01.2020 21:20
/dev/mapper/ubuntu--vg-ubuntu--lv смонтирован в /, поэтому наверное такой вариант не сработает.
Должен сработать. Для верности лучше на rescue.target.
VioletQbik писал:
02.01.2020 21:20
Есть возможность выдернуть её (сигнатуру) из бэкапа? Где она располагается?
Теоретически, конечно, есть, но что это такое и где её искать — я не знаю. Гугл, документация, исходники — это всё Вам доступно не в меньшей степени, чем мне.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

VioletQbik
Сообщения: 6

Re: помогите восстановить lvm2

Сообщение VioletQbik »

Удалось разрешить ситуацию восстановлением сигнатуры, т.е. без дампов и перезагрузок:
На копии выполняем (это удалит сигнатуру на копии, но в нашем случае не важно, да и восстановление делается 1 командой)

Shell

wipefs --all --force --backup /dev/sda3
На проблемной основе:

Shell

dd if=~/wipefs-vdb-0x00000218.bak of=/dev/vdb seek=$((0x00000218)) bs=1 conv=notrunс
И вот уже сейчас вывод blkid в порядке, но pvs по прежнему пуст. Далее воозможно есть лишние команды, особо не фильтровал какая точно помогла.

Shell

partprobe
lvmdiskscan -v
pvck -t /dev/sda3
pvscan
После этого pvs, lvs отзываются корректно. Далее повторил расширение диска: parted -l (поправит размер диска в gpt), fdisk /dev/sda пересоздаём sda3 (ответ на стирание сигнатуры - NO), partprobe, pvresize /dev/sda3, lvextend +100%free /dev/mapper/ubuntu--vg-ubuntu--lv, resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv.

Результат достигнут! И lvm спасли и диск расширили) Спасибо за помощь!
Спасибо сказали: