Comment développer une image disque brute?

13

Les images officielles fournies sont des images de disque brutes, qui auraient pu être créées à l'aide de dd.

Comment agrandir une image? Je ne suis pas intéressé à repartitionner ladite image car cela a déjà été répondu dans Comment puis-je redimensionner ma partition / (racine)? .

Alex Chamberlain
la source
Vous ne savez pas exactement ce que vous entendez par expansion. Cherchez-vous à effectuer le «redimensionnement de la partition» sur l'image avant de la copier sur le disque?
Joost
C'est un objectif, mais pour ce faire, il faut développer l'image du disque.
Alex Chamberlain

Réponses:

13

Comme expliqué dans cette question, il existe deux méthodes pour agrandir l'image. Voici deux exemples pour étendre le fichier de 1 kilo-octet.

DD crée un fichier non clairsemé

dd if=/dev/zero bs=1k count=1 >> myimage.img

Tronquer crée un fichier clairsemé

truncate -s +1024 myimage

Vous voudrez probablement utiliser tronquer. Un fichier fragmenté écrit uniquement les métadonnées des blocs qu'il utilise, au lieu d'écrire réellement les blocs. Cela rend la création du fichier plus rapide (car il n'a pas à écrire de zéro sur le disque) et économise de l'espace sur votre disque.

Remarque Le système de fichiers HFS + d'Apple ne prend pas en charge les fichiers clairsemés.

Joost
la source
HFS + n'est pas conforme à POSIX? linux.die.net/man/2/truncate
Alex Chamberlain
Si la prise en charge de fichiers clairsemés est une exigence pour POSIX, je suppose que non. Voici une belle démonstration des différences entre HFS + et certains ext (je suppose) stackoverflow.com/a/193015/689893 . Apparemment, il crée le fichier mais il utilise l'espace disque comme s'il s'agissait d'un fichier normal au lieu d'un fichier clairsemé.
Joost
Non, je pense que j'avais mal compris!
Alex Chamberlain
Si vous avez ddun fichier clairsemé , sera-t-il toujours exact?
Alex Chamberlain
Un fichier clairsemé contient des données, donc je suppose que vous pouvez simplement ajouter des zéros. Il traitera cette partie comme non clairsemée.
Joost
10

Un moyen incroyablement simple de redimensionner l'image consiste à utiliser l'un des qemuoutils appelés qemu-img. Cela dépend bien sûr du fait que vous avez qemuinstallé (ce que je sais que vous faites déjà Alex).

La commande ressemble à ceci:

qemu-img resize filename [+|-]size[K|M|G|T]

Où se filenametrouve le fichier image et la taille est la taille que vous souhaitez agrandir (ou réduire) l'image.

Par exemple, si vous souhaitez étendre l'image archarm.imgde 2 Go, vous exécuterez:

qemu-img resize archarm.img +2G
Jivings
la source
En vous référant à la page de manuel, avant d'utiliser cette commande pour réduire une image disque, vous DEVEZ utiliser le système de fichiers et les outils de partitionnement à l'intérieur de la machine virtuelle pour réduire les systèmes de fichiers alloués et les tailles de partition en conséquence. Ne pas le faire entraînera une perte de données!
AntonioK