Creé un imgarchivo mediante el siguiente comando:
dd if=/dev/zero bs=2M count=200 > binary.img
Es solo un archivo con ceros, pero puedo usarlo fdisky crear una tabla de partición:
# fdisk binary.img
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x51707f21.
Command (m for help): p
Disk binary.img: 400 MiB, 419430400 bytes, 819200 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: 0x51707f21
y, digamos, una partición:
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-819199, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-819199, default 819199):
Created a new partition 1 of type 'Linux' and of size 399 MiB.
Command (m for help): w
The partition table has been altered.
Syncing disks.
Cuando reviso la tabla de particiones, obtengo el siguiente resultado:
Command (m for help): p
Disk binary.img: 400 MiB, 419430400 bytes, 819200 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: 0x7f3a8a6a
Device Boot Start End Sectors Size Id Type
binary.img1 2048 819199 817152 399M 83 Linux
Entonces la partición existe. Cuando intento formatear esta partición a través de gparted, aparece el siguiente error:

No sé por qué lo busca binary.img1, y no tengo idea de cómo formatear la partición desde el comando live.
¿Alguien sabe cómo formatearlo usando el sistema de archivos ext4?
filesystems
partition
disk-image
Mikhail Morfikov
fuente
fuente

Couldn't find valid filesystem superblock.. Aquí está la foto: i.imgur.com/dl7XAC4.png . ¿ Es algún tipo de error?Respuestas:
Puede acceder a la imagen del disco y sus particiones individuales a través de la función de bucle invertido. Ya ha descubierto que algunas utilidades de disco funcionarán (razonablemente) felizmente en imágenes de disco. Sin embargo,
mkfsno es uno de ellos (pero extrañamente lomountes).Aquí está la salida de
fdisk -lu binary.img:Para acceder a la partición que ha creado, tiene un par de opciones
La ruta explícita
La salida
/dev/loop0es el nombre del dispositivo de bucle que se ha asignado. El--offsetparámetro es solo el desplazamiento de la partición (Start) multiplicado por el tamaño del sector (512). Mientras que--sizelimites el tamaño de la partición, y puede calcularlo de la siguiente manera: Fin-Inicio + 1, que es 819199-2048 + 1 = 817152, y ese número también debe multiplicarse por el tamaño del sector.Luego puede usar
/dev/loop0como referencia a la partición:La ruta implícita
La salida
/dev/loop0es el nombre del dispositivo de bucle primario que se ha asignado. Además, la--partscanopción le dice al núcleo que escanee el dispositivo en busca de una tabla de partición y asigne dispositivos de bucle subsidiarios automáticamente. En su caso con la única partición que también obtiene/dev/loop0p1, que luego puede usar como referencia para la partición:fuente
fdisksalida.Hay otra forma de hacer esto en general, usando
kpartx( no relacionado con kde)y ahora debería tener todos los dispositivos de partición definidos
/dev/mappercomo loop0p1 , loop0p2 , ...y entonces
Opcionalmente, cuando haya terminado, puede ejecutar también
deshacerse del loop0p? deivce
fuente
(... y más tarde por
binary.img2enterrado en el comentario).Esto se debe a que las herramientas esperan que los nombres de los archivos sigan un patrón específico. Ese patrón es el utilizado por los archivos del dispositivo para discos y volúmenes de disco reales en su sistema, a saber:
sda(o algo más). Esto es lo quefdiskespera utilizar.sda1,sda2,sda3, y así sucesivamente. Esto es lo que las herramientas, como los quegpartedesperan usar, cuando le dicenmkfsque haga cosas en volúmenes de discos individuales .Por supuesto, los archivos ordinarios no se superponen de la manera que lo hacen los archivos de los dispositivos de disco. Las discusiones que involucran el sistema de archivos de bucle invertido que has visto son todos acerca de tomar un solo archivo de imagen de todo el disco y el uso de bucle invertido para crear los
1,2,3, y así sucesivamente archivos que reflejan las rebanadas individuales dentro de ella, una vez que la partición deseada se ha escrito a la mesa de partición.fuente
Aunque este tema no está directamente relacionado, menciona mucha información similar y relacionada.
Wiki de Debian | Raspberry Pi y qemu-user-static
Si no puede usar
aptpara instalar algunos de los comandos mencionados en esta publicación, intente usarapt-cache search [package_name]. Es posible que esto no muestre ningún resultado si el comando proviene de un paquete con un nombre diferente.Por ejemplo,
losetupanteriormente se podía instalarlosetupusandoapt install losetup, pero ahora forma parte delutil-linuxrepositorio de Ubuntu. Para saber qué paquete actúa como contenedor de otro paquete, debe utilizar la búsqueda del repositorio en línea para su distribución de Linux. O, si debe instalarlo desde otra fuente, use un motor de búsqueda web.Algunos paquetes que vale la pena ver ...
util-linux genisoimage dosfstools squashfs-tools fsarchiver xfsprogs reiserfsprogs reiser4progs jfsutils ntfsprogs btrfs-toolsCada distribución de Linux también tiene sus propias páginas de manual en línea. A veces es más fácil usar las páginas de manual que un tutorial. Las páginas del manual también le indicarán todas las opciones de comando y parámetros. Un tutorial generalmente solo se enfocará en los que se usan.
fuente
Ejecutable mínimo
sfdisk+mke2fsejemplo sinsudoEn este ejemplo, crearemos, sin
sudoosetsuid, un archivo de imagen que contiene dos particiones ext2, cada una de ellas con archivos de un directorio de host.Luego usaremos
sudo losetupsolo para montar las particiones para probar que el kernel de Linux realmente puede leerlas como se explica en: /programming/1419489/how-to-mount-one-partition-from-an-image -archivo-que-contiene-particiones-múltiples / 39675265 # 39675265Para más detalles, ver:
sfdisk: trata con la tabla de particiones: /superuser/332252/how-to-create-and-format-a-partition-using-a-bash-script/1132834#1132834mke2fs: trata con el formato EXT de particiones: /superuser/605196/how-to-create-ext2-image-without-superuser-rights/1366762#1366762El ejemplo:
Probado en Ubuntu 18.04. GitHub aguas arriba .
Ayuda para ajustar un archivo de sistema de archivos sin formato existente en una imagen
Extraído de lo anterior, lo siguiente puede ser útil:
GitHub aguas arriba .
fuente