VirtualBox ตั้งค่าหมายเลขซีเรียล BIOS ของทุกอินสแตนซ์ VM เป็น 0 ดูเหมือนว่าจะเป็นไปได้ที่จะเปลี่ยนการตั้งค่าไบออสบางอย่าง แต่ฉันไม่เห็นอะไรเลยที่อ้างอิงหมายเลขซีเรียลโดยตรง
ใครช่วยแนะนำวิธีการทำเช่นนี้?
VirtualBox ตั้งค่าหมายเลขซีเรียล BIOS ของทุกอินสแตนซ์ VM เป็น 0 ดูเหมือนว่าจะเป็นไปได้ที่จะเปลี่ยนการตั้งค่าไบออสบางอย่าง แต่ฉันไม่เห็นอะไรเลยที่อ้างอิงหมายเลขซีเรียลโดยตรง
ใครช่วยแนะนำวิธีการทำเช่นนี้?
คำตอบ:
http://www.virtualbox.org/manual/ch09.html#changedmi
มีคำตอบโดยละเอียดสำหรับเรื่องนี้จริงๆ
คุณสามารถตั้งหมายเลขซีเรียลไบออสได้โดยทำดังนี้
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"
หมายเหตุ:ในกรณีที่ VM ของคุณได้รับการกำหนดค่าให้ใช้เฟิร์มแวร์ EFI คุณจะต้องเปลี่ยน pcbios โดย efi ในปุ่ม
ไม่ได้มาจากการตั้งค่าภายนอกใด ๆ แต่คุณสามารถจากรหัสและสร้างมันเอง:
ไฟล์ต้นฉบับ: DevPcBios.cpp
Line: 1014READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");
เปลี่ยน "0" เป็นค่าอะไรก็ได้ที่คุณต้องการ
แก้ไข: คุณเห็นได้ชัดว่าสามารถใช้VBoxManage setextradata ฉันเคยใช้มันในอดีตสำหรับการกำหนดค่าประเภทอื่น ๆ (ไม่เกี่ยวกับประวัติ) และไม่ได้ทดสอบการตั้งค่านี้โดยเฉพาะ ปล่อยมันไป:
VBoxManage setextradata *YourVMName* VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial "*yourserial*"
มิฉะนั้น ... เปลี่ยนกลับเป็นการแก้ไขและสร้างซอร์สโค้ด
ขอให้โชคดี
หากคุณรันคำสั่งนั้นและรับข้อผิดพลาดที่อ้างถึงโดย Roger คุณจะต้องสำรองคำสั่งด้วยการรันคำสั่งโดยไม่มีพารามิเตอร์สุดท้าย (VALUE)
สิ่งนี้จะลบรายการที่ทำให้เกิดข้อผิดพลาด
หากคุณไม่แน่ใจว่าคำสั่งการละเมิดครั้งสุดท้ายคืออะไรให้เปิดไฟล์ ~~~ .vbox (XML) ในรูทของโฟลเดอร์ VirtualMachines ของ VM เฉพาะและตรวจสอบส่วน EXTRADATA
การเรียกใช้บรรทัดคำสั่งไปยัง vboxmanage เป็นวิธีที่ดีที่สุดในการแก้ไข การแก้ไขไฟล์ xml ไม่ติด 100% ของเวลา
คำตอบที่ยอมรับไม่ได้อัปเดตหมายเลขซีเรียลอย่างถูกต้องสำหรับฉัน ฉันทำตามขั้นตอนเหล่านี้แทนเพื่ออัปเดตหมายเลขซีเรียลให้สำเร็จ หมายเหตุ guest OS คือ macOS และโฮสต์คือ windows
หมายเหตุ: คุณต้องปิด virtualbox ก่อนเรียกใช้คำสั่งนี้เพื่อให้บันทึก
cd "C:\Program Files\Oracle\VirtualBox\"
VBoxManage.exe setextradata "VM NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "SERIAL_HERE"
ดูแหล่งที่มา * ลิงก์ที่มีประโยชน์
ลองใช้หมายเลขซีเรียลที่มีสตริงเลขฐานสิบหก 20 ไบต์:
VBoxManage setextradata "VM name" "VBoxInternal/Devices/ahci/0/Config/Port0/SerialNumber" "serial"
( อ้างอิง )