Bagaimana saya bisa mengubah nomor seri BIOS di VirtualBox?

17

VirtualBox menetapkan nomor seri BIOS dari setiap instance VM ke 0. Tampaknya mungkin untuk mengubah beberapa pengaturan BIOS, tetapi saya belum melihat apa pun yang secara langsung merujuk nomor seri.

Adakah yang bisa menyarankan cara untuk melakukan ini?

Roger
sumber
1
Adakah alasan khusus yang ingin Anda lakukan ini?
Jared Harley
1
Iya. Saya memiliki alat perangkat lunak inventaris PC yang menggunakan nomor seri BIOS untuk mengidentifikasi komputer secara unik. Ini berfungsi dengan baik untuk perangkat keras fisik dan untuk VM dari vendor lain, tetapi tidak tahu bagaimana menangani beberapa VM VirtualBox.
Roger
edit jawaban saya untuk mencerminkan kesalahan yang Anda tangkap.
A Dwarf
Anda punya berita tentang ini, Roger? Ingin tahu bagaimana hasilnya.
A Dwarf
Saya tidak pernah memutuskan bagaimana melakukannya. Saya mendapat beberapa tanggapan di forum VirtualBox, tetapi tidak menemukan apa pun yang berhasil. Jika saya menemukan jawabannya, saya pasti akan menambahkan pembaruan di sini.
Roger

Jawaban:

22

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

Benar-benar memiliki jawaban terperinci untuk ini.

Anda dapat mengatur nomor seri bios dengan melakukan ini:

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

Kesalahan yang Anda peroleh disebabkan oleh serial yang tidak disetel sebagai nilai string, jika Anda memiliki angka murni Anda harus menambahkannya dengan string:seperti:

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

Catatan: Jika VM Anda dikonfigurasikan untuk menggunakan firmware EFI, Anda perlu mengganti pcbios dengan efi di tombol.

Alex R
sumber
3
Perhatikan bahwa petunjuk ini untuk sistem yang menggunakan BIOS . Jika sistem Anda menggunakan EFI - dikontrol oleh "Pengaturan -> Sistem -> Motherboard -> Aktifkan EFI" - maka Anda perlu mengganti "pcbios" dengan "efi" pada perintah di atas.
ntc2
8

Bukan dari pengaturan eksternal. Tapi Anda bisa dari kode lalu membangunnya sendiri:

File sumber: DevPcBios.cpp
Baris: 1014READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");

Ubah "0" ke nilai apa pun yang Anda butuhkan.


EDIT: Anda tampaknya dapat menggunakan setextradata VBoxManage . Saya telah menggunakannya di masa lalu untuk jenis konfigurasi lain (tidak terkait bios) dan tidak menguji pengaturan khusus ini. Mencobanya:

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

Jika tidak ... kembali ke mengedit dan membangun kode sumber.

Semoga berhasil.

A Dwarf
sumber
1
Hmm. Terima kasih - sangat dekat, tetapi belum ada di sana. Saya mencoba ini: "c: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" setextradata "Demo Server" VBoxInternal / Perangkat / pcbios / 0 / Config / DmiSerial "123" Tampaknya bekerja, tetapi ketika saya meluncurkan VM saya mendapat pesan kesalahan ini: Gagal memulai Demo Server mesin virtual. Konfigurasi tidak valid untuk perangkat perangkat pcbios (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES). Kesalahan tidak dikenal saat membuat VM (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES). Menghapus dan membuat ulang definisi mesin memperbaikinya, jadi tidak ada salahnya dilakukan. Saya pikir Anda benar-benar dekat - ada saran lain?
Roger
hmm ... apakah Anda membuat copy / paste kata demi kata dari perintah Anda ke kotak komentar? Karena tidak ada celah antara / Config dan / DmiSerial. Bagaimanapun saya akan mengeksplorasi ini lebih jauh. Kira saya harus menginstal VirtualBox. Sejauh ini hanya mengandalkan catatan saya :)
A Dwarf
Bah! Kepala saya ini. Saya memposting baris kode yang relevan dan kemudian bahkan tidak memeriksanya dengan catatan saya yang jauh lebih tua. Bukan / DmiSerial. Sudah berganti nama antara versi 1.5 dan sekarang. Sekarang / DmiSystemSerial
A Dwarf
Terima kasih, A Dwarf, untuk semua bantuan Anda. Saya mencoba mengganti DmiSerial dengan DmiSystemSerial, reran baris perintah (tanpa spasi, yang merupakan kesalahan ketik), dan mendapat kesalahan yang sama.
Roger
Sepengetahuan saya itu hanya bisa berarti ini belum sepenuhnya dilaksanakan dan Anda tidak bisa melakukannya dengan cara ini. Pada titik ini saya khawatir saya tidak lagi berguna. Anda harus pergi ke forum VirtualBox dan coba dari sana. Mereka adalah orang-orang hebat dan Anda akan mendapatkan jawaban yang lebih tepat. Namun saya ingin mengetahui hasil akhirnya, jika Anda akan sangat baik dan mengirim jawaban untuk pertanyaan Anda sendiri ketika itu terjadi. Semua yang terbaik.
A Dwarf
3

Jika Anda menjalankan perintah itu, dan mendapatkan kesalahan yang dirujuk oleh Roger, Anda harus mencadangkan perintah dengan menjalankan perintah tanpa parameter terakhir (VALUE).

Ini menghapus entri yang menyebabkan kesalahan.

Jika Anda tidak yakin tentang apa perintah terakhir yang menyinggung itu, buka file ~~~ .vbox (XML) di root folder VirtualMachines dari VM spesifik dan tinjau bagian EXTRADATA.

Menjalankan panggilan baris perintah ke vboxmanage adalah cara terbaik untuk memodifikasinya. Mengedit file xml tidak tetap 100% dari waktu.

Alex
sumber
2

Jawaban yang diterima tidak memperbarui nomor seri dengan benar untuk saya; sebagai gantinya, saya mengikuti langkah-langkah ini untuk berhasil memperbarui nomor seri. Perhatikan OS tamu adalah macOS dan host adalah windows.

CATATAN: Anda harus menutup kotak virtual sebelum menjalankan perintah ini agar dapat disimpan.

  1. Buka prompt perintah windows sebagai administrator
  2. cd "C:\Program Files\Oracle\VirtualBox\"
  3. VBoxManage.exe setextradata "VM NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "SERIAL_HERE" lihat sumber . *
    Tidak yakin mengapa perintah pcbios tidak berfungsi tetapi efi melakukannya.

LINK BANTUAN

  • Jika Anda kesulitan menemukan serial yang valid ikuti instruksi di sini .
  • Jika Anda tidak yakin apa nama vm Anda dijalankan VBoxManage.exe list vms.
josh7weaver
sumber
1
Jika Anda memerlukan "efi" dan jawaban yang diterima menggunakan "pcbios", ini mungkin karena Anda menggunakan (U) EFI dan orang itu menggunakan BIOS tradisional. Apakah Anda menggunakan EFI atau BIOS ditentukan oleh kotak centang "Pengaturan -> Sistem -> Motherboard -> Aktifkan EFI" di VirtualBox.
ntc2
Ah masuk akal! Terima kasih @ ntc2
josh7weaver
1

Coba gunakan nomor seri yang berisi string heksadesimal 20 byte:

VBoxManage setextradata "VM name" "VBoxInternal/Devices/ahci/0/Config/Port0/SerialNumber" "serial"

( Referensi )

Ricardo Kiyoshi Batori
sumber