[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

Resizing a QEMU raw image with an NTFS filesystem

Esta es una guía rápida para aumentar el espacio en disco disponible para su máquina virtual de Windows con un sistema de archivos NTFS. El ejemplo se basa en aumentar una partición de 5 GB a 6 GB.

Primero haga una copia de seguridad de su archivo original en caso de que algo salga mal.

Use qemu-img para cambiar el tamaño de la imagen de disco raw QEMU

Este comando aumenta el tamaño de la imagen de disco en el archivo Windows_XP_Professional_SP_3.img en 1 GB.

 qemu-img redize Windows_XP_Professional_SP_3.img + 1G 

Después de este comando, si inicia su máquina virtual, verá que hay 1 GB adicional de espacio libre en el disco disponible.

Encuentra el desplazamiento en la imagen

Montar en bucle la imagen.

 losetup / dev / loop0 Windows_XP_Professional_SP_3.img 

Inspeccione la tabla de particiones (aquí se usa parted pero también se puede usar fdisk o cfdisk).

 parted / dev / loop0 

Dentro de parted, configure las unidades en sectores, luego vea la tabla de particiones actual.

(parted) unit s                                                           
(parted) print 

The output will look something like this:

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

Tenga en cuenta el tamaño del sector y los números de sector de inicio en la salida. Ahora sal de parted.

 (parted) quit 

Elimina el dispositivo loop.

 losetup -d / dev / loop0 

Use ntfsresize para cambiar el tamaño de la partición NTFS

Montar la partición NTFS en loop para cambiar el tamaño, utilizando un desplazamiento calculado a partir del tamaño del sector y el sector de inicio.

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

Ejecuta una prueba antes de proceder.

 ntfsresize -n -s 6G / dev / loop0 

Si todo está bien, hazlo de verdad.

 ntfsresize -s 6G / dev / loop0 

Eliminar el dispositivo loop.

 losetup -d / dev / loop0 

Actualizar la tabla de particiones

Montar en loop la imagen.

 losetup / dev / loop0 Windows_XP_Professional_SP_3.img 

Actualice la tabla de particiones usando parted (tanto fdisk como cfdisk parecen fallar aquí).

 parted / dev / loop0 

Esto parece un paso hacia atrás, pero ahora use parted para eliminar la partición existente.

 (parted) rm 1 

Use el comando parted rescue para volver a encontrar la partición, con la opción FIN establecida en el tamaño de la partición en MB.

(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

Setear el flag boot en la particion de rescate.

(parted) set 1 boot on

La tabla de particiones se escribe al salir de parted.

 (parted) quit 

Eliminar el dispositivo de loop.

 losetup -d / dev / loop0 

Finalizar

Arranque la máquina virtual y permita que se ejecute el programa chkdsk de Windows.

Sources

 es:howtos:general_admin:resize_a_qemu_raw_image_with_an_ntfs_filesytem ()