El montaje del sparsebundle puede realizarse a través de la línea de comandos utilizando el comando 'hdiutil'. También puedes crear un script de shell que realice esta acción. Este script asume que la imagen se encuentra en /Users/somebody/Image.sparsebundle, y que la frase de contraseña utilizada para cifrar la imagen es "testpass"):
#!/bin/bash
#
# This script mounts the disk image at /Users/somebody/Image.sparsebundle
#
echo -n testpass | hdiutil mount /Users/somebody/Image.sparsebundle
Después de crear ese script en algún editor de texto, puedes cambiar los permisos del archivo para permitir su ejecución. Asumiendo que este script fue creado en /Users/somebody/MountSparsebundle, puedes usar Terminal para hacerlo ejecutable:
chmod 755 /Users/somebody/MountSparsebundle
Una vez que hayas hecho que el archivo sea ejecutable, deberías poder ejecutar el comando usando la Terminal. En el Terminal, escribe la ruta completa del script para ejecutarlo:
/Users/somebody/MountSparsebundle
El script debería ejecutarse y hacer que el sparsebundle se monte. Tenga en cuenta que querrá desmontar ese sparsebundle antes de ejecutar el script (para confirmar que se está montando cuando utilice el script).
Después de verificar que el script está funcionando, puede crear un LaunchDaemon que será responsable de montar este sparsebundle en el arranque. El archivo de configuración de LaunchDaemon debe instalarse en /Library/LaunchDaemons, lo que hará que se cargue antes del loginwindow. Aquí hay un ejemplo de un archivo de configuración de launchd que ejecuta un script ubicado en /Users/somebody llamado "MountSparsebundle":
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<true/>
<key>RunAtLoad</key>
<true/>
<key>Label</key>
<string>com.example.mountsparsebundle</string>
<key>Program</key>
<string>/Users/somebody/MountSparsebundle</string>
</dict>
</plist>
El último paso que tendría que dar sería configurar el sistema launchd para cargar ese demonio de lanzamiento en el arranque. Esto se puede lograr usando launchctl (Asumiendo que el archivo en el paso anterior fue guardado en "/Library/LaunchDaemons/com.example.mountsparsebundle.plist"):
sudo launchctl load -w /Library/LaunchDaemons/com.example.mountsparsebundle.plist
Alternativamente, puede utilizar un LoginHook, que suspenderá el lanzamiento del Finder hasta que el login script salga. Aunque Apple no recomienda los LoginHooks, se pueden utilizar para lograr lo que usted está tratando de hacer. Puede configurar el script mencionado anteriormente como un gancho de inicio de sesión utilizando el comando defaults:
sudo defaults write com.apple.loginwindow LoginHook /Users/somebody/MountSparsebundle
Nota: Los LoginHooks se ejecutan como Root, lo cual es un riesgo de seguridad... Sin embargo, esto también le permitirá examinar el usuario actual que está iniciando la sesión (como parte del script), y realizar acciones basadas en las credenciales del usuario. Aquí hay un script modificado que muestra un ejemplo de cómo analizar el nombre de usuario que está iniciando la sesión (que se pasa al script como argumento $1):
#!/bin/bash
#
# This script mounts the disk image at /Users/somebody/Image.sparsebundle
#
if [ "$1" == "somebody" ]; then
echo -n testpass | hdiutil mount /Users/somebody/Image.sparsebundle
fi