SpinRite is a fantastic tool for repairing and maintaining hard drives, and I am proud to say that its purchase price has been more than recouped on drives that it has brought back into service that would otherwise have needed replacing!
Running it on an Intel Mac hasn’t been possible with version 6.0. It actually boots fine, but there is no way to give keyboard input, and thus there is no way to kick off a scan.
Reports that people had succeeded at getting SpinRite to work on various weird and wonderful platforms indirectly, using VirtualBox and its raw disk access mode, led me to experiment with this to run SpinRite on a Mac. This is particularly useful on iMacs where pulling the hard drive out of the case is… undesirable(!)
This is an advanced, technical process.
Performing the wrong operations when you have raw access to the disk, a technique this process uses, can cause you to lose data. You must have a backup.
Obviously, I do not accept any responsibility and cannot help if you break things by using these notes. Hard hats must be worn beyond this point. All contractors must report to the site office.
Boot from another disk
You’ll need a working MacOS install on another disk that you can boot from, as we need to unmount all the volumes on the disk to be scanned in order to gain raw access to the disk. I use SuperDuper to make bootable backups, and these work great for this purpose too.
Prepare the Environment
Make sure you have VirtualBox installed, with the optional Command Line Tools.
Turn off screen savers, sleep timers and screen lock, just in case the VM has taken keyboard input away from you and you are unable to unlock the Mac to check on SpinRite’s progress. It’s certainly not an ideal situation to have to pull the plug on the computer while that VM has raw access to your target disk!
Identify the Target Disk
It is critical that you identify the BSD device name for the whole disk that you want to operate on. In my case, I’d booted from disk1
and the SpinRite target disk was disk0
.
Determine the correct disk identifiers with:
diskutil list
» Read the rest of this post…