Назад | Перейти на главную страницу

LVM2: pvscan со смещением?

После Я слишком усердно играл с mdadm, Я сейчас пытаюсь восстановить свои тома lvm2, которые находились в исходном массиве RAID1. pvscan ничего не находит, но это неудивительно: поскольку mdadm не может восстановить массив, pvscan не имеет / dev / md1 для просмотра.

Однако я знаю (э ... надеюсь) мои тома lvm2 все еще там, я думаю, что я только заблокировал метаданные рейда.

Моя идея состоит в том, чтобы losetup / dev / sdc2 в / dev / loop1 со смещением, используя live sysresccd, чтобы я пропустил сломанные метаданные RAID в / dev / sdc2 и достиг самого PV. Планирую что-то вроде:

losetup -o xxxxxx /dev/loop1 /dev/sdc2
pvscan

Тогда pvscan сможет найти объем в / dev / loop1. Проблема в том, что я не знаю смещения (но это можно преодолеть путем изучения или методом проб и ошибок) и, что наиболее важно, losetup не работает с физическими устройствами. Как я могу создать устройство, которое указывает на другое устройство со смещением? Или как заставить pvscan искать физические тома с помощью смещения?

ИЗМЕНИТЬ после комментария @lsd:

Когда я попробовал:

losetup -o 32256 /dev/loop1 /dev/sdc2 

Я получил:

losetup: /dev/sdc2: warning: file smaller than 512 bytes, the loop device maybe be useless or invisible for system tools. 

и я предположил, что предупреждение говорило мне, что что-то не так, потому что / dev / sdc2 меньше 512 байт, только если вы считаете его обычным файлом, но если losetup поддерживает блочные устройства, он должен знать его реальный размер ... я должен игнорировать предупреждение все же?

losetup отлично работает с файлами устройства. По крайней мере, на Ubuntu 14.04. Linux 3.13.0-43-generic с util-linux 2.20.1-5.1ubuntu20. И с 2.26-rc1 от git.

sudo losetup -o 32256 /dev/loop5 /dev/sdb3
sudo tail -c 32257 /dev/sdb3 | sudo cmp - /dev/loop5 

(почему-то не работает подмена процесса: sudo cmp <(sudo tail -c 32257 /dev/sdb3) /dev/loop5. «cmp: / dev / fd / 63: нет такого файла или каталога»)

Я больше не использую lvm в этой системе. Я не помню, чтобы LVM ломал обычные устройства с обратной связью. Если только он не выполняет какую-либо форму блокировки на простых блочных устройствах, поэтому их нельзя использовать напрямую.