Table des matières
Effectuer des opérations sur des images de disque raw
Dans le cadre d'utilisations de VMs KVM, on utilise souvent des images disques qcow2 ou encore raw.
Il existe des outils rapides de conversion d'un type vers l'autre, comme par exemple pour convertir un qcow2 en raw :
qemu-img convert -O raw fichier.qcow2 fichier.raw
ou encore l'opération inverse :
qemu-img convert -O qcow2 fichier.raw fichier.qcow2
Effectuer un fsck sur une partition d'un fichier RAW
Pour dire a linux d'utiliser un fichier en tant que périphérique, on utilise un périphérique loop. Pour connaitre le premier périphérique loop disponible, utiliser la commande
losetup -f
qui devrait renvoyer quelque chose comme :
#losetup -f /dev/loop0
Nous pouvons donc utiliser /dev/loop0. Pour assigner le fichier raw a /dev/loop0 :
losetup /dev/loop0 fichier.raw
On peut utiliser la commande
losetup -a
pour vérifier l'utilisation de lo0 : elle devrait fournir un résultat similaire à :
# losetup -a /dev/loop0: [fc00]:7077927 (/mnt/data/fichier.raw)
On utilise ensuite kpartx pour lire les partitions de loop0 et créer les périphériques correspondants afin que nous puissions y accéder :
kpartx -av /dev/loop0
qui devrait affichier quelque chose comme (dépendant des partitions présentes) :
# kpartx -av /dev/loop0 add map loop0p1 (251:0): 0 15624928 linear /dev/loop0 32 add map loop0p2 (251:1): 0 3906176 linear /dev/loop0 15627008 add map loop0p3 (251:2): 0 19531264 linear /dev/loop0 19535104 add map loop0p4 (251:3): 0 39062400 linear /dev/loop0 39068416
On peut ensuite accéder aux partitions via /dev/mapper/loop0p1 a /dev/mapper/loop0p4 dans notre exemple.
Ainsi pour effectuer un fsck sur la partition /dev/mapper/loop0p4 :
# e2fsck -f /dev/mapper/loop0p4 e2fsck 1.41.11 (14-Mar-2010) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/mapper/loop0p4: 9138/1224000 files (17.1% non-contiguous), 1175780/4882800 blocks
kpartx -dv /dev/loop0 losetup -d /dev/loop0
On peut ensuite vérifier de nouveau avec la commande “losetup -a” que loop0 n'est plus utilisé :
Le résultat de ces commandes devrait ressembler à :
root@kvm-3:~ # kpartx -dv /dev/loop0 del devmap : loop0p4 del devmap : loop0p3 del devmap : loop0p2 del devmap : loop0p1 root@kvm-3:~ # losetup -d /dev/loop0 root@kvm-3:~ # losetup -a root@kvm-3:~ #
Références
Dans la même veine
Vous voudrez peut-être jeter un coup d’œil à la page Monter une image disque qcow2 si les disques de vos VMs sont en qcow et non en raw