El script a continuación crearía el archivo de imagen de disco myimage.img
, luego copiaría el contenido de la carpeta del Escritorio MyFolder
a un volumen formateado en FAT32 almacenado en esta imagen de disco.
#!/bin/bash
# Create the empty disk image file,
dd if=/dev/zero of=myimage.img bs=1m count=100
# Assign a /dev entry to the disk image file,
devEntry="$(hdiutil attach -nomount myimage.img)"
# Show ouput from hdiutil.
echo "$devEntry"
# Remove whitespace from variable devEntry.
devEntry="$(echo $devEntry)"
# Create a MBR partition table and mount the newly created FAT32 volume.
diskutil erasedisk fat32 MYSD mbr "$devEntry"
# Copy files from the folder to FAT32 volume.
cp -R ~/Desktop/MyFolder/ /Volumes/MYSD
# Remove all ._* files.
dot_clean /Volumes/MYSD
# Eject the disk image.
hdiutil detach "$devEntry"
A continuación se presentan algunos comentarios.
- El tamaño de la imagen de disco es de 100 MiB. Puedes cambiar esto editando
count=100
.
- Se asume que el tamaño de sector de la tarjeta SD es de 512 bytes.
- Puedes usar el comando
dd
para transferir la imagen a una tarjeta SD. La capacidad de la tarjeta SD debe ser al menos la del tamaño del archivo de imagen de disco.
- El uso de
dot_clean
es opcional.
-
Si la tarjeta SD no requiere una tabla de particiones, entonces puedes reemplazar el comando diskutil erasedisk fat32 MYSD mbr "$devEntry"
con el comando que se muestra a continuación.
diskutil erasevolume fat32 MYSD "$devEntry"