Fun with VirtualBox

  • SpinRite v6.1 Release #3
    Guest:
    The 3rd release of SpinRite v6.1 is published and may be obtained by all SpinRite v6.0 owners at the SpinRite v6.1 Pre-Release page. (SpinRite will shortly be officially updated to v6.1 so this page will be renamed.) The primary new feature, and the reason for this release, was the discovery of memory problems in some systems that were affecting SpinRite's operation. So SpinRite now incorporates a built-in test of the system's memory. For the full story, please see this page in the "Pre-Release Announcements & Feedback" forum.
    /Steve.
  • 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.)

ColbyBouma

Well-known member
Dec 26, 2020
197
80
I followed this article to attach USB drives to VirtualBox. This allowed me to boot ReadSpeed in VirtualBox, and test USB drives with it. The numbers were higher than I expected, but CrystalDiskMark reports 180 MB/s for Drive #1, so maybe my expectations were just too low :)

Drive #1 is a 16 GB Team Color TG016GE902C3 USB drive I use for running ReadSpeed.
Drive #2 is a 1.2 GB VirtualBox disk image on my Samsung 970 EVO SSD. It's fun to see how fast the bar goes on this one :D
Drive #3 is a 32 GB Patriot Supersonic PEF32GSUSB USB drive I bought in 2011.

I don't have the log file because it wasn't able to write it, for some reason.

2020-12-30_00-55-17.png



I did another run where I swapped the Patriot USB drive for a 2 TB Seagate SRD00F1 portable HDD (2.5"). I had to re-create the VMDK, then remove and re-add it to VirtualBox before it showed up correctly.

2020-12-30_01-05-27.png
 
Last edited:
@Dagannoth it looks like that 970 Evo is an NVME SSD. If so that's one nice way to get some indicative NVME testing done. Will be nice to revisit when the native NVME ReadSpeed is available to see what kind of overhead VirtualBox has.

Do you have any other virtual storage controller choices? I wonder which one is most efficient.
 
it looks like that 970 Evo is an NVME SSD.
That is correct.
If so that's one nice way to get some indicative NVME testing done. Will be nice to revisit when the native NVME ReadSpeed is available to see what kind of overhead VirtualBox has.
I'm excited for NVMe support too. One of the things I noticed is that the results for this drive fluctuate a lot. They're usually around 2600, but for the run in my first screenshot they were around 3200. There's a couple things I think could be going on though.
  • I used a virtual disk instead of attaching the whole disk. I think I would need to boot another OS to attach the raw disk.
  • This is my boot drive, and it's running VeraCrypt full disk encryption. Frankly, I'm surprised the numbers are as high as they are.
Do you have any other virtual storage controller choices? I wonder which one is most efficient.
There's a bunch of possible controller choices, but I want to boot a different OS before I try them so I can eliminate the variables above.

I started this adventure because I wanted to see if ReadSpeed works on drives smaller than 1 GB (someone tested a real 1.2 GB drive), and it doesn't 😄
2020-12-30_00-35-54.png

I think the numbers for Drive #1 are low in this one because I had the Execution Cap set to 10%, which turned out to be unnecessary.
 
In my experience, booting from a USB disk via a virtual drive file does not allow writing, perhaps because of how the volume is virtualized in RAM. There seems to be no write-back capability. Attaching the DOS environment to a virtual network should allow writing via the network, but I haven't tried this.

It can be a pain to create virtual disks in this manner as I tend to forget the commands over time, though I do have the instructions copied locally and readily searchable. I've meant to make some sort of script that would create these files from a list of available volumes, but have never quite gotten around to it :rolleyes:.

Thanks for the experiment. I've tried this a couple of time with my USB drives during development, but never made a log or screenshot to show. SpinRite will need to support these interfaces natively anyway.
 
I had a little more fun with VirtualBox. I created a 900 TB virtual disk, and ReadSpeed handled it like a champ! I tried to create a 1 PB disk, but VBoxManage errored out. It shows up as 989 TB because drives are almost always base 1000 (TiB, 1000^4) instead of TB (1024^4).
1609379678407.png

I have no idea why my USB drive was so slow this time, or why the virtual disk was so fast.

Here's the PowerShell command I used:
.\VBoxManage.exe createmedium disk --filename C:\huge.vdi --sizebyte $(900TB) --format VDI --variant Standard
 
I used imdisk Ramdisk and put the virtual harddisk there :) ..but I never came close to 9200

Speed.PNG