Ho usato il seguente comando in 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"
e funziona (con una soluzione alternativa per gli spazi nei nomi di volume come "Macintosh HD") per i volumi interni:
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$
Questo non funziona se si crea uno sparsebundle su una condivisione di rete. Qui non devi usare il comando sudo
. Usa invece (ho anche semplificato $ 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"