When OSX is installed on a striped software raid volume, this gives problem when updating OSX to a newer version.
The problem is that the bootloader is not always updated correctly.
The result is that when booting with the option key pressed, the list of operating systems shows an icon for each member of the sw raid set.
Only one of them is actually bootable (in some cases even more than one).
This is because when updating the kernel of the system, OSX automatically updates the system partition of what it thinks is the boot disk.
Also when allowing the system to boot without using the option key, the wrong system partition may be used.
Our best guess is that it installs the bootloader to the disk in the raid set that was first attached to the device tree.
For a single-disk system this is not a problem. For a raid set (and hence a multi-disk system) this is a problem since the order in which devices are attached to the device tree can change every boot.
When this problem occurs, the system is still bootable.
However, when booting using the incorrect system partition, an older kernel (and hence kext cache) is loaded.
The result is that when booting is finished, OSX notifies you that it could not load certain kernel extensions due to older version already being loaded.
Reproducing the problem.
1. Install OSX on a striped software raid volume.
2. Update the system to a newer version. (Using for example a combo updater)
For this project you are required to find a solution to fix the bootloader configuration.
This must include:
1. A document describing the solution in detail, and
2. A commandline script (shell script) which performs the needed steps to fix the problem for the current setup.
3. A gui, which shows a list of raid sets, which are currently have a broken bootloader configuration, and a button for each to fix the bootloaderconfiguration
These are extra hints, which should be considered as strong suspicions, not as facts.
1. When installed on a software raid volume, OSX uses the system partition on the disk(s) to boot. The system partition mirrors the bootloader configuration of the raid volume.
2. When the bootloader configuration is changed on the raid volume, OSX automatically updates the bootloader configuration on the system partition.
3. Only a single system partition of all the disks in a raid volume should contain this mirrored bootloader configuration.
4. The bootloader configuration includes:
a. The mach kernel
b. The kext cache
c. Blessed files and folders
d. (hidden) files configuring the volume icon and name visible when booting using the option key.