Objectifs

Mon but ici est de pouvoir copier un fichier sur un domU Windows XP ou Windows 7. Ici
  1. le domU est melina-xen10.
  2. le dom0 est melina

Le domU est sous l'OS Windows 7 avec le système sous un volume logique (LVM). Les manipulations fonctionnent aussi pour Windows XP. Je ne ferais pas ici de "snapshot à la LVM "car ce n'est pas vraiment l'idée de ce billet mais celà n'empêche pas d'y recourir dans le cadre d'une politique de sauvegarde de domU

Pré-requis

Depuis le dom0, on installe deux petits paquets bien utils pour la suite
apt-get install kpartx ntfs-3g
ntfs-3g tout le monde connaît.

Pour kpartx, voir plus loin dans ce billet

On jette un petite coup d'oeil sur le bureau du domU avant extinction


Bureau du domU avant extinction
Ensuite on éteint le domU.

Manipulations

  • On va utiliser kpartx. Ce dernier permet d'accèder à la table des partitions d'un volume logique et de créer les divers fichiers de périphérique associés à cette table.

    1. option -a pour référencer la table des partitions du volume logique au système du dom0
    2. option -v pour le mode verbeux
    melina:~# kpartx -va /dev/xen-vm/melina-xen10-disk-1
    add map xen--vm-melina--xen10--disk--1p1 (254:19): 0 204800 linear /dev/xen-vm/melina-xen10-disk-1 2048
    add map xen--vm-melina--xen10--disk--1p2 (254:20): 0 41734144 linear /dev/xen-vm/melina-xen10-disk-1 206848

    Les diverses paritions offertes et découvertes par kpartx dans le volume logique en question sont suffixés pX où X est le numéro de la Xème partition trouvé dans le volume logique

    Un petit check pour la route

    melina:~# ls -l /dev/mapper/xen--vm-melina--xen10--disk--*
    brw-rw---- 1 root disk 254, 16 sep 10 13:18 /dev/mapper/xen--vm-melina--xen10--disk--1
    brw-rw---- 1 root disk 254, 19 sep 10 13:19 /dev/mapper/xen--vm-melina--xen10--disk--1p1
    brw-rw---- 1 root disk 254, 20 sep 10 13:19 /dev/mapper/xen--vm-melina--xen10--disk--1p2
  • C'est /dev/mapper/xen--vm-melina--xen10--disk--1p2 qui va nous intéresser On la mounte
    melina:~# mount -t ntfs-3g /dev/mapper/xen--vm-melina--xen10--disk--1p2 /storage/montage/
    On checke
    melina:~# mount
    /dev/sda1 on / type ext3 (rw,errors=remount-ro)
    tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
    proc on /proc type proc (rw,noexec,nosuid,nodev)
    sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
    procbususb on /proc/bus/usb type usbfs (rw)
    udev on /dev type tmpfs (rw,mode=0755)
    tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
    devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
    fusectl on /sys/fs/fuse/connections type fusectl (rw)
    /dev/sda2 on /home type ext3 (rw)
    /dev/sda3 on /opt type ext3 (rw)
    /dev/sda5 on /storage type ext3 (rw)
    none on /proc/xen type xenfs (rw)
    /dev/mapper/xen--vm-melina--xen10--disk--1p2 on /storage/montage type fuseblk (rw,allow_other,blksize=4096)
  • On copie un fichier pour la route
    melina:~# du -hs /storage/Denise_Milani/blue_bikini.mov
    101M	/storage/Denise_Milani/blue_bikini.mov
    melina:~# cp /storage/Denise_Milani/blue_bikini.mov /storage/montage/Users/david/Desktop/
  • On démounte le tout et déréférence les périphériques du système du dom0 (option d de kpartx)
    melina:~# umount /storage/montage/
    melina:~# kpartx -vd /dev/xen-vm/melina-xen10-disk-1 
    del devmap : xen--vm-melina--xen10--disk--1p2
    del devmap : xen--vm-melina--xen10--disk--1p1
    
  • On redémarre le domU pour vérifier

    Bureau du domU Le fichier blue_bikini.mov a été copié