Virt/RawDisk
Accéder à des données sur un disque virtuel (RAW)
On va monter notre image du disque sur la boucle locale
losetup /dev/loop0 /var/lib/xen/images/spacewalk.img
On va ensuite visualiser le partitionnement de celui-ci.
fdisk -lu /dev/loop0
Disk /dev/loop0: 25.8 GB, 25769803776 bytes
255 heads, 63 sectors/track, 3133 cylinders, total 50331648 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: 0x000a0311
Device Boot Start End Blocks Id System
/dev/loop0p1 * 2048 411647 204800 83 Linux
/dev/loop0p2 411648 2508799 1048576 82 Linux swap / Solaris
/dev/loop0p3 2508800 50331647 23911424 8e Linux LVM
On peut remarquer
- La taille d'un secteur est de 512 octets
- Le disque comporte trois partitions
- Une partition linux commençant au secteur 2048, très probablement la partition /<path>boot</path>
- Une partition de swap commençant au secteur 411648
- Une partition contenant un partitionnemnt LVM commençant au secteur 2508800
On peut donc maintenant démonter notre disque
losetup -d /dev/loop0
Cette fois, on va monter la partition contenant LVM. Pour ce faire, on va monter l'image disque avec un offset. Celui-ci ne peut être défini qu'en octets et non en secteur. Comme on est fainéant, c'est bash qui fera la calcul.
losetup -o $((512*2508800)) /dev/loop0 /var/lib/xen/images/spacewalk.img
Si le groupe de volume virtuel a le même nom sur le Dom0 et le disque virtuel, il faut le renommer
vgscan
Reading all physical volumes. This may take a while...
Found volume group "vg0" using metadata type lvm2
Found volume group "vg0" using metadata type lvm2
vgdisplay
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 111
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 4
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 134,91 GiB
PE Size 32,00 MiB
Total PE 4317
Alloc PE / Size 3904 / 122,00 GiB
Free PE / Size 413 / 12,91 GiB
VG UUID oZKl9P-AU3D-PmTr-CkR3-CY0r-jMiZ-mGr2fn
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 4
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 22,78 GiB
PE Size 32,00 MiB
Total PE 729
Alloc PE / Size 640 / 20,00 GiB
Free PE / Size 89 / 2,78 GiB
VG UUID jUvBHs-xUtw-FNVA-M3Wn-iqB2-0HNr-8clONi
vgrename jUvBHs-xUtw-FNVA-M3Wn-iqB2-0HNr-8clONi vg01
vgscan
Reading all physical volumes. This may take a while...
Found volume group "vg0" using metadata type lvm2
Found volume group "vg01" using metadata type lvm2
On créer notre point de montage temporaire
mkdir /mnt/tmp
On visualise nos volumes logiques LVM
lvscan
ACTIVE '/dev/vg0/lv0' [5,00 GiB] inherit
ACTIVE '/dev/vg0/lv1' [4,00 GiB] inherit
ACTIVE '/dev/vg0/lv2' [103,00 GiB] inherit
ACTIVE '/dev/vg0/lv3' [10,00 GiB] inherit
inactive '/dev/vg01/lv0' [5,00 GiB] inherit
inactive '/dev/vg01/lv1' [3,00 GiB] inherit
inactive '/dev/vg01/lv2' [10,00 GiB] inherit
inactive '/dev/vg01/lv3' [2,00 GiB] inherit
Celles du disque virtuel sont désactivées.
On active notre partition LVM
lvchange -a y /dev/vg01/lv0
On monte notre partition LVM
mount /dev/vg01/lv0 /mnt/tmp/
On peut maintenant accéder à nos données
vim /mnt/tmp/etc/fstab
Une fois fini, on démonte notre volume logique
umount /dev/vg01/lv0
On le désactive car sinon on ne peut pas démonter notre boucle locale
lvchange -a n /dev/vg01/lv0
On démonte notre boucle locale
losetup -d /dev/loop0