Redimensionner une image de partition avec GParted?


15

J'ai déjà redimensionné des partitions dans GParted auparavant. Maintenant, je voudrais déplacer une partition grande mais surtout vide vers un lecteur plus petit. Au lieu de le redimensionner en place, je préfère faire une copie sur un troisième lecteur (image du lecteur à l'aide de dd), redimensionner la copie, puis dd la copie sur le nouveau lecteur. Mais je ne pense pas que Gparted fonctionne sur les images de lecteur? Comment pourrais-je faire ça? Puis-je utiliser directement les outils utilisés par GParted?

Ooh! Ou puis-je utiliser une fonction de bouclage pour faire ressembler le fichier image à un lecteur physique sur lequel gparted peut fonctionner?


Réponses:


3

Vous ne pouvez pas le faire avec GParted, mais vous pouvez utiliser la ntfsresizecommande directement sur une image disque.

Tout d'abord, clonez l'image disque. Vous pouvez trouver le nom du périphérique de disque à l'aide de blkidou gParted, puis exécuter:

sudo dd if=<disk device> of=<image file>

Par exemple:

$ sudo dd if=/dev/sda2 of=disk.img
1000000+0 records in
1000000+0 records out
512000000 bytes (512 MB) copied, 9.33361 s, 54.9 MB/s

Ensuite, vérifiez si vous pouvez le redimensionner à la taille dont vous avez besoin en exécutant:

ntfsresize -i <image file>

Par exemple:

$ ntfsresize -i disk.img
ntfsresize v2011.4.12 (libntfs-3g)
Device name        : disk.img
NTFS volume version: 3.1
Cluster size       : 4096 bytes
Current volume size: 511996416 bytes (512 MB)
Current device size: 512000000 bytes (512 MB)
Checking filesystem consistency ...
100.00 percent completed
Accounting clusters ...
Space in use       : 4 MB (0.6%)
Collecting resizing constraints ...
You might resize at 3035136 bytes or 4 MB (freeing 508 MB).
Please make a test run using both the -n and -s options before real resizing!

Dans cet exemple, je peux redimensionner jusqu'à 4 Mo car je viens de créer une image disque vierge à des fins d'illustration!

Vous pouvez maintenant faire le test si vous le souhaitez, bien que ce ne soit pas strictement nécessaire car vous travaillez sur une image. Vous pouvez spécifier la taille en kilo - octets, méga - octets ou giga - octets en ajoutant un k, Mou G, respectivement:

ntfsresize -cnvs <size> <image file>

Par exemple:

$ ntfsresize -cnvs 256M disk.img 
ntfsresize v2011.4.12 (libntfs-3g)

Aucune sortie n'est une bonne sortie! Maintenant, faites-le pour de vrai:

ntfsresize -vs <size> <image file>

Dernier exemple:

$ ntfsresize -vs 256M disk.img 
ntfsresize v2011.4.12 (libntfs-3g)
Device name        : disk.img
NTFS volume version: 3.1
Cluster size       : 4096 bytes
Current volume size: 511996416 bytes (512 MB)
Current device size: 512000000 bytes (512 MB)
New volume size    : 255996416 bytes (256 MB)
Checking for bad sectors ...
Checking filesystem consistency ...
100.00 percent completed
Accounting clusters ...
Space in use       : 4 MB (0.6%)
Collecting resizing constraints ...
Needed relocations : 625 (3 MB)
WARNING: Every sanity check passed and only the dangerous operations left.
Make sure that important data has been backed up! Power outage or computer
crash may result major data loss!
Are you sure you want to proceed (y/[n])? y
Schedule chkdsk for NTFS consistency check at Windows boot time ...
Resetting $LogFile ... (this might take a while)
Relocating needed data ...
Relocate record       1:0x80:00000001:0x00000000:0x0000f423 --> 0x00007a11
Relocate record       2:0x80:00000624:0x00000000:0x0000f424 --> 0x00007a12
100.00 percent completed
Updating $BadClust file ...
Updating $Bitmap file ...
Updating Boot record ...
Syncing device ...
Successfully resized NTFS on device 'disk.img'.
You can go on to shrink the device for example with Linux fdisk.
IMPORTANT: When recreating the partition, make sure that you
  1)  create it at the same disk sector (use sector as the unit!)
  2)  create it with the same partition type (usually 7, HPFS/NTFS)
  3)  do not make it smaller than the new NTFS filesystem size
  4)  set the bootable flag for the partition if it existed before
Otherwise you won't be able to access NTFS or can't boot from the disk!
If you make a mistake and don't have a partition table backup then you
can recover the partition table by TestDisk or Parted's rescue mode.

C'est tout! Vous pouvez maintenant copier cette image disque sur le nouveau périphérique.


Hmmm ... la partition logique est à l'intérieur d'une partition étendue. Dois-je définir la partition logique elle-même lors de la copie?
endolith

J'ai utilisé resize2fs sur un fichier image ext3 hier soir, et le fichier lui-même a été réduit en taille par la suite! :) Je pensais que ce serait une étape distincte car le système de fichiers n'est pas le même que la partition.
endolith

@endolith: Oui, ddla partition logique. Si vous faisiez la partition étendue, vous obtiendrez toutes les partitions logiques à l'intérieur!
Correctifs

@Patches: Eh bien, il n'y a qu'une seule partition logique à l'intérieur, de la même taille. :)
endolith

1
@endolith: Pourtant, je pense ddque la partition étendue apportera des informations supplémentaires qui confondront e2fsprogset ntfsprogs. Ils ne savent rien des partitions, comme vous l'avez découvert plus tôt.
Correctifs

14

Je ne sais pas quelle était la situation il y a 5 ans, mais aujourd'hui c'est du gâteau.

$ sudo udisksctl loop-setup -f disk.img
Mapped file disk.img as /dev/loop0.
$ sudo gparted /dev/loop0

Maintenant, vous pouvez manger le gâteau.


0

Pourriez-vous le redimensionner en place avec GParted puis utiliser Clonezilla pour déplacer la partition vers le nouveau disque?


2
Je ne veux pas le redimensionner en place. Je ne veux pas foirer l'original si je n'ai pas à le faire.
endolith

0

J'utilise GParted depuis de très nombreuses années et je n'ai jamais perdu un peu. J'aime aussi l' édition familiale gratuite d' Easus pour Windows.

Quelle est la taille de votre partition? Pouvez-vous copier les données sur USB / DVD / un système de stockage en ligne gratuit, afin de ne pas les perdre - puis les redimensionner en place? Les deux outils susmentionnés ne perdront pas vos données si vous les laissez s'exécuter complètement.

Vous dites I've resized partitions in GParted before- alors pourquoi l'inquiétude maintenant? Et DD fera une copie peu à peu ... donc vous devrez quand même redimensionner (défragmenter d'abord).


Je convertis une partition du lecteur A (que je souhaite en lecture seule) en un fichier image sur le lecteur C, je la redimensionne, puis je la déplace vers une partition sur le lecteur B, qui est plus petite que A (donc je dois redimensionner premier).
endolith
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.