Utilicé 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 volúmenes 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 creas un sparsebundle en un recurso compartido de red. Aquí no debes usar 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"