I updated a friend's Mac A1342 from Lion v10.6.8 to El Capitan then to Sierra v10.12.3. You can't update 10.6.8 to Sierra direct as minimum requirement is version 10.7.
Mac was a bit slow after the update as photoanalysisd and other daemons are running in the background. I also decided to upgrade the RAM from 2 x 1GB to 2 x 2GB, so I shut it down, when I switched it back on that is the time the progress/loading bar is stuck to 100%.
I tried the following but none fixed it:
- Boot to Safe Mode/Boot (press left Shift after pressing power until the Apple logo appears), but it's stuck to 100% still.
- PRAM reset (press Command (?) + Option + P + R after pressing power, hold until the computer restarts and you hear a sound for a second time)
- SMC reset
- Recovery mode (press Command + R until the Apple logo appeas) then Disk Utility and run First Aid - no issues found
- Single User Mode (press Command + S) then issued the fsck -y - no issues found but still stuck to 100%
I thought it was the memory upgrade/replacement that triggered it, but it's not. Even though, I tried a different hard drive and went to Recovery mode (Command + R after pressing power) and restore from a Time Machine backup (back to Lion though). Then I was able to boot properly back to the desktop, I then updated to El Capitan again, then to Sierra. I had few shutdown and there was no problem. I did another shutdown and it's back to progress bar stuck to 100%. But I also forgot that I also updated the HP and Epson printer drivers which caused the 100% stuck loading bar issue.
I plugged in the original hard drive back and started on Verbose Mode (Command + V), where it stopped on "SmartBattery: finished polling type 1" then "SmartBattery: finished polling type 4".
Then when I viewed the system.log (tail -f system.log), I saw an error:
com.apple.xpc.launchd (com.apple.kextd): Service only ran for 2 seconds. Pushing respawn out by 8 seconds.
com.apple.xpc.launchd (com.apple.kextd): Service exited with abnormal code: 71
What fixed the issue is by following https://www.justinsilver.com/technology/os-x-el-capitan-10-11-1-hanging-on-boot-fixed/ which you have to type the following command once in Recovery mode.
# mount the drive as read/write
# create a directory for "disabled" extensions
# view files that exist in your Extensions folder but not the recovery partition
# move "extra" kext files to the "disabled" directory