Para una lectura más rápida, he movido la sección de conclusión al principio de esta respuesta.
Conclusión
El OP debería utilizar los comandos dados en el Caso 2 para formatear la imagen. Sin embargo, al utilizar los comandos dados en el Caso 1 probablemente formateará correctamente la imagen al usar OS X 10.6.8 hasta macOS 13.3.1 en una Mac Intel.
Introducción
No puedo reproducir tu problema. En otras palabras, no puedo no formatear la imagen.
He probado utilizando las siguientes máquinas
- Máquina virtual Snow Leopard con un tamaño de sector de disco de 512 bytes.
- Máquina virtual Monterey con un tamaño de sector de disco de 512 bytes.
- Mac mini Venture 2018 con un tamaño de sector de disco de 4096 bytes.
Caso 1
Basado en la pregunta, ejecuté los siguientes comandos:
dd if=/dev/zero of=x.img bs=512 count=2880
newfs_msdos -f 2880 -F 12 ./x.img
El resultado se muestra a continuación.
davidanderson@Lobster Desktop % dd if=/dev/zero of=x.img bs=512 count=2880
2880+0 records in
2880+0 records out
1474560 bytes transferred in 0.011958 secs (123311591 bytes/sec)
davidanderson@Lobster Desktop % newfs_msdos -f 2880 -F 12 ./x.img
newfs_msdos: warning: ./x.img is not a character device
ioctl(DKIOCGETPHYSICALBLOCKSIZE) not supported
./x.img: 5726 sectores en 2863 clústeres FAT12 (1024 bytes/clúster)
bps=512 spc=2 res=1 nft=2 rde=240 sec=5760 mid=0xf0 spf=9 spt=36 hds=2 hid=0 drv=0x00
Se generó un mensaje de error porque no se pudo determinar el tamaño de sector (bloque) del archivo de imagen x.img
. Sin embargo, la salida muestra un valor de bps
(bytes por sector) de 512 que se utilizó como valor predeterminado.
Caso 2
Ejecuté los siguientes comandos. Aquí, el comando hdiutil attach
se utilizó para adjuntar una imagen de disco como un dispositivo. El identificador disk7
se determinó a partir de la salida de este comando.
dd if=/dev/zero of=y.img bs=512 count=2880
hdiutil attach -nomount y.img
newfs_msdos -f 2880 -F 12 disk7
hdiutil detach disk7
El resultado se muestra a continuación.
davidanderson@Lobster Desktop % dd if=/dev/zero of=y.img bs=512 count=2880
2880+0 records in
2880+0 records out
1474560 bytes transferred in 0.012780 secs (115380282 bytes/sec)
davidanderson@Lobster Desktop % hdiutil attach -nomount y.img
/dev/disk7
davidanderson@Lobster Desktop % newfs_msdos -f 2880 -F 12 disk7
512 bytes per physical sector
/dev/rdisk7: 5726 sectores en 2863 clústeres FAT12 (1024 bytes/clúster)
bps=512 spc=2 res=1 nft=2 rde=240 sec=5760 mid=0xf0 spf=9 spt=36 hds=2 hid=0 drv=0x00
davidanderson@Lobster Desktop % hdiutil detach disk7
"disk7" expulsado.
Aquí no se generaron mensajes de error ya que el valor de bps
pudo determinarse como 512.
Comparación de Caso 1 y Caso 2
Ingresé los siguientes comandos para comparar los dos archivos de imagen.
hexdump -C x.img >x.lst
hexdump -C y.img >y.lst
diff x.lst y.lst
El resultado se muestra a continuación.
davidanderson@Lobster Desktop % hexdump -C x.img >x.lst
davidanderson@Lobster Desktop % hexdump -C y.img >y.lst
davidanderson@Lobster Desktop % diff x.lst y.lst
3c3
< 00000020 00 00 00 00 00 00 29 12 0d c4 37 4e 4f 20 4e 41 |......)...7NO NA|
---
> 00000020 00 00 00 00 00 00 29 15 0d c9 37 4e 4f 20 4e 41 |......)...7NO NA|
La diferencia entre los dos archivos está en los desplazamientos de bytes 0x27 y 0x29. Según Wikipedia, los bytes en los desplazamientos 0x27 a 0x2A contienen el número de serie del disco, el cual se espera que sea diferente entre las imágenes formateadas en FAT12.