Translate

viernes, 21 de febrero de 2020

Recuperación del sistema de archivos de un volumen lógico perdido Recovering file system from a logic volume LVM

Problema:
La información del  LVM fue borrada y no hubo de manera de recuperar el LVM.
No se cuenta con la información del LVM ya que no aparece al ejecutar el comando lvs ni tampoco hay archivos de respaldo de la configuración en /etc/lvm.
El LVM está contenido en un solo volumen físico contenido en una memoria de tipo USB.

1.  Verificamos las particiones de la USB:

# parted /dev/sdc p
Model: SanDisk Ultra (scsi)
Disk /dev/sdc: 15.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name                  Flags
 1      1049kB  211MB   210MB   fat16        EFI System Partition  boot, esp
 2      211MB   1285MB  1074MB  xfs                                msftdata
 3      1285MB  15.7GB  14.4GB                                     lvm 

2.  Los archivos a recuperar son de la partición 3 marcada con el flag 'lvm'. Podemos ver la información contenida en esta partición, mediante:

# hexdump -C /dev/sdc3 | head -12
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001000  16 d6 8e db 20 4c 56 4d  32 20 78 5b 35 41 25 72  |.... LVM2 x[5A%r|
00001010  30 4e 2a 3e 01 00 00 00  00 10 00 00 00 00 00 00  |0N*>............|
00001020  00 f0 0f 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001200  63 65 6e 74 6f 73 20 7b  0a 69 64 20 3d 20 22 41  |centos {.id = "A|
00001210  66 4c 31 55 61 2d 32 50  34 58 2d 5a 6f 75 64 2d  |fL1Ua-2P4X-Zoud-|
00001220  6b 31 63 46 2d 45 32 44  51 2d 61 79 46 36 2d 76  |k1cF-E2DQ-ayF6-v|
00001230  70 7a 30 75 70 22 0a 73  65 71 6e 6f 20 3d 20 31  |pz0up".seqno = 1|
00001240  0a 66 6f 72 6d 61 74 20  3d 20 22 6c 76 6d 32 22  |.format = "lvm2"|


Más adelante podemos ver que existe un file system XFS, en:
00001cb0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00100000  58 46 53 42 00 00 10 00  00 00 00 00 00 35 a0 00  |XFSB.........5..|
00100010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00100020  23 f4 10 71 76 ca 4c 14  96 21 ae 3d 02 4b 96 f4  |#..qv.L..!.=.K..|
00100030  00 00 00 00 00 20 00 04  00 00 00 00 00 00 00 40  |..... .........@|
00100040  00 00 00 00 00 00 00 41  00 00 00 00 00 00 00 42  |.......A.......B|
00100050  00 00 00 01 00 0d 68 00  00 00 00 04 00 00 00 00  |......h.........|
00100060  00 00 0a 00 b4 b5 02 00  02 00 00 08 00 00 00 00  |................|


3. Este file system lo podemos montar usando el dispositivo loop con el 'offset' indicado:
losetup /dev/loop0 /dev/sdc3 --offset $((0x100000))

4. Podemos verificar que sí es un XFS:
file -s /dev/loop0
/dev/loop0: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)


5. Y lo montamos:
cd /mnt
mkdir fs
mount /dev/loop0 fs
cd fs
ls

bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var


Referencias:
https://www.robmeerman.co.uk/unix/lvm_recovery

No hay comentarios: