[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Redimensionner une Image RAW QEMU Comportant un Système de Fichiers NTFS

C'est un guide rapide pour augmenter l'espace disponible de votre machine virtuelle Windows munie d'un système de fichiers NTFS. L'exemple s'appuie sur le redimensionnement d'une partition de 5Go à 6Go.

Sauvegardez votre fichier original au cas où quelque chose ne se déroulerait pas bien.

Utiliser qemu-img pour redimensionner l'image disque RAW de QEMU

Cette commande augmente la taille de l'image-disque du fichier Windows_XP_Professional_SP_3.img d'1Go.

qemu-img resize Windows_XP_Professional_SP_3.img +1G

Après cette commande, si vous démarrez votre machine virtuelle, vous verrez 1Go d'espace libre supplémentaire.

Trouver l'offset dans l'image

Monter l'image en mode loop.

losetup /dev/loop0 Windows_XP_Professional_SP_3.img

Regarder la table de partition (ici parted est utilisé mais fdisk ou cfdisk peuvent également être utilisés).

parted /dev/loop0

Dans parted, sélectionnez l'unité sur secteurs puis afficher la table de partition actuelle.

(parted) unit s                                                           
(parted) print 

La sortie devrait ressembler à quelque chose comme ça:

Model: Loopback device (loopback)
Disk /dev/loop0: 12582912s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start  End        Size       Type     File system  Flags
 1      63s    11718798s  11718736s  primary  ntfs         boot

Notez les valeurs du début (Start) et de la taille (Size) du secteur.

Puis quittez parted.

(parted) quit

Supprimer le device loop.

losetup -d /dev/loop0

Utiliser ntfsresize pour redimensionner la partition NTFS

Monter la partition NTFS en mode loop pour la redimensionner; calculez l'offset d'après les valeurs sector size et start sector.

losetup -o$((512*63)) /dev/loop0 Windows_XP_Professional_SP_3.img

Faites un test.

 ntfsresize -n -s 6G /dev/loop0

Si tout est OK, faites le pour de vrai.

ntfsresize -s 6G /dev/loop0

Supprimer le loop device.

losetup -d /dev/loop0

Mettre à Jour la table de partition

Monter l'image en mode loop.

losetup  /dev/loop0 Windows_XP_Professional_SP_3.img

Mettez à jour la table de partition en utilisant parted (fdisk et cfdisk semble ne pas fonctionner ici).

parted /dev/loop0

Cela semble être un pas en arrière mais maintenant utilisez parted pour supprimer la partition existante.

(parted) rm 1

Utilisez la command rescue de parted pour retrouver la partition, entrez la taille de la partition en Mo avec l'option END

(parted) rescue 1 6000                                                    
Information: A ntfs primary partition was found at 32.3kB -> 6000MB.  Do you want to add it to the partition table?
Yes/No/Cancel? Yes

Ajoutez l'option boot sur la partition récupérée.

(parted) set 1 boot on

La table de partition sera sauvegardée lorsque vous quitterez parted

(parted) quit

Supprimez le loop device.

losetup -d /dev/loop0

Cloturer

Démarrez la machine virtuelle et laissez le programme chkdsk de Windows se lancer.

Sources

 fr:howtos:general_admin:resize_a_qemu_raw_image_with_an_ntfs_filesytem ()