Mac mini mid 2010 stuck on Apple logo with full progress bar
I bought a used Mac Mini mid-2010 server. When it arrived I turned it on and it booted regularly into macOS High Sierra, since this is the last version supported by this model. I verified that everything was working and then turned off the machine.
The problem is that now it won't boot. The Apple logo appears and the progress bar underneath goes all the way to the end, but it does not go beyond that point. Is is worth mentioning that the bar progresses relatively fast until it reaches the middle and then it goes really slowly until the end. I tried to boot into the Recovery partition and the same thing happens. I tried Internet Recovery, both using Option+Command+R and Shift+Option+Command+R (however, this last option yields a slightly different outcome: it gets stuck in the screen with the apple logo, but instead of the full bar, I get the spinning wheel). I also tried safe boot, resetting NVRAM and PRAM, and an installation USB thumb drive. The result is the same. Just display, keyboard and mouse connected to the Mac.
Funny thing is I had an old SSD where a Windows distro was installed and if I plug it to the mac via USB adapter and select its EFI file by holding the Option key during boot, it goes right into a fully functional Windows environment, making me think that there is no hardware problem with it...
EDIT: I booted using verbose mode and the boot seems to hang at this point:
busy timeout[0], (60s): ´IOFireWireLocalNode´
EXC_RESOURCE -> sftwareupdated[210] exceeded mem limit: ActiveSoft 500 MB (non-fatal)
hfs: mounted Recovery HD on device disk1s3
hfs: unmount initiated on Recovery HD on device disk1s3
busy timeout[1], (60s): ´IOFireWireLocalNode´
busy timeout[2], (60s): ´IOFireWireLocalNode´
busy timeout[3], (60s): ´IOFireWireLocalNode´
IOConsoleUsers: time(0) 0->0, lin 0, llk 1,
IOConsoleUsers: gIOScreenLockState 3, hs 0, bs 0, now 0, sm 0x0
So, by my understanding there are two main issues here, possibly. The FireWire timeout and the exceeded memory limit related to software updates. No more text appears after these lines.
If it helps, I can also successfully boot into Single User mode, where I have access to a sh
terminal.
So, I finally found a solution. The verbose boot lead me to believe that the problem had something to do with the FireWire port/driver. Since I do not really need FireWire, I figured I could disable it. Therefore, based on a combination of other answers to similar questions, I did the following:
-
First, I must disable SIP, so I can use the Single User mode with writing privileges. Since I cannot boot into Recovery mode, I used Single User Recovery mode, by holding Command+R+S (as suggested in https://superuser.com/a/1245838). From here, I just ran
csrutil disable
command to disable the SIP. Reboot. -
Now, I need to deny the kernel access to the
IOFireWireFamily
kext, in order to disable the FireWire support. Allegedly, this could be achieved using several methods, such aschmod 000
the kext, moving it, unloading it or deleting it. I went with the last option. For this, I followed these steps:- Enter in Single User mode (Command+S)
- Give writing privileges to the user by running
mount -rw /
(https://www.insanelymac.com/forum/topic/285013-how-to-use-single-user-mode-and-how-to-use-it-to-uninstall-kexts/) - Deleting the kext file using
rm -rf /System/Library/Extensions/IOFireWireFamily.kext
(https://discussions.apple.com/thread/1805732) - Reboot
Now, the system does not look for the faulty FireWire port/driver anymore and it boots into High Sierra without problems.