Taille disque dur virtuel virtualbox

Salut à tous,

J’ai une question par rapport à la taille de mon disque dur virtuel sous virtualbox. J’ai installé win xp dessus et dans le poste de travail de la machine invitée, sa taille est de l’ordre de 7 Go. Or le fichier .vdi sur ma debian hote fait 18,8 Go !
Ca fait une sacrée différence et je ne vois pas à quoi cela est du.
Je précise que ce disque a normalement une taille max de 20 Go avec une taille flexible.

Si quelqu’un pouvait m’apporter ses lumières…

Merci.

Salut,

Selon la manière dont tu as défini ton fichier il grossit au fur et à mesure ou il occupe d’un seul coup tout l’espace :slightly_smiling:

Un disque virtuel se partitionne comme un “vrai” disque.
Un disque virtuel est capable d’accueillir un double boot (ou triple, quadruple … boot) .

Attache une image iso d’un live-cd quelconque à ta machine virtuelle , démarre dessus et applique lui

fdisk -l

pour voir si le disque n’a pas été repartitionné par erreur ou en ignorance de cause.
Il peut arriver de se tromper lorsqu’on attache/détache fréquemment les disques à une machine virtuelle.

Merci pour vos réponses rapides,

Il me semblait bien avoir compris cela à l’install c’est pour ça que j’ai choisi un disque à taille variable.

[quote=“etxeberrizahar”]Attache une image iso d’un live-cd quelconque à ta machine virtuelle , démarre dessus et applique lui

fdisk -l

pour voir si le disque n’a pas été repartitionné par erreur ou en ignorance de cause.
Il peut arriver de se tromper lorsqu’on attache/détache fréquemment les disques à une machine virtuelle.[/quote]
Rien d’anormal de ce côté…

Par contre, je viens de penser à un truc : se pourrait-il que ce fameux disque ne diminue pas sa taille : J’ai tenté d’installer un jeu sur ce windows qui faisait environ 11 ou 12 Go. J’ai par la suite supprimer ces fichiers. Le disque aurait alors garder la taille atteinte à ce moment ?

Re,

[quote]Par contre, je viens de penser à un truc : se pourrait-il que ce fameux disque ne diminue pas sa taille : J’ai tenté d’installer un jeu sur ce windows qui faisait environ 11 ou 12 Go. J’ai par la suite supprimer ces fichiers. Le disque aurait alors garder la taille atteinte à ce moment ?
[/quote]

Supposition parfaitemenr exacte :slightly_smiling:

Les blocs utilisés et effacés sont effectivement repercutés sur le disque virtuel à taille fluctuante.
Un effacement des fichiers en question ne rétrecit pas le disque virtuel.

C’était bien ça…

Après quelques recherches sur google, j’ai recréé un nouveau disque virtuel, j’ai cloné avec clonezilla et là, miracle, mon nouveau disque ne fait plus que 5,4 Go !
Pas très pratique tout ça… Dommage que la taille du disque ne varie pas dans un sens comme dans l’autre. Enfin, ça ne m’a demandé que 5 minutes. :wink:

En tout cas merci à vous deux pour votre aide.

Il ne faut pas confondre la taille apparente du fichier et la taille réelle du fichier: Tu peux faire un fichier dont la taille réelle est de 2K et la taille apparente 4G, il suffit d’écrire un octet à l’indice (offset) 0 et un autre à l’indice 4294967296, ton fichier occupera deux blocs effectifs sur le disque et aura une taille de 4G. Pour avoir la taille réel de ton fichier, fais un «du» du fichier.

[quote]francois@totoche:/tmp$ ls -ltr toto
-rw-r–r-- 1 francois francois 4000000001 juil. 5 10:24 toto
francois@totoche:/tmp$ du toto
16 toto
francois@totoche:/tmp$ du -sh toto
16K toto
francois@totoche:/tmp$
[/quote]

qemu gérait ses disques comme ça, VBox a l’air un peu différent mais pour de tels fichiers, il vaut mieux regarder la taille par du plutôt que ls -l.

Désolé mais là j’ai rien compris…
C’est quoi ces offset et ces indices ?

Fais

dd if=/dev/zero of=toto bs=1 count=1 dd if=/dev/zero of=toto bs=1 count=1 seek=4000000000 ls -l toto du toto
Première commande: met un octet (0) dans toto au début.
Deuxième commande: met un octet (0) dans toto à la position 4000000000
Troisième commande et 4ième commande: taille apparente et taille réelle de toto:

[quote]francois@totoche:/tmp$ dd if=/dev/zero of=toto bs=1 count=1
1+0 enregistrements lus
1+0 enregistrements écrits
1 octet (1 B) copié, 0,000111118 s, 9,0 kB/s
francois@totoche:/tmp$ dd if=/dev/zero of=toto bs=1 count=1 seek=4000000000
1+0 enregistrements lus
1+0 enregistrements écrits
1 octet (1 B) copié, 9,4356e-05 s, 10,6 kB/s
francois@totoche:/tmp$ ls -l toto
-rw-r–r-- 1 francois francois 4000000001 juil. 5 12:38 toto
francois@totoche:/tmp$ du toto
16 toto
francois@totoche:/tmp$
[/quote]
Si tu veux un fichier de 2000G,n tu fais

dd if=/dev/zero of=toto bs=1 count=1 seek=2000000000000
tu obtiens

[quote]francois@totoche:/tmp$ ls -l toto
-rw-r–r-- 1 francois francois 2000000000001 juil. 5 12:38 toto
[/quote]soit un fichier de 2To dans une partition de quelques G!!!

ok, mais concrètement, je vois mal quel peut-être l’intérêt d’une telle manip ?

Les disques virtuels peuvent être des fichiers à «trous» ayant une taille apparente importante alors que la taille réelle peut être faible. Il vaut mieux utiliser du que ls -l pour voir leur taille.

ok, merci pour ces précisions.