Восстановить удаленную подпись LVM

Вопрос или проблема

Думаю, я удалил раздел LVM. Я увеличил хранилище в VMware (с 70 ГБ до 90 ГБ), затем выполнил echo 1> /sys/class/block/sdb/device/rescan.

После этого я выполнил fdisk /dev/sdb. Он показывает, что мой sdb – 90 ГБ, но с этим предупреждением:
Старый LVM2_member сигнатура будет удалена командой записи.
Я ввел w, что, думаю, было плохой идеей.
Теперь ни одна из этих команд не отображает данные: lvs, vgs, pvs

С помощью blkid я вижу, что UUID моего sdb изменился:

/dev/sda1: UUID="b96e5429-d28e-4102-9085-4f303642a26e" TYPE="ext4" PARTUUID="0ab90198-01"
/dev/mapper/vg00-vol_db: UUID="4ed1927e-620a-4bf9-b656-c208f31e6ea3" TYPE="ext4"
/dev/sdb: PTUUID="d6c28699" PTTYPE="dos"

Я выполнил vgcfgrestore vg00 --test -f vg00_00001-2029869851.vg, который является последним файлом до изменений сегодня. (это за 2 месяца назад, когда я создал LVM)
Но он вернул

  РЕЖИМ ТЕСТА: Метаданные не будут обновлены, и тома не будут (де)активированы.
  Не удалось найти устройство с uuid 4deOKh-FeJz-8JqG-SAyX-KviL-UGu4-PtJ138.
  Невозможно восстановить группу томов vg00 с 1 PV, помеченным как отсутствующий.
  Восстановление не удалось.

Как я могу восстановить этот беспорядок? Спасибо большое

Я знаю, что это старая тема, но думаю, что она будет полезна другим, так как я только что сделал ту же самую ошибку, но смог сделать это (довольно) легко.
Скачайте CD gparted, загрузитесь с него.
Откройте терминал и

sudo hexedit /dev/sda3

(где sda3 – ваш поврежденный раздел)
прокрутите стрелками до 00000200

Там вы должны увидеть строки, похожие на эти:

00000200  4c 41 42 45 4c 4f 4e 45  01 00 00 00 00 00 00 00  |LABELONE........|
00000210  fe b5 f2 9a 20 00 00 00  00 00 00 00 00 00 00 00  |.... ...........|
00000220  42 32 42 4e 66 78 44 54  41 79 55 67 57 65 77 41  |B2BNfxDTAyUgWewA|
00000230  70 4e 32 42 57 4e 4f 64  52 36 6e 74 55 6f 44 4d  |pN2BWNOdR6ntUoDM|

Замените строку 210 на этот код:

00000210  fe b5 f2 9a 20 00 00 00  4c 56 4d 32 20 30 30 31  |.... ...LVM2 001|

Нажмите F2, чтобы сохранить, CTRL + X, чтобы выйти и перезагрузить.
Вот и всё!

Начните записывать вашу сессию терминала, чтобы иметь запись того, что вы сделали.

Запустите процедуры восстановления резервной копии на случай потери данных. Запросите ленты или архивное хранилище. Пока не начинайте копировать данные.

Рассмотрите возможность создания образа блока устройства поврежденного PV, чтобы защитить данные от восстановления, которое может сделать их невосстанавливаемыми. Особенно если это легко сделать, как в случае с моментальным снимком массива хранения.

Следуйте процедуре, чтобы восстановить метаданные на физическом томе LVM. Заполните команды с поврежденным PV, учитывая, что неправильное значение может привести к потере данных. В частности, дважды проверьте, является ли блочное устройство целым диском /dev/sdb или каким-то разделом, например /dev/sdb1. Вы не напечатали таблицу разделов, поэтому я не могу быть уверенным.

 pvcreate --uuid 4deOKh-FeJz-8JqG-SAyX-KviL-UGu4-PtJ138 --restorefile vg00_00001-2029869851.vg blockdevice
 vgcfgrestore vg00
 lvchange --activate y 
 fsck

Проверьте, что данные находятся в порядок.


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

Проверьте, соответствовали ли резервные копии целям восстановления по времени. Скажем, у вас есть политика, позволяющая восстановиться до вчерашнего дня. Если ночной резервной копии не было или она не задокументирована, исправьте это.

