This guide walks you through creating a VirtualBox Virtual Machine to run SpinRite. It also discusses mounting physical drives into the VM.
SpinRite is a registered trademark of Gibson Research Corporation operated by Steve Gibson.
This guide will walk you through getting started with SpinRite and running the virtual machine using VirtualBox.
Follow the instructions on VirtualBox's website to install VirtualBox and the VirtualBox Extensions.
# macOS
brew cask install virtualbox
# Debian/Ubuntu
apt install virtualbox virtualbox-ext-pack
Visit GRC's website to purchase and download your copy of SpinRite.
SpinRite is downloaded as a .exe
file. In order to create a bootable ISO for our VM we need to run SpinRite.
On Windows simply run the SpinRite.exe
and click "Create ISO or IMG File" then "Save a Boot Image File". Place the SpinRite.iso
in ~/SpinRite/SpinRite.iso
. spinritectl
expects the file to be located here.
On Mac OS or Linux you will need to install Wine in order to run SpinRite.exe
. Once you have Wine installed, run the following command:
# macOS
brew install wine
# Debian/Ubuntu
apt install wine
wine ~/Downloads/SpinRite.exe
Then click "Create ISO or IMG File" then "Save a Boot Image File". Place the SpinRite.iso
in ~/SpinRite/SpinRite.iso
. spinritectl
expects the file to be located here.
I have created a simple command line utility to get SpinRite up and running quickly.
# create and configure the virtual machine
sudo ./spinritectl init
# attach drive
sudo ./spinritectl attach <disk name>
# start the virtual machine
sudo ./spinritectl start
# save the world and your hard drive too
# stop the virtual machine
sudo ./spinritectl stop
Not directly. You can use tools like Homebrew to make it easier to install Virtualbox and Wine.
If you want to add spinritectl
as a top level command on your terminal. Simply symlink the file in this directory to a folder in your path.
ln -sf ./spinritectl /usr/local/bin/spinritectl
macOS has a built in utility called diskutil
. Usually, external drives on macOS have a disk number greater than 1. For example, a mac with no external drives should look like this after running the following command:
diskutil list
/dev/disk0 (internal):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme 121.3 GB disk0
1: EFI EFI 314.6 MB disk0s1
2: Apple_APFS Container disk1 120.4 GB disk0s2
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +120.4 GB disk1
Physical Store disk0s2
1: APFS Volume Macintosh HD 99.6 GB disk1s1
2: APFS Volume Preboot 23.8 MB disk1s2
3: APFS Volume Recovery 519.0 MB disk1s3
4: APFS Volume VM 1.1 GB disk1s4
Once you have determined which disk you would like to work on, pass that as a parameter to the attach
command. It is usually /dev/disk2
.
On Linux drives are given letters such as /dev/sda
or /dev/sdb
. Run lsblk
to identify which drive is the one you want to work on.
If you run into permissions issues run through the guide as root
. This will create an entirely new instance of your VM with the root user who has access to disks directly.