¿Cambiar el tamaño de una imagen de partición con GParted?


15

He redimensionado las particiones en GParted antes. Ahora me gustaría mover una partición grande pero mayormente vacía a una unidad más pequeña. En lugar de cambiar el tamaño en su lugar, preferiría hacer una copia en una tercera unidad (imagen de la unidad usando dd), cambiar el tamaño de la copia y luego dd la copia a la nueva unidad. ¿Pero no creo que Gparted funcione con imágenes de disco? ¿Cómo haría esto? ¿Puedo usar las herramientas que GParted usa directamente?

¡Oh! ¿O puedo usar una función de bucle invertido para hacer que el archivo de imagen se vea como una unidad física en la que gparted puede funcionar?


Respuestas:


3

No puede hacer esto con GParted, pero puede usar el ntfsresizecomando directamente en una imagen de disco.

Primero, clone la imagen del disco. Puede encontrar el nombre del dispositivo de disco usando blkido gParted, y luego ejecutar:

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

Por ejemplo:

$ 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

Luego, verifique si puede cambiar el tamaño al tamaño que necesita ejecutando:

ntfsresize -i <image file>

Por ejemplo:

$ 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!

¡En este ejemplo, puedo cambiar el tamaño hasta 4MB porque acabo de hacer una imagen de disco en blanco con fines ilustrativos!

Ahora puede hacer la prueba si lo desea, aunque no es estrictamente necesario ya que está operando en una imagen. Puede especificar el tamaño en kilobytes, megabytes o gigabytes, agregando el valor k, Mo G, respectivamente:

ntfsresize -cnvs <size> <image file>

Por ejemplo:

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

¡Ninguna salida es buena salida! Ahora hazlo de verdad:

ntfsresize -vs <size> <image file>

Ultimo ejemplo:

$ 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.

¡Eso es! Ahora puede copiar esa imagen de disco en el nuevo dispositivo.


Hmmm ... la partición lógica está dentro de una partición extendida. ¿Debo hacer la partición lógica en sí al hacer la copia?
endolito

¡Usé resize2fs en un archivo de imagen ext3 anoche, y el archivo en sí se redujo de tamaño después! :) Pensé que sería un paso separado porque el sistema de archivos no es el mismo que la partición.
endolito

@endolith: Sí, ddla partición lógica. ¡Si hicieras la partición extendida obtendrías todas las particiones lógicas dentro de ella!
Parches

@Patches: Bueno, solo hay una partición lógica en su interior, del mismo tamaño. :)
endolith

1
@endolith: Aún así, creo que ddla partición extendida traerá información adicional que confundirá e2fsprogsy ntfsprogs. No saben nada sobre particiones, como descubriste anteriormente.
Parches

14

No estoy seguro de cuál era la situación hace 5 años, pero hoy es un pastel.

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

Ahora puedes comer el pastel.


0

¿Podría cambiar su tamaño con GParted y luego usar Clonezilla para mover la partición al nuevo disco?


2
No quiero cambiar el tamaño en su lugar. No quiero arruinar el original si no tengo que hacerlo.
Endolith

0

He estado usando GParted durante muchos, muchos años, y nunca perdí un poco. También me gusta la edición doméstica gratuita de Easus para Windows.

¿Cuán grande / pequeña es su partición? ¿Puede copiar los datos a USB / DVD / un sistema de almacenamiento en línea gratuito, para no perderlos, y luego cambiar el tamaño en su lugar? Las dos herramientas antes mencionadas no perderán sus datos si las deja ejecutar hasta su finalización.

Usted dice I've resized partitions in GParted before, ¿por qué la preocupación ahora? Y DD hará una copia poco a poco ... por lo que tendrá que cambiar el tamaño de todos modos (desfragmentar primero).


Estoy convirtiendo una partición de la Unidad A (que quiero solo lectura) en un archivo de imagen en la Unidad C, redimensionándola y luego moviéndola a una partición en la Unidad B, que es más pequeña que A (así que tengo que cambiar el tamaño primero).
endolito
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.