Usé el siguiente comando en 10.9.5:
read -p "Size in GB? = " s; ((s= 10**9*s/512)); read -p "Name of image volume? = " n; read -p "External Volume name (Escape spaces with a backslash - the volume has to exist)? = " m; cn=`scutil --get ComputerName`; mac_addr=`ifconfig en0 | grep "ether"`; mac_addr=${mac_addr#*ether}; mac_addr=${mac_addr// /} ; mac_addr=${mac_addr//:/}; sudo hdiutil create -size ${s}b -fs JHFS+X -volname "${n}" -type SPARSEBUNDLE "/Volumes/${m}/${cn}_${mac_addr}.sparsebundle" && echo "Done"
y funciona (con una solución alternativa para espacios en nombres de volumen como "Macintosh HD") para volúmenes internos:
Size in GB? = 2
Name of image volume? = aaa
Existing External Volume Name (Escape spaces with a backslash)? = test\ 2
created: /Volumes/test 2/host_001122334455.sparsebundle
Done
host:~ user$
Esto no funciona si crea un paquete disperso en un recurso compartido de red. Aquí no debe utilizar el comando sudo
En su lugar, use (también simplifiqué $ mac_addr):
read -p "Size in GB? = " s; ((s= 10**9*s/512)); read -p "Name of image volume? = " n; read -p "External Volume name (Escape spaces with a backslash - the volume has to exist)? = " m; cn=`scutil --get ComputerName`; mac_addr=`ifconfig en0 | grep ether | awk '{print $2}' | sed 's/://g'`; hdiutil create -size ${s}b -fs JHFS+X -volname "${n}" -type SPARSEBUNDLE "/Volumes/${m}/${cn}_${mac_addr}.sparsebundle" && echo "Done"