Рассмотрите возможность создания будущих LVM PV на целых дисках. Это предотвращает усложнение с разделами, пропуская шаги fdisk. Linux LVM вполне нормально работает с PV на /dev/sdb.

Это помогло решить проблему, возникшую после удаления сигнатуры LVM. (RHEL 9.4)

https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/configuring_and_managing_logical_volumes/troubleshooting-lvm_configuring-and-managing-logical-volumes#repairing-a-disk-with-damaged-lvm-headers-and-metadata-using-the-pvck-command_troubleshooting-lvm

Процедура

Восстановите заголовки и метаданные на диске:

# pvck --repair -f <metadata-file> <disk>

где
    <metadata-file> -> /etc/lvm/backup/vg-name
 (или это может быть файл, содержащий сырые метаданные из вывода команды pvck --dump metadata_search.)
    <disk> - это имя диска, на котором должен быть PV, например, /dev/sdb. Чтобы предотвратить потерю данных, убедитесь, что это правильный диск. 

Ответ или решение

Восстановление удаленной подписи LVM: Полное руководство

Если вы столкнулись с проблемой удаления LVM-подписи после изменения размеров раздела в VMware и запуска команды fdisk, не отчаивайтесь. Это довольно распространенная ситуация, и с правильными действиями вы можете восстановить доступ к вашим логическим томам. В этом руководстве мы подробно рассмотрим шаги, которые помогут вам в этом процессе.

Шаг 1: Подготовка к восстановлению

Прежде всего, сделайте резервную копию данных, если это возможно. Если вы используете сервер, который легко отключить, рассмотрите возможность создания образа диска. Например, в VMware используйте функцию создания снимка (snapshot). Это предохранит ваши данные от потери в случае неверного действия.

Рекорды действий в терминале могут оказаться полезными для дальнейшего анализа и обучения.

Шаг 2: Проверка состояния системы

Используйте команду blkid, чтобы убедиться, что ваша физическая часть (PV) всё ещё показывает идентификаторы UUID. В вашем случае, судя по выводу, UUID изменился, и это означает, что ваша LVM-подпись была повреждена. Это наблюдение является важным первым шагом в процессе восстановления.

Шаг 3: Сканирование и восстановление как LVM

Для восстановления LVM-подписи слева используйте команду pvck, если у вас есть доступ к метаданным, хранящимся в /etc/lvm/backup/. Данная команда проверяет целостность заголовков и метаданных на ваших физических томах.

Если ваше состояние метаданных нарушено, выполните:

pvck --repair -f /etc/lvm/backup/vg-name /dev/sdb

Убедитесь, что вы указываете правильное имя вашего PV, чтобы избежать потери данных.

Шаг 4: Восстановление метаданных с использованием файла резервной копии

Если у вас есть резервная копия метаданных, вы можете восстановить метаданные с помощью команды vgcfgrestore. Однако, прежде чем вы это сделаете, проверьте наличие необходимых файлов:

vgcfgrestore vg00 --file vg00_00001-2029869851.vg

Шаг 5: Проверка восстановленных томов

После выполнения восстановительных действий проверьте, видны ли тома с помощью команд lvs, vgs и pvs, чтобы удостовериться, что все успешно восстановлено.

Шаг 6: Активация восстановленных томов

Если тома были успешно восстановлены, активируйте их:

lvchange --activate y /dev/mapper/vg00-vol_db

Запустите проверку файловой системы:

fsck /dev/mapper/vg00-vol_db

Шаг 7: Поиск поврежденной области

Если по каким-то причинам тома все еще не обнаруживаются, возможно, необходимо вручную попытаться редактировать заголовок, например, с использованием hexedit. Однако это требует специальных знаний и должно выполняться только в крайнем случае.

Заключение

Восстановление LVM может быть сложным процессом, но с правильными инструментами и подготовкой можно вернуть доступ к данным. Всегда убедитесь, что вы делаете резервные копии, и рассмотрите возможность создания LVM на целых дисках во избежание подобных ситуаций в будущем. Будьте осторожны при выполнении операций с разделами и используйте безопасные практики для предотвращения потерь.

Оцените материал
Добавить комментарий

Капча загружается...