This is supposed to be saving the alsa device state:
Code:
-$-> fgrep -H alsa /etc/rc.d/init.d/*
/etc/rc.d/init.d/halt:grep -q "\(alsa\)" /proc/devices
/etc/rc.d/init.d/halt:if [ $? = 0 -a -x /usr/sbin/alsactl ]; then
/etc/rc.d/init.d/halt: runcmd $"Saving mixer settings" alsactl store
However, it does not work on my test system either

There is nothing present to restore the settings, it should be done by the driver module loading (using modprobe.conf install commands -- see below).
Using alsactl manually to save your initial settings (and then to restore them) works, or you could use the quick and dirty method for getting them to restore on boot (add the command to /etc/rc.d/rc.local, make sure the soundcard module has loaded first)... or you can setup your soundcard module to reload the settings in this fashion.
(I've included the entire section of my modprobe.conf that relates to the driver so that you can see how it works together, note that if you're not using an audigy/emu10k1 card that module name should be the only part that requires changing, hopefully. Also, \ denotes a line break where one does not exist.. for the forum to be readable (its all one line in the config file itself.)
Code:
alias sound-slot-0 snd-card-0
alias snd-card-0 snd_emu10k1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
install snd-card-0 /sbin/modprobe --ignore-install snd-card-0 && \
{ /sbin/modprobe snd_emu10k1 && \
/usr/sbin/alsactl restore 0 > /dev/null 2>&1 || :; }
remove snd-card-0 { /usr/sbin/alsactl store 0 > /dev/null 2>&1 || :; }; \
/sbin/modprobe -r snd_emu10k1 && \
/sbin/modprobe -r --ignore-remove snd-card-0
Another option would be to create an alsa startup script an add it to the init.d scripts as suggested by aikempshall, it would work fine.
I believe anaconda (the Fedora installer) should have created the modprobe.conf entries to handle this for you.