¿Cómo amplío una imagen de disco sin formato?


13

Las imágenes oficiales suministradas son imágenes de disco sin procesar, que podrían haberse creado usando dd.

¿Cómo agrando una imagen? No estoy interesado en volver a particionar dicha imagen, ya que ya se ha respondido en ¿Cómo puedo cambiar el tamaño de mi partición / (raíz)? .


No estoy exactamente seguro de lo que quieres decir con expandir. ¿Desea realizar el 'cambio de tamaño de la partición' en la imagen antes de dd'dirla al disco?
Joost

Ese es un objetivo, pero para hacerlo, uno debe expandir la imagen del disco.
Alex Chamberlain

Respuestas:


13

Como se explica en esta pregunta, hay dos métodos para expandir la imagen. A continuación hay dos ejemplos para expandir el archivo en 1 kilobyte.

DD crea un archivo no disperso

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

Truncar crea un archivo disperso

truncate -s +1024 myimage

Probablemente quieras usar truncar. Un archivo disperso solo escribe los metadatos de los bloques que usa, en lugar de escribir realmente los bloques. Esto hace que la creación del archivo sea más rápida (ya que no tiene que escribir ceros reales en el disco) y ahorra espacio en su disco.

Tenga en cuenta que el sistema de archivos HFS + de Apple no admite archivos dispersos.


¿HFS + no se ajusta a POSIX? linux.die.net/man/2/truncate
Alex Chamberlain

Si admitir archivos dispersos es un requisito para POSIX, supongo que no. Aquí hay una buena demostración de las diferencias entre HFS + y algunos ext (supongo) stackoverflow.com/a/193015/689893 . Aparentemente, crea el archivo pero usa espacio en disco como si fuera un archivo normal en lugar de un archivo disperso.
Joost

¡No, creo que lo había entendido mal!
Alex Chamberlain

Si tiene ddun archivo escaso , ¿seguirá siendo correcto?
Alex Chamberlain

Un archivo disperso contiene datos, por lo que supongo que puede agregar ceros. Manejará esa parte como no dispersa.
Joost

10

Una manera increíblemente fácil de cambiar el tamaño de la imagen es usar una de las qemuherramientas llamadas qemu-img. Esto, por supuesto, depende del hecho de que lo haya qemuinstalado (lo que sé que ya tiene Alex).

El comando se ve así:

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

¿Dónde filenameestá el archivo de imagen y el tamaño es el tamaño que desea ampliar (o reducir) la imagen.

Por ejemplo, si desea ampliar la imagen archarm.imgen 2 GB, debería ejecutar:

qemu-img resize archarm.img +2G

Refiriéndose a la página de manual, antes de usar este comando para reducir una imagen de disco, DEBE usar el sistema de archivos y las herramientas de partición dentro de la VM para reducir los sistemas de archivos asignados y los tamaños de partición en consecuencia. De lo contrario, se perderán datos.
AntonioK
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.