I've found another solution how to disable the startup sound. It also works on Lion - at least for me.
There is some terminal stuff to do, but it's worth it imo ;-)
Ok here we go:
1. Login as administrator and open a terminal window
2. Create scriptfile for muting
sudo nano /path/to/mute-on.sh
3. Enter this as content, when done press control+O to save and control+X to exit:
#!/bin/bash
osascript -e 'set volume with output muted'
4. Create scriptfile for unmuting
sudo nano /path/to/mute-off.sh
5. Enter this as content, when done press control+O to save and control+X to exit:
#!/bin/bash
osascript -e 'set volume without output muted'
6. Make both files executable:
sudo chmod u+x /path/to/mute-on.sh
sudo chmod u+x /path/to/mute-off.sh
7. Check if any hooks already exist (these will be overwritten, so make sure it is OK for you)
sudo defaults read com.apple.loginwindow LoginHook
sudo defaults read com.apple.loginwindow LogoutHook
8. Add hooks for muting
sudo defaults write com.apple.loginwindow LogoutHook /path/to/mute-on.sh
sudo defaults write com.apple.loginwindow LoginHook /path/to/mute-off.sh
Notes:
- /path/to/ is the location of the scripts, I used /Library/Scripts/
- you can skip the unmuting loginhook (i.e. each logout will silence your machine), but I like it this way because I always have sound available exactly at the volume level I set last time
- root has to be the owner of the script files - running an editor from command line with sudo is the easiest way to achieve that (otherwise you need to chown)
- to delete the hooks, use the following:
sudo defaults delete com.apple.loginwindow LoginHook
sudo defaults delete com.apple.loginwindow LogoutHook