Brother Bear wrote:I had previously created a number of bootable VDIs
The idea of a "bootable VDI" doesn't sit very well, with me at least. A VDI is a Virtual Disk Image, aka a virtual hard drive. If I give you a hard drive and tell you "boot from it", chances are that if you get the rest of the "computer" wrong, it won't boot. The "computer" is the recipe of the VM, the .vbox file. They should go together with the VDI(s), they form the basis of a VM.
Brother Bear wrote:My next step is to download an OS installer and try to start from scratch
Please do that. Let's see how it goes...
Brother Bear wrote:How do I check VDIs for corruption?
There is a command line tool "vbox-img" that has a "repair" option. Haven't tried it personally:
Code: Select all
$ vbox-img
Oracle VM VirtualBox Disk Utility 6.0.4
(C) 2005-2019 Oracle Corporation
All rights reserved.
Usage: vbox-img
setuuid --filename <filename>
[--format VDI|VMDK|VHD|...]
[--uuid <uuid>]
[--parentuuid <uuid>]
[--zeroparentuuid]
geometry --filename <filename>
[--format VDI|VMDK|VHD|...]
[--clearchs]
[--cylinders <number>]
[--heads <number>]
[--sectors <number>]
convert --srcfilename <filename>
--dstfilename <filename>
[--stdin]|[--stdout]
[--srcformat VDI|VMDK|VHD|RAW|..]
[--dstformat VDI|VMDK|VHD|RAW|..]
[--variant Standard,Fixed,Split2G,Stream,ESX]
info --filename <filename>
compact --filename <filename>
[--filesystemaware]
createcache --filename <filename>
--size <cache size>
createbase --filename <filename>
--size <size in bytes>
[--format VDI|VMDK|VHD] (default: VDI)
[--variant Standard,Fixed,Split2G,Stream,ESX]
[--dataalignment <alignment in bytes>]
createfloppy --filename <filename>
[--size <size in bytes>]
[--root-dir-entries <value>]
[--sector-size <bytes>]
[--heads <value>]
[--sectors-per-track <count>]
[--media-byte <byte>]
createiso [too-many-options]
repair --filename <filename>
[--dry-run]
[--format VDI|VMDK|VHD] (default: autodetect)
clearcomment --filename <filename>
resize --filename <filename>
--size <new size>
Brother Bear wrote:Is there a relatively easy to mount them?
Starting with VirtualBox 6.0.0, there's a command line tool that allows OSX hosts (for now) to mount any VirtualBox readable disk image. Haven't tried it personally:
Code: Select all
$ vboximg-mount
usage: vboximg-mount [options] <mount point directory path>
vboximg-mount options:
[ { -i | --image= } <specifier> ] VirtualBox disk base or snapshot image,
specified by UUID, or fully-qualified path
[ { -l | --list } ] If --image specified, list its partitions,
otherwise, list registered VMs and their
attached virtual HDD disk media. In verbose
mode, VM/media list will be long format,
i.e. including snapshot images and paths.
[ { -w | --wide } ] List media in wide / tabular format
(reduces vertical scrolling but requires
wider than standard 80 column window
)
[ --vm=UUID ] Restrict media list to specified vm.
[ { -p | --partition= } <part #> ] Expose only specified partition via FUSE.
[ { -o | --offset= } <byte #> ] Bias disk I/O by offset from disk start.
(incompatible with -p, --partition)
[ { -s | --size=<bytes> } ] Specify size of mounted disk.
(incompatible with -p, --partition)
[ --rw ] Make image writeable (default = readonly)
[ --root ] Same as -o allow_root.
[ { -v | --verbose } ] Log extra information.
[ -o opt[,opt...]] FUSE mount options.
[ { -h | -? } ] Display short usage info (no FUSE options).
[ --help ] Display long usage info (incl. FUSE opts).
vboximg-mount is a utility to make VirtualBox disk images available to the host
operating system in a root or non-root accessible way. The user determines the
historical representation of the disk by choosing either the base image or a
snapshot, to establish the desired level of currency of the mounted disk.
The disk image is mounted through this utility inside a FUSE-based filesystem
that overlays the user-provided mount point. The FUSE filesystem presents a
a directory that contains two files: an HDD pseudo device node and a symbolic
link. The device node is named 'vhdd' and is the access point to the synthesized
state of the virtual disk. It is the entity that can be mounted or otherwise
accessed through the host OS. The symbolic link is given the same name as the
base image, as determined from '--image' option argument. The link equates
to the specified image's location (path).
If the user provides a base image UUID/path with the --image option, only
the base image will be exposed via vhdd, disregarding any snapshots.
Alternatively, if a snapshot (e.g. disk differencing image) is provided,
the chain of snapshots is calculated from that "leaf" snapshot
to the base image and the whole chain of images is merged to form the exposed
state of the FUSE-mounted disk.
Brother Bear wrote:2. If the VDIs aren't corrupted, how do I trouble shoot this issue?
Build the appropriate recipe for the specific VDI. Don't expect an EFI-boot disk to boot with BIOS for example. But, let's see if you have more fundamental problems after you've tried a brand new VM...