
Я в головоломке. Мне нужно извлечь данные из резервного образа, который я создал ранее. Я думал, что знаю достаточно о LVM, чтобы обойтись... по крайней мере до сих пор.
Кажется, моя ошибка в том, что я сделал резервную копию тома моментального снимка LVM, а не всей группы томов или раздела диска. Большинство статей, которые я читал, подразумевают, что вы сделали резервную копию всего диска.
Вот моя схема LVM:
xvda 202:0 0 10G 0 disk
└─xvda1 202:1 0 10G 0 part
├─lvm1-root 254:2 0 8.1G 0 lvm /
└─lvm1-swap 254:3 0 956M 0 lvm [SWAP]
Вот моя резервная команда:
lvcreate -L800M -s -n rootsnapshot /dev/lvm1/root
dd if=/dev/lvm1/rootsnapshot conv=sync,noerror bs=128K status=progress of=/path/to/snapshot.dd
Я смонтировал файл DD как /dev/loop0 на другой машине.
Вот что я получаю:
# fdisk -l
Disk /dev/loop0: 8.1 GiB, 8657043456 bytes, 16908288 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
# lvmdiskscan
/dev/loop0 [ 8.06 GiB]
/dev/sda1 [ <7.00 GiB]
/dev/sda5 [ 1022.00 MiB]
0 disks
3 partitions
0 LVM physical volume whole disks
0 LVM physical volumes
# vgscan -v
Reading all physical volumes. This may take a while...
No volume groups found.
Есть идеи, как можно смонтировать этот снимок, чтобы извлечь из него данные?
решение1
Разобрался. Это очень просто.
Во-первых, моя проблема заключалась в том, что мой последний файл резервной копии DD был полностью заполнен байтами 0x00...
Как только я воспользовался старой резервной копией, содержащей реальные данные, все пошло очень гладко.
losetup /dev/loop0 /path/to/snapshot.dd
mount -f ext4 /dev/loop0 /mnt/tmp
Работает отлично!