После Я слишком усердно играл с 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 ломал обычные устройства с обратной связью. Если только он не выполняет какую-либо форму блокировки на простых блочных устройствах, поэтому их нельзя использовать напрямую.