Sometimes after adding new system components or otherwise changing the hardware configuration of your system you may find that the OS will load rather slowly. Usually this will only happen after the first restart as the system configures the kernel extensions needed for the new hardware; however, there are times when it can persist. If the system always runs slowly then there may be problems with the hard drive, or the configured filesystems on it, and you should run diagnostics utilities to tackle the issue. If on the other hand the system runs fine except for slugishness or pauses during boot, then there are several options you can try to help fix the situation.
Start in Safe Mode
The first thing to try if the system continually boots slowly is to boot into Safe Mode, which will clear the dynamic loader shared cache and potentially clear pauses at the blue screen before the system either logs in or presents the log-in window. Booting to Safe Mode just requires holding the Shift key immediately after hearing the boot chimes when starting or restarting your computer. After this is done, the system will present the log-in window (regardless of whether you have automatic log-in enabled), and since there is no need to log in, you can immediately restart the system.
Rebuild kernel extension caches
Though you can use a number of maintenance utilities to clear and rebuild the kernel extensions caches, another approach is to run these commands manually in the Terminal. Doing so ensures you know exactly what commands are being run, and also allows you to customize them if needed.
First ensure the system root is owned by "root" and that the group is set to "admin" by running the following command in the Terminal:
sudo chown root:admin /
After this is done, update the prelinked kernel for the system, which will ensure that all previously used kernel extensions are quickly loaded at boot. This will grab any new kernel extensions used for added system hardware and include them when prelinking the kernel.
sudo kextcache -system-prelinked-kernel
After this command is done, rebuild the cache for the kernel extensions by running the following command:
sudo kextcache -system-caches
Can this hurt anything?
Sometimes people wonder if they can hurt anything when running various terminal commands. Technically the options for the kextcache command can be misused to either not load or improperly load extensions, which can result in an unstable system; however, the uses described above do not specify any custom extension loading and therefore stick to the default locations and sets of extensions for the system.