Sparsebundle montajı 'hdiutil' komutu ile komut satırı üzerinden gerçekleştirilebilir. Bu işlemi gerçekleştirecek bir kabuk betiği de oluşturabilirsiniz. Bu komut dosyası, görüntünün /Users/somebody/Image.sparsebundle konumunda olduğunu ve görüntüyü şifrelemek için kullanılan parolanın "testpass" olduğunu varsayar):
#!/bin/bash
#
# This script mounts the disk image at /Users/somebody/Image.sparsebundle
#
echo -n testpass | hdiutil mount /Users/somebody/Image.sparsebundle
Bu komut dosyasını bir metin düzenleyicide oluşturduktan sonra, yürütülmesine izin vermek için dosyanın izinlerini değiştirebilirsiniz. Bu betiğin / Users / somebody / MountSparsebundle konumunda oluşturulduğunu varsayarsak, yürütülebilir kılmak için Terminal'i kullanabilirsiniz:
chmod 755 /Users/somebody/MountSparsebundle
Dosyayı çalıştırılabilir hale getirdikten sonra, Terminal'i kullanarak komutu çalıştırabilmelisiniz. Terminal'de yürütmek için komut dosyasının tam yolunu yazın:
/Users/somebody/MountSparsebundle
Komut dosyası çalışmalı ve sparsebundle'ın dağılmasına neden olmalıdır. Komut dosyasını çalıştırmadan önce bu sparebundle öğesinin bağlantısını kaldırmak istediğinizi unutmayın (komut dosyasını kullanırken bunun montaj olduğunu onaylamak için).
Komut dosyasının çalıştığını doğruladıktan sonra, bu sparsebundle'u önyüklemede monte etmekten sorumlu olacak bir LaunchDaemon oluşturabilirsiniz. LaunchDaemon yapılandırma dosyası / Library / LaunchDaemons dizinine kurulmalıdır, bu da login penceresinden önce yüklenmesine neden olacaktır. Aşağıda, "MountSparsebundle" adlı / Users / sombody konumunda bulunan bir komut dosyasını çalıştıran bir başlatılmış yapılandırma dosyasına bir örnek verilmiştir:
<?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>
Atmanız gereken son adım, başlatma sırasında bu başlatma hizmetini yüklemek için başlatma sistemini yapılandırmak olacaktır. Bu, launchctl (Bir önceki adımdaki dosyanın "/Library/LaunchDaemons/com.example.mountsparsebundle.plist" konumuna kaydedildiğini varsayarak) kullanılarak gerçekleştirilebilir:
sudo launchctl load -w /Library/LaunchDaemons/com.example.mountsparsebundle.plist
Alternatif olarak, oturum açma komut dosyası çıkana kadar Finder'ın başlatılmasını askıya alacak olan bir LoginHook kullanabilirsiniz. Apple, LoginHooks'u önermese de, yapmaya çalıştığınız şeyi başarmak için kullanılabilir. Defaults komutunu kullanarak yukarıda belirtilen komut dosyasını giriş kancası olarak ayarlayabilirsiniz:
sudo defaults write com.apple.loginwindow LoginHook /Users/somebody/MountSparsebundle
Not: LoginHooks, güvenlik riski taşıyan bir şey olan root olarak çalıştırılır ... Ancak, bu aynı zamanda giriş yapan mevcut kullanıcıyı (betiğin bir parçası olarak) incelemenizi ve kullanıcı kimlik bilgilerine göre eylemler gerçekleştirmenizi sağlar. İşte giriş yapan kullanıcı adının nasıl ayrıştırılacağına dair bir örnek gösteren değiştirilmiş bir betik: (betiğe $ 1 argümanı olarak geçirilir):
#!/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