Hard Disk Vendor Product Data: two feature extensions/improvement requests

Here you can provide suggestions on how to improve the product, website, etc.
Post Reply
sbpetrack
Posts: 13
Joined: 20. Sep 2014, 09:41

Hard Disk Vendor Product Data: two feature extensions/improvement requests

Post by sbpetrack »

Today it is possible to configure certain Hard Disk Vendor Product Data for virtual disks that are attached to virtual IDE and AHCI (SATA) controllers. Section 9.8.2 of the manual documents this.

1. It is important/useful/sometimes-necessary to do this for disks that are attached to all controller types, not just those two. In my particular concrete case, I need to do it for a disk attached to an NVME controller. (If you are curious to know why i can't just use SATA like everyone else, the reason is that in my case the disk in question is a raw disk, and the physical disk is in fact an NVMe SSD. But it seems to me that if Virtualbox says that it "supports virtual disks attached to a controller of type <foo>," then that support is incomplete as long as it is not possible to set the HD VPD for such disks-- so I think of it more as "completing a supported feature" than a new feature request :).

2. Also, the list of data elements which can be configured is a predetermined, finite, list. It is not EVERY datum that EVERY disk manufacturer might have their disks publish that can be set. For example, my Windows 10 registry contains the "Vendor SKU" for my physical system disk, but i cannot set this when i uncook the disk and make it raw :). Although "infinite" might seem like a long list of variables to support, I think it might be utterly trivial to do so: simply have the API described in 9.8.2 specify which character strings are acceptable as a valid VPD key and value (for example, "ascii strings of non-special characters that are at most 63 chars long" (or whateever), and then accept ANY key-value pair that includes the correct path to one of the hard disk controllers. An example might be:

VBoxManage setextradata "VM Name" "VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/QualityControlForeman" "Help!I'mAPrisonerInAVirtualHardDiskFactory!"

Such a scheme would enable VIrtualBox to support a MUCH larger range of licensing schemes than it does today. It would be useful to both cats AND mice in the eternal circle of anti-fraud anti-piracy anti-theft security activities.

Please accept my apologies if it seems that I am suggesting HOW to implement a feature, and not only WHAT the feature or requirement is. I do so only because it seems the simplest way to communicate the "What"; and it also makes clear (I hope) that my request to support an "infinite" number of key-value pairs (well, to be precise, to support any finite number of them, limited only by the size of the files that define the VM) is not impossible to implement easliy.

with thanks,
scott

EDIT/PS: It seems that it really is necessary to be able to set the basic VPD in order to avoid the need for a new activation (for a windows installation that one would like to squeeze from the original bare metal in to a guest). I may no longer have the skills required, but it seems at least possible that itś a programming task that even an idiot like me could tackle. Consider this an informal request to the relevant dev to mail me privately if there are any subtleties at all that naive programmer should know before foolishly attempting to make good on the promise of open source software. :)
Post Reply