El tamaño de la imagen "openwrt-19.07.6-x86-64-combined-squashfs.img" es de 20 MB. Si cambio el nombre del archivo a "openwrt.raw", puedo importarlo a virt-manager e iniciar el sistema. Pero la partición raíz "/" no tiene espacio.
Si agrego "openwrt-19.07.6-x86-64-combined-squashfs.img" en una unidad USB y luego agrego la unidad USB a un archivo nuevo, importo el archivo de salida a virt-manager e inicio el sistema, la partición raíz tiene el tamaño de "256 MB".
dd if=openwrt-19.07.6-x86-64-combined-squashfs.img of=/dev/sde
dd if=/dev/sde of=./openwrt_with_256MB_root_partition.raw
El tamaño de "openwrt_with_256MB_root_partition.raw" es el mismo que el de la unidad USB. Pero si uso el siguiente comando:
dd if=openwrt-19.07.6-x86-64-combined-squashfs.img of=/openwrt.raw
el archivo de salida es del mismo tamaño que el archivo de entrada. Entiendo que esta acción no tiene sentido. Pero, ¿alguien puede explicar qué hace que la partición raíz de 256 MB esté disponible cuando la agrego a la unidad USB? ¿Hay alguna manera de crear un archivo de imagen con un espacio raíz de 256 MB sin la necesidad de una unidad USB física u otros discos?
Respuesta1
No sé qué hace OpenWRT hoy en día.
Sin embargo, lo que está haciendo es simplemente agregar algunos datos basura al final del archivo. Debido a que el tamaño del archivo termina siendo el tamaño del dispositivo dentro de la máquina virtual, es fácil entender el resultado.
También puedes usar truncate
:
truncate -s256M openwrt-19.07.6-x86-64-combined-squashfs.img
Estrictamente hablando, esto no es lo mismo, porque da como resultado un archivo disperso, pero es mucho más rápido y suficientemente bueno.
Para obtener exactamente lo mismo, necesitas escribir algunos datos en el archivo, como este:
dd if=/dev/zero bs=1M count=236 >> openwrt-19.07.6-x86-64-combined-squashfs.img
También puedes usar indicadores avanzados en dd
. 256 - 20 = 236
Otra herramienta relacionada con esto es fallocate
.
Actualizar: Mirando la imagen, es así:
$ fdisk -l openwrt-19.07.6-x86-generic-combined-squashfs.img
Disk openwrt-19.07.6-x86-generic-combined-squashfs.img: 19.5 MiB, 20450816 bytes, 39943 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf1f0223e
Device Boot Start End Sectors Size Id Type
openwrt-19.07.6-x86-generic-combined-squashfs.img1 * 512 33279 32768 16M 83 Linux
openwrt-19.07.6-x86-generic-combined-squashfs.img2 33792 558079 524288 256M 83 Linux
(Tenga en cuenta la columna "tamaño").
Se supone que la segunda partición contiene la imagen raíz comprimida de solo lectura.yun área F2FS de lectura y escritura, no tengo idea de cómo funciona. Tal vez haya cambiado de tamaño en el primer arranque o algo así.