VirtualBoxでBIOSシリアル番号を変更するにはどうすればよいですか?


17

VirtualBoxはすべてのVMインスタンスのBIOSシリアル番号を0に設定します。一部のBIOS設定を変更することは可能と思われますが、シリアル番号を直接参照するものは見ていません。

誰もこれを行う方法を提案できますか?


1
これをしたい特別な理由はありますか?
ジャレッドハーリー

1
はい。BIOSシリアル番号を使用してコンピューターを一意に識別するPCインベントリソフトウェアツールがあります。物理ハードウェアおよび他のベンダーのVMに対しては正常に機能しますが、複数のVirtualBox VMを処理する方法はわかりません。
ロジャー

あなたが見つけたエラーを反映するために私の答えを編集しました。
ドワーフ

これについて何かお知らせがありますか、ロジャー?それがどうなったのか知りたいです。
ドワーフ

私はそれをどうするか決めたことがありません。VirtualBoxフォーラムでいくつかの回答を得ましたが、何も機能しませんでした。答えに出くわした場合は、必ずここに更新を追加します。
ロジャー

回答:


22

http://www.virtualbox.org/manual/ch09.html#changedmi

本当にこれに対する詳細な答えがあります。

これを行うことにより、BIOSシリアル番号を設定できます。

VBoxManage setextradata "VM name" 
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "System Serial"

あなたが得ていたエラーは、シリアルが文字列値として設定されていないために発生します。純粋な番号がある場合は、次のstring:ように追加する必要があります:

VBoxManage setextradata "VM name" 
"VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "string:1234"

注: EFIファームウェアを使用するようにVMが構成されている場合、キーのpcbiosをefiに置き換える必要があります。


3
これらの手順はBIOSを使用するシステム用であることに注意してください。システムが「設定->システム->マザーボード-> EFIを有効にする」で制御されるEFIを使用している場合、上記のコマンドで「pcbios」を「efi」に置き換える必要があります。
ntc2

8

外部設定からではありません。しかし、コードから自分でビルドすることができます:

ソースファイル: DevPcBios.cpp
行: 1014READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");

「0」を必要な値に変更します。


編集:明らかにVBoxManage setextradataを使用することができます。過去に他のタイプの構成(BIOS関連ではない)に使用したことがあり、この特定の設定をテストしませんでした。試してごらん:

VBoxManage setextradata *YourVMName* VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial "*yourserial*"

それ以外の場合...ソースコードの編集とビルドに戻ります。

幸運を祈ります。


1
うーん。ありがとう-とても近いですが、まだそこにありません。私はこれを試しました: "c:\ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" setextradata "Demo Server" VBoxInternal / Devices / pcbios / 0 / Config / DmiSerial "123"動作しているように見えましたが、VMを起動すると次のエラーメッセージが表示されます:仮想マシンDemo Serverの起動に失敗しました。デバイスpcbiosデバイスの無効な構成(VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES)。VM作成中の不明なエラー(VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES)。マシン定義を削除して再作成すると修正されたため、問題はありません。あなたは本当に近いと思います-他の提案はありますか?
ロジャー

うーん...コメントボックスにコマンドの逐語的なコピー/貼り付けを行いましたか?/ Configと/ DmiSerialの間に空間がないためです。とにかく、私はこれをさらに探求します。VirtualBoxをインストールする必要があると思います。これまでは私のメモのみに頼っていました:)
ドワーフ

ああ!私のこの頭。関連するコード行を投稿しますが、はるかに古いノートとは照合しません。/ DmiSerialではありません。バージョン1.5から現在までの間に名前が変更されました。現在は/ DmiSystemSerial
A Dwarf

すべてのあなたの助けをありがとう、ドワーフ。DmiSerialをDmiSystemSerialに置き換えて、コマンドラインを再実行し(スペースなし、タイプミス)、同じエラーが発生しました。
ロジャー

私の知る限り、これはまだ完全に実装されていないことを意味するだけで、この方法でそれを行うことはできません。この時点で、私は役に立たなくなることを恐れています。VirtualBoxフォーラムにアクセスして、そこから試してみてください。彼らは優秀な人々であり、あなたはより多くの情報に基づいた答えを得るでしょう。しかし、私が最終結果を知りたいのであれば、あなたがとても親切で、それが起こったときにあなた自身の質問への答えを投稿するなら。ではごきげんよう。
ドワーフ

3

そのコマンドを実行し、Rogerが参照するエラーを取得した場合、最後のパラメーター(VALUE)なしでコマンドを実行してコマンドをバックアウトする必要があります。

これにより、エラーの原因となったエントリが削除されます。

最後の問題のコマンドが不明な場合は、特定のVMのVirtualMachinesフォルダーのルートにある~~~ .vbox(XML)ファイルを開き、EXTRADATAセクションを確認します。

これらを変更するには、vboxmanageのコマンドライン呼び出しを実行するのが最善の方法です。xmlファイルを編集しても、常に100%固定されるわけではありません。


2

受け入れられた回答では、シリアル番号が正しく更新されませんでした。代わりに、これらの手順に従って、シリアル番号を正常に更新しました。ゲストOSはmacOSで、ホストはWindowsでした。

注:このコマンドを保存するには、virtualboxを閉じる必要があります。

  1. 管理者として Windowsコマンドプロンプト開きます
  2. cd "C:\Program Files\Oracle\VirtualBox\"
  3. VBoxManage.exe setextradata "VM NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "SERIAL_HERE" ソースを参照してください。*
    pcbiosコマンドが機能しなかったのにefiが機能した理由はわかりません。

便利なリンク


1
「pcbios」を使用して「efi」と受け入れられた回答が必要なのは、おそらく(U)EFIを使用していて、その人が従来のBIOSを使用していたためです。EFIを使用しているかBIOSを使用しているかは、VirtualBoxの「設定->システム->マザーボード-> EFIを有効にする」チェックボックスによって決まります。
ntc2

ああ、理にかなっています!ありがとう@ ntc2
josh7weaver

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.