Virt/RawDisk

De TartareFR
Version datée du 29 novembre 2013 à 10:01 par Didier (discussion | contributions) (Page créée avec « == Accéder à des données sur un disque virtuel (RAW) == On va monter notre image du disque sur la boucle locale <syntaxhighlight lang="bash"> losetup /dev/loop0 /var/l... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

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
Warning.png
Modification du nom du VG
Il va falloir mettre à jour le fichier <path>/etc/fstab</path> sur le disque virtuel
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