最近装一款软件作研究,需要用硬盘序列号来验证。之前在另一台服务器已经安装过的,如果能把当前硬盘的序列号改为和原服务器的硬盘一致就少了很多注册相关的麻烦了。 根据这一想法,我在 vbox 里帮助里查找到
9.5.3. Configuring the hard disk vendor product data (VPD)
VirtualBox reports vendor product data for its virtual hard disks which consist of hard disk serial
number, firmware revision and model number. These can be changed using the following commands:
改序列号
VBoxManage setextradata "My VM" "VBoxInternal/Devices/ahci/0/Config/Port0/SerialNumber" "serial"
改固件版本
VBoxManage setextradata "My VM" "VBoxInternal/Devices/ahci/0/Config/Port0/FirmwareRevision" "firmware"
改供应商信息
VBoxManage setextradata "My VM" "VBoxInternal/Devices/ahci/0/Config/Port0/ModelNumber" "model"
上面的命令是针对 SATA 接口硬盘的,"My VM" 是虚拟机的名称, ahci 表是硬盘的类型 ,Port0 表示第一块硬盘. 如果是 IDE 接口 用 PrimaryMaster ,PrimarySlave 等标识硬盘,类型 是 piix3ide. 对 IDE 接口命令:
VBoxManage setextradata "XP" "VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/SerialNumber" "9AC00E9F"
命令意义:修改虚拟机 IDE 的主硬盘的序列号为 9AC00E9F
命令执行完后,其实是修改了对应虚拟机的配置文件 " .VirtualBox/Machines/xp/XP.XML" , 在 <ExtraData> 结点下添加了相应设置,因此实际上也可以不用命令而直接修改这个配置文件,效果是一样的。
<ExtraData>
<ExtraDataItem name="GUI/AutoresizeGuest" value="on"/>
<ExtraDataItem name="GUI/Fullscreen" value="off"/>
<ExtraDataItem name="GUI/LastCloseAction" value="powerOff"/>
<ExtraDataItem name="GUI/LastWindowPostion" value="239,49,1024,816"/>
<ExtraDataItem name="GUI/MiniToolBarAlignment" value="bottom"/>
<ExtraDataItem name="GUI/MiniToolBarAutoHide" value="on"/>
<ExtraDataItem name="GUI/SaveMountedAtRuntime" value="yes"/>
<ExtraDataItem name="GUI/Seamless" value="off"/>
<ExtraDataItem name="GUI/ShowMiniToolBar" value="yes"/>
<ExtraDataItem name="VBoxInternal/Devices/piix3ide/0/Config/PrimarySlave/SerialNumber" value="9AC00E9F"/>
</ExtraData>