ฉันจะเปลี่ยนหมายเลขซีเรียล BIOS ใน VirtualBox ได้อย่างไร


17

VirtualBox ตั้งค่าหมายเลขซีเรียล BIOS ของทุกอินสแตนซ์ VM เป็น 0 ดูเหมือนว่าจะเป็นไปได้ที่จะเปลี่ยนการตั้งค่าไบออสบางอย่าง แต่ฉันไม่เห็นอะไรเลยที่อ้างอิงหมายเลขซีเรียลโดยตรง

ใครช่วยแนะนำวิธีการทำเช่นนี้?


1
มีเหตุผลใดที่คุณต้องการทำเช่นนี้?
Jared Harley

1
ใช่. ฉันมีเครื่องมือซอฟต์แวร์คลังคอมพิวเตอร์ที่ใช้หมายเลขซีเรียล BIOS เพื่อระบุคอมพิวเตอร์โดยเฉพาะ มันทำงานได้ดีสำหรับฮาร์ดแวร์ที่มีอยู่จริงและสำหรับ VM จากผู้ขายรายอื่น แต่ไม่ทราบวิธีจัดการ VirtualBox VM หลายตัว
โรเจอร์

แก้ไขคำตอบของฉันเพื่อสะท้อนข้อผิดพลาดที่คุณจับได้
คนแคระ

คุณมีข่าวเกี่ยวกับเรื่องนี้ไหมโรเจอร์? ชอบที่จะรู้ว่ามันเปิดออก
คนแคระ

ฉันไม่เคยตัดสินใจว่าจะทำอย่างไร ฉันได้รับคำตอบเล็กน้อยจากฟอรัม VirtualBox แต่ไม่พบสิ่งใดที่ใช้งานได้ หากฉันพบคำตอบฉันจะแน่ใจว่าได้เพิ่มการอัปเดตที่นี่
Roger

คำตอบ:


22

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 ในปุ่ม


3
โปรดทราบว่าคำแนะนำเหล่านี้สำหรับระบบที่ใช้ไบออส หากระบบของคุณใช้EFI - ควบคุมโดย "การตั้งค่า -> ระบบ -> เมนบอร์ด -> เปิดใช้งาน EFI" - คุณต้องเปลี่ยน "pcbios" ด้วย "efi" ในคำสั่งข้างต้น
ntc2

8

ไม่ได้มาจากการตั้งค่าภายนอกใด ๆ แต่คุณสามารถจากรหัสและสร้างมันเอง:

ไฟล์ต้นฉบับ: DevPcBios.cpp
Line: 1014READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");

เปลี่ยน "0" เป็นค่าอะไรก็ได้ที่คุณต้องการ


แก้ไข: คุณเห็นได้ชัดว่าสามารถใช้VBoxManage setextradata ฉันเคยใช้มันในอดีตสำหรับการกำหนดค่าประเภทอื่น ๆ (ไม่เกี่ยวกับประวัติ) และไม่ได้ทดสอบการตั้งค่านี้โดยเฉพาะ ปล่อยมันไป:

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

มิฉะนั้น ... เปลี่ยนกลับเป็นการแก้ไขและสร้างซอร์สโค้ด

ขอให้โชคดี


1
อืมมม ขอบคุณ - เข้าใกล้มาก แต่ยังไม่มี ฉันพยายามนี้: "c: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" setextradata "เซิร์ฟเวอร์สาธิต" VBoxInternal / อุปกรณ์ / pcbios / 0 / Config / DmiSerial "123" ดูเหมือนว่าจะทำงาน แต่เมื่อฉันเปิดตัว VM ฉัน ได้รับข้อความแสดงข้อผิดพลาดนี้: ไม่สามารถเริ่มต้นเซิร์ฟเวอร์สาธิตเครื่องเสมือน การกำหนดค่าไม่ถูกต้องสำหรับอุปกรณ์อุปกรณ์ pcbios (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES) เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุในการสร้าง VM (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES) การลบและสร้างคำจำกัดความของเครื่องใหม่จะแก้ไขทำให้ไม่เกิดอันตรายใด ๆ ฉันคิดว่าคุณสนิทจริงๆ - มีคำแนะนำอื่น ๆ อีกไหม?
Roger

