mercredi 17 décembre 2014

"Slow down" bootup until all devices are available


I'm using OS X as a Server, running Server.app 4.0 to provide email hosting/etc.


Attached to this machine I have a PROMISE Pegasus R2 RAID drive mounted at /Volumes/RAID6-11TB, and I changed the default service storage location so that the Server.app data would be located on the RAID drive (for redundency, and so that Backblaze can backup my precious email, which normally ignores /Library).


The problem is when rebooting the machine, Server.app doesn't properly startup, because something during the boot process is creating an empty directory /Volumes/RAID6-11TB/Library/Server/Web/Data/Sites/Default/NetBoot. When the RAID array is later automagically mounted, it's default mountpoint already exists, so it is instead mounted at /Volumes/RAID6-11TV 1, which causes no good at all.


Is there a way to fix rebooting so that either:



  1. Server.app won't launch until the RAID disk is ready, or

  2. Delay OS boot so that it won't finish launching until the RAID disk is ready?


Regarding (1), I've edited /Library/LaunchDaemons/com.apple.serverd.plist to add a QueueDirectories key, but that doesn't seem to have any effect, and WatchPaths sounds like it has the wrong semantics, so I'm leary to even try that.


Regarding (2), if I boot into Single User mode (holding down Command+S during boot), then wait until all messages have completed, then hit Ctrl+D to continue the boot, /Volumes/RAID6-11TB is properly mounted as intended.


However, this doesn't help for automated reboots when I'm away (e.g. after power failures). (OK, the "proper" answer is battery backups so that the machine doesn't reboot, but let's ignore that for now...)


Is there some way to make this work?





Aucun commentaire:

Enregistrer un commentaire