It implements the steps described in Section 9 of the VirtualBox manual - 9.9.1.1 Access to entire physical hard disk and 9.9.1.2 Access to individual physical hard disk partitions, running VBoxManage to perform the steps based on data you supply via VBoxRawdisk.
When the utility is initiated it scans the physical drives attached to your Mac and presents a table similar to that used by Disk Utility. When a drive is selected, key attributes of that device are displayed, enabling you to determine which drive contains the data you wish to use in VirtualBox.
VBoxRawdisk also reads the VirtualBox registry to determine which virtual machines you have configured. When a disk has been selected, the menu of virtual machines is enabled and you can proceed with generating the VMDK file.
Usage and Limitations
This is dangerous stuff and there is a very real risk of destroying data if you inadvertently choose the incorrect virtual machine, incorrect partitions or the wrong disk. Be warned!!Entire physical disk access is on the whole easier to use than accessing individual partitions and seems to have (slightly) fewer caveats.
Entire Disk (Preferred)
- All partitions on the disk are available for use by Virtual Box.
Individual Partitions
- This is difficult to configure. In VBoxRawdisk you select the partitions that you wish to use. Use command-click to select multiple partitions.
- Running VirtualBox under macOS, the VMDK file MUST be attached to an IDE controller. It just doesn't work when attempting to attach to a SATA controller. This may be a bug in VirtualBox. For now, VBoxRawdisk does this attachment to IDE for you.
- In general, you will need to use 2 partitions, the EFI partition (containing boot strap code) and the partition containing your OS. If you are attemting to run Linux as the guest OS, you will probably also want to add a small partition for use as swap.
- The VirtualBox manual indicates that it's possible to embed the bootstrap code inside the raw partition, but I have been unable to get this to work. Again, maybe a VirtualBox bug.
- I found it easier to initially configure individual partition access after having first made the host bootable from the partitions that will be used by VirtualBox. Its a bit of a chicken/egg situation and a lot of mucking around but the advantage is that you can then either run the guest OS virtually or alternatively, boot the hardware and run the OS in native mode.
General comments/limitations
- VBoxRawdisk does not create a virtual machine - you must use VirtualBox to do that, creating a new machine configured as required for the OS installed (or to be installed) on your raw drive.
- VBoxRawdisk will present a standard 'Save as' dialog for saving the generated VMDK file to somewhere on your machine. The default file name will be the same as the name of the selected virtual machine, so make sure you have selected things as you intended.
- VirtualBox requires ownership of the system device files (/dev/diskn*) associated with the selected disk. By default these device files are owned by the root user. You will see an authentication dialog enabling this change of ownership.
- Once created, your VMDK file will be added to the VirtualBox media registry. You can now cancel further operations in VBoxRawdisk and manually (i.e with VirtualBox) attach your VMDK to your virtual machine.
- VBoxRawdisk will optionally attach your VMDK to either SATA controller 0, port 0 (entire disk) or to an IDE controller (selected partitions). You should add the appropriate disk controller to your virtual machine configuration.
- VBoxRawdisk will optionally attempt to start the virtual machine.
Download VBoxRawdisk 1.4.1
VBoxRawdisk 1.4.1 - Changes and FeaturesChanges
- Build with Xcode 15.4.
- Use Sparkle 2.6.4.
- Fix version check for VirtualBox 7.1.0 or later.
Download VBoxRawdisk 1.4.0
VBoxRawdisk 1.4.0 - Changes and FeaturesChanges
- Build with Xcode 15.3.
- Use Sparkle 2.3.0.
- Updated for macOS Sonoma (macOS 14.0).
- Updated for use on Apple Silicon.
Download VBoxRawdisk 1.3.8
VBoxRawdisk 1.3.8 - Changes and FeaturesChanges
- Build with Xcode 14.1.
- Use Sparkle 2.3.0.
- Updated for macOS Ventura (macOS 13.0).
- Updated for VirtualBox 7.0.3 or later.
Download VBoxRawdisk 1.3.7
VBoxRawdisk 1.3.7 - Changes and FeaturesChanges
- Compiled with Xcode 12.4
- Get VM configuration directory from VirtualBox.
Download VBoxRawdisk 1.3.6
VBoxRawdisk 1.3.6 - Changes and FeaturesChanges
- Compiled with Xcode 12.2 for Big Sur
- Unmount APFS volumes associated with the disk.
- Cache the disk images.
Download VBoxRawdisk 1.3.5
VBoxRawdisk 1.3.5 - Changes and FeaturesChanges
- Compiled with Xcode 11, Swift 5.1
- Hide APFS volumes - VirtualBox cannot use them.
- Disks are now sorted by BSD unit number.
- Fixed minor memory leak.
Download VBoxRawdisk 1.3.4
VBoxRawdisk 1.3.4 - Changes and FeaturesEnhancements
- Compiled with Xcode 10.2, Swift 5
Download VBoxRawdisk 1.3.3
VBoxRawdisk 1.3.3 - Changes and FeaturesEnhancements
- Sparkle updated to version 1.21.2.
- Check device permissions before propmpting to change.
- Relaunch if VBoxRawdisk has been translocated.
- Use new Preferences framework.
Download VBoxRawdisk 1.3.2
VBoxRawdisk 1.3.2 - Changes and Features- VBoxRawdisk is now notarized by Apple.
Download VBoxRawdisk 1.3.1
VBoxRawdisk 1.3.1 - Changes and Features- Built with Xcode 10, Swift 4.2.
Download VBoxRawdisk 1.3.0
VBoxRawdisk 1.3.0 - Changes and Features- Update to Swift 4.
- Improved raw partition support.
Download VBoxRawdisk 1.2.0
VBoxRawdisk 1.2.0 - Changes and Features- Use raw partitions (previously only entire disk).
- Access to system utilities (Disk Utility and Terminal) from the toolbar.
- Added Help links.
Download VBoxRawdisk 1.1.0
VBoxRawdisk 1.1.0 - Changes and Features- Option to start VM headless.
- New Icon.
- Save/Restore default settings.
- VM menu sorted by most recently used.
Download VBoxRawdisk 1.0.0
VBoxRawdisk 1.0.0 - Changes and Features- First public release