อืม ... คุณทำสำเนาคำต่อคำ / วางคำสั่งของคุณลงในช่องแสดงความคิดเห็นแล้วหรือยัง? เนื่องจากไม่มีช่องว่างระหว่าง / Config และ / DmiSerial ไม่ว่าฉันจะสำรวจเรื่องนี้ต่อไป เดาว่าฉันจะต้องติดตั้ง VirtualBox เพื่อให้ห่างไกลได้รับการอาศัยเฉพาะในบันทึกของฉัน :)
ดาวแคระ

Bah! หัวของฉันนี้ ฉันโพสต์บรรทัดรหัสที่เกี่ยวข้องแล้วไม่ได้ตรวจสอบกับบันทึกเก่าของฉัน มันไม่ใช่ / DmiSerial มันได้รับการเปลี่ยนชื่อบางครั้งระหว่างรุ่น 1.5 และตอนนี้ ตอนนี้เป็น / DmiSystemSerial
A Dwarf

ขอบคุณ A Dwarf สำหรับความช่วยเหลือทั้งหมดของคุณ ฉันพยายามแทนที่ DmiSerial ด้วย DmiSystemSerial, รันบรรทัดคำสั่งอีกครั้ง (โดยไม่เว้นวรรค, ซึ่งเป็นตัวพิมพ์ผิด), และได้รับข้อผิดพลาดเดียวกัน
Roger

สำหรับความรู้ของฉันมันสามารถหมายความว่าสิ่งนี้ยังไม่ได้ดำเนินการอย่างสมบูรณ์และคุณไม่สามารถทำได้ ณ จุดนี้ฉันกลัวว่าฉันจะเลิกมีประโยชน์ คุณควรไปที่ฟอรัม VirtualBox และลองจากที่นั่น พวกเขาเป็นคนที่ยอดเยี่ยมและคุณจะได้รับคำตอบเพิ่มเติม อย่างไรก็ตามฉันชอบที่จะรู้ผลลัพธ์สุดท้ายหากคุณเป็นคนใจดีและโพสต์คำตอบสำหรับคำถามของคุณเองเมื่อมันเกิดขึ้น ทั้งหมดที่ดีที่สุด
คนแคระ

3

หากคุณรันคำสั่งนั้นและรับข้อผิดพลาดที่อ้างถึงโดย Roger คุณจะต้องสำรองคำสั่งด้วยการรันคำสั่งโดยไม่มีพารามิเตอร์สุดท้าย (VALUE)

สิ่งนี้จะลบรายการที่ทำให้เกิดข้อผิดพลาด

หากคุณไม่แน่ใจว่าคำสั่งการละเมิดครั้งสุดท้ายคืออะไรให้เปิดไฟล์ ~~~ .vbox (XML) ในรูทของโฟลเดอร์ VirtualMachines ของ VM เฉพาะและตรวจสอบส่วน EXTRADATA

การเรียกใช้บรรทัดคำสั่งไปยัง vboxmanage เป็นวิธีที่ดีที่สุดในการแก้ไข การแก้ไขไฟล์ xml ไม่ติด 100% ของเวลา


2

คำตอบที่ยอมรับไม่ได้อัปเดตหมายเลขซีเรียลอย่างถูกต้องสำหรับฉัน ฉันทำตามขั้นตอนเหล่านี้แทนเพื่ออัปเดตหมายเลขซีเรียลให้สำเร็จ หมายเหตุ guest 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 ทำ

ลิงก์ที่มีประโยชน์

  • หากคุณมีการค้นพบปัญหาในซีเรียที่ถูกต้องทำตามคำแนะนำที่นี่
  • หากคุณไม่แน่ใจว่าชื่อ vm ของคุณทำงานVBoxManage.exe list vmsอยู่

1
หากคุณต้องการ "efi" และคำตอบที่ได้รับการยอมรับโดยใช้ "pcbios" อาจเป็นเพราะคุณใช้ (U) EFI และบุคคลนั้นกำลังใช้ BIOS ดั้งเดิม ไม่ว่าคุณกำลังใช้ EFI หรือ BIOS จะถูกกำหนดโดยกล่องกาเครื่องหมาย "การตั้งค่า -> ระบบ -> มาเธอร์บอร์ด -> เปิดใช้งาน EFI" ใน VirtualBox
ntc2

อ่าเข้าใจแล้ว! ขอบคุณ @ ntc2
josh7weaver

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.