30 novembre 2014

[Proxmox] Montare un file di backup in una cartella

Ho avuto la necessità di recuperare al volo dei dati da un file di backup di proxmox, di seguito elenco la procedura che ho utilizzato:
1) Per prima cosa ho copiato il file di backup dalla cartella di proxmox (compresso con lzo) in una cartella temporanea
root@Proxmox-VE ~ # cp /var/lib/vz/dump/vzdump-qemu-102-2014_11_24-06_26_31.vma.lzo /tmp
2) Ho decompresso il file e successivamente estratto nella cartella "vmextracted"
root@Proxmox-VE ~ # lzop -d /tmp/vzdump-qemu-102-2014_11_24-06_26_31.vma.lzo
root@Proxmox-VE ~ # vma extract /tmp/vzdump-qemu-102-2014_11_24-06_26_31.vma /tmp/vmextracted
DEVINFO /tmp/vmextracted/tmp-disk-drive-ide0.raw 21474836480
Formatting '/tmp/vmextracted/tmp-disk-drive-ide0.raw', fmt=raw size=21474836480
3) All'interno della cartella c'è il file che a noi interessa e uno o più altri file di supporto a Proxmox, spostiamoci quello che ci serve e eliminiamo il resto
root@Proxmox-VE ~ # mv /tmp/vmextracted/disk-drive-ide0.raw /tmp/vmextracted.vmdk
root@Proxmox-VE ~ # rm /tmp/vmextracted/*
root@Proxmox-VE ~ # rm /tmp/vzdump-qemu-102-2014_11_24-06_26_31.vma*
4) Verifichiamo il contenuto del file così da sapere le partizioni all'interno
root@Proxmox-VE ~ # fdisk -lu /tmp/vmextracted.vmdk

Disk /tmp/vmextracted.vmdk: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 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
Disk identifier: 0x0006381c

Device Boot Start End Blocks Id System
/tmp/vmextracted.vmdk1 * 2048 1026047 512000 83 Linux
/tmp/vmextracted.vmdk2 1026048 41943039 20458496 8e Linux LVM
5) Come possiamo vedere ci sono due partizioni, dobbiamo quindi calcolare il settore preciso da cui far partire il mount moltiplicando la posizione di start della partizione che ci interessa (1026048) per il numero di bytes per settore (512)
root@Proxmox-VE ~ # echo $(( 1026048 * 512 ))
525336576
6) Procediamo quindi con il mount vero e proprio
root@Proxmox-VE ~ # losetup -o 525336576 /dev/loop0 /tmp/vmextracted.vmdk
root@Proxmox-VE ~ # pvdisplay /dev/loop0
--- Physical volume ---
PV Name /dev/loop0
VG Name vg_pierocs
PV Size 19.51 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 4994
Free PE 0
Allocated PE 4994
PV UUID DVPpuC-Y4vG-wewi-xjJc-RnSC-57oq-c4DmAT

root@Proxmox-VE ~ # lvscan
inactive '/dev/vg_pierocs/lv_root' [17.54 GiB] inherit
inactive '/dev/vg_pierocs/lv_swap' [1.97 GiB] inherit
root@Proxmox-VE ~ # lvchange -ay /dev/vg_pierocs/lv_root
root@Proxmox-VE ~ # mount /dev/vg_pierocs/lv_root /tmp/vmextracted
7) Abbiamo finalmente la nostra partizione montata e possiamo esplorarla
root@Proxmox-VE ~ # cd /tmp/vmextracted/
8) Quando abbiamo finito dobbiamo procedere con lo smontare la partizione, eliminare il device loop e eliminare il file
root@Proxmox-VE ~ # umount /tmp/vmextracted
root@Proxmox-VE ~ # lvchange -an /dev/vg_pierocs/lv_root
root@Proxmox-VE ~ # losetup -d /dev/loop0
root@Proxmox-VE ~ # rm /tmp/vmextracted.vmdk
root@Proxmox-VE ~ # rm -r /tmp/vmextracted/

Nessun commento:

Posta un commento