How To: Run SpinRite on a UEFI-only machine (Part 5A of 5 - Using Pre-Built VM)

  • Be sure to checkout “Tips & Tricks”
    Dear Guest Visitor → Once you register and log-in please checkout the “Tips & Tricks” page for some very handy tips!

    /Steve.
  • BootAble – FreeDOS boot testing freeware

    To obtain direct, low-level access to a system's mass storage drives, SpinRite runs under a GRC-customized version of FreeDOS which has been modified to add compatibility with all file systems. In order to run SpinRite it must first be possible to boot FreeDOS.

    GRC's “BootAble” freeware allows anyone to easily create BIOS-bootable media in order to workout and confirm the details of getting a machine to boot FreeDOS through a BIOS. Once the means of doing that has been determined, the media created by SpinRite can be booted and run in the same way.

    The participants here, who have taken the time to share their knowledge and experience, their successes and some frustrations with booting their computers into FreeDOS, have created a valuable knowledgebase which will benefit everyone who follows.

    You may click on the image to the right to obtain your own copy of BootAble. Then use the knowledge and experience documented here to boot your computer(s) into FreeDOS. And please do not hesitate to ask questions – nowhere else can better answers be found.

    (You may permanently close this reminder with the 'X' in the upper right.)

Scott

Well-known member
Sep 18, 2020
161
43
This How To article is in multiple parts:
  1. Introduction
  2. Using Windows to Go as the base OS for your bootable VirtualBox system
  3. Using Kubuntu Linux as the base OS for your bootable VirtualBox system
  4. Using MacOS as the base OS for your bootable VirtualBox system
  5. Downloading or Creating your VM and moving files in and out of the virtual drive
    1. Part 5A - Download a pre-built Virtual Machine instead of creating your own (this article)
    2. Part 5B - Creating your own Virtual Machine
    3. Part 5C - Copying files to and from the VM hard drive

Using a Prebuilt Virtual Machine and C Drive DOS disk​


Building the C drive within Virtual Box is a bit of a pain due to needing to have both the FreeDOS and SpinRite floppy images to create your C drive. I've built the Virtual Machine and Virtual disk file so you don't have to, and exported it as an appliance, which is a single OVA file.

How to use this:​

  1. Download the SRDOS.OVA file to your boot drive from this link
    1. This is coming from my OneDrive account, and it's all of about 1 MB!!
  2. From within VirtualBox, go to File | Import Appliance
  3. Point to the SRDOS.OVA and Import
    1. Should be at /home/kubuntu/Downloads
  4. The Virtual Machine and it's associated Virtual Hard Drive will be imported into your 'VirtualBox VMs' folder and ready to go, BUT see below to potentially convert the hard drive image (in .VMDK or .VDI form) into a more useful form (.VHD or .IMG)

What's in the "Appliance":​

  • A .VBOX file with a basic PC configuration:
    • IDE controller (listed as PIIX4) with "boot C drive" attached as IDE Primary Device 0
    • Floppy controller
    • AHCI controller
  • The C drive file:
    • Will be in .VDI or .VMDK file when imported
      • 100 MB dynamically sized drive (so actually only takes up about 2 MB)
      • MBR drive with one partition, formatted as FAT16
      • GRC-modified FreeDOS installed
      • The various disk prep utilities I noted in the detailed directions
      • ReadSpeed (it's the rs.exe file in the /READSPEE directory)
      • Not SpinRite!! SpinRite is a paid, licensed program and you need to get your own copy
        • There is a spinrite.exe on the C drive but it's an old pre-release version that puts up a banner to buy your own copy

I bought my own copy of SpinRite, how do I get it on the C Drive?​

Two ways:
  1. Method One - create a floppy image and mount it - REQUIRES WINDOWS PREP PC
    1. On your Prep machine:
      1. Go to GRC.com and download your personal copy of SpinRite
      2. Run the SpinRite executable in Windows
      3. Use the option to "Create ISO or IMG file"
      4. Click on "Save a Boot Image File"
      5. Dialog box comes up; change the Save as type entry to: IMG (for making boot diskette)
      6. By default it's called SpinRite.img, change the name to SPINRITE-FD.img and save it
      7. Exit SpinRite
      8. Copy that file to a USB flash drive
    2. On your Target machine:
      1. Start your Win to Go, MacOS, or Linux boot drive on your target machine
      2. Insert the USB drive from the Prep PC
      3. Copy the SPINRITE-FD.img to your VirtualBox VMs folder
      4. In the Settings for your Virtual Machine, attach that floppy image to the floppy controller
      5. In the Settings, check the boot order, ensure that the Hard Drive has higher priority than the floppy controller
      6. Start your Virtual Machine
      7. You should boot to the C drive
      8. Delete dummy spinrite.exe from C drive
      9. Copy spinrite.exe from A drive to C drive
      10. shutdown
      11. In Settings, detach the floppy image
  2. Method Two- Hard drive conversion - convert the .VDI or .VMDK to a format that the host can access for read and write operations
    1. Overview
      1. Convert the hard drive to a format that's readable by the Host OS
      2. Mount the hard drive file in your host system
      3. Perform your file operations (i.e., copy the spinrite executable to the drive)
      4. Unmount the virtual hard drive
    2. How to do it:
      1. Go to GRC.com and download your SpinRite executable from either the new purchase page or upgrade page
        1. Will be SR61.EXE
      2. Follow the instructions in Part 5C of this How To, in order to mount the Virtual Drive in a way that your Host OS can see it:
      3. Part 5C - Copying files to and from the Virtual Hard Drive
      4. Obviously, copy the SR61.EXE file you downloaded to the Virtual Hard Drive while it's mounted to the Host OS.

Now return back to your instructions for your Host OS to learn how to map the drives on the host into VirtualBox:
  1. Part 2B - Windows to Go Host OS
  2. Part 3B - Kubuntu Linux as Host OS
  3. Part 4B - MacOS as Host OS
 
Last edited:
Hi Scott - I saw your simple step and went for it, unfortunately after VBox and putting your machine into the folder, I received this error (maybe I missed a step):

VM Name: SRDOS

Not in a hypervisor partition (HVP=0) (VERR_NEM_NOT_AVAILABLE).

VT-x is disabled in the BIOS for all CPU modes (VERR_VMX_MSR_ALL_VMX_DISABLED).

Result Code:E_FAIL (0X80004005)
Component:ConsoleWrap
Interface:IConsole {6ac83d89-6ee7-4e33-8ae6-b257b2e81be8}
 
VT-x is disabled in the BIOS
This message is all you need to know. The virtualization feature needs hardware support, and that support is not available in every CPU, and can be disabled on those that do offer it in case it was to cause problems (remembering that it was new at one time.) You'll have to look into your BIOS settings, frequently around the "advanced CPU settings" or similar to make sure you enable the feature in order for VirtualBox to be able to run on your PC.
 
Last edited:
Well, I made the change and all booted up ok. I've been cramped for time, so didn't get to all of this right away, I apologize for disappearing. Regardless, I'll bring this back for more SR testing later, still cramped for time.
 
Thanks Scott. I'm running Virtual Box 6.1 on Win10 and ran into a issue when trying to import the image, but I found a solution and I'll share it below for anyone else running 6.1. The error is that the audio driver value "WAS" is unrecognized, and I believe this is due to the image being made in Virtual Box 7. To fix it:

  1. The OVA file you downloaded is a tar file so first extract the contents to disk.
  2. Open the .ovf file in a text editor. Find the tag for AudioAdapter and change the driver value to "DirectSound".
  3. Open the .mf file in a text editor and change the ovf's SHA1 hash to 0ea7c4f2789e1373e3824e5288b548c0dcd50658
  4. In Virtual Box, if you have the appliance import dialog open then close it and retry importing the ovf file.
 
Thanks very much for providing the already-setup .ova environment and drive image!

Another way of getting Spinrite onto C: which seems like it worked well for me just now, a variation on Method One (creating a floppy image) which didn't need a PC. This requies Spinrite 6.1's .img file downloaded from GRC, and the abilty to mounted in your host OS and get at spinrite.exe.

- Mounted spinrite.img in my host OS (mac), saw spinrite.exe there.
- Created a blank virtual floppy disk in VirtualBox, also mounted it in my host OS.
- Copied spinrite.exe from the first virtual image to the virtual floppy image.
- Unmounted virtual floppy image in my OS
- Selected that floppy image in my running SRDOS VM in VirtualBox
- Copied the exe to C: in DOS (`copy A:SPINRITE.EXE C:`)

[note, edited this post for clarity from what was quoted in the reply below]
 
Last edited:
Thanks very much for providing the already-setup .ova environment and drive image!

Another way of getting Spinrite onto C: which seems like it worked well for me just now:

I created a virtual floppy disk in VirtualBox, mounted it in my host OS (mac) and copied spinrite.exe into it (from Spinrite 6.1's .img file downloaded from GRC, which I also mounted in my host OS). After ejecting from my OS, I then selected that floppy image in my running SRDOS VM in VirtualBox and copied the exe to C: in DOS (`copy A:SPINRITE.EXE C:`)
I like that, I’ll add it to the instructions tomorrow