Làm cách nào để thay đổi số sê-ri BIOS trong VirtualBox?


17

VirtualBox đặt số sê-ri BIOS của mọi phiên bản VM thành 0. Có vẻ như có thể thay đổi một số cài đặt BIOS, nhưng tôi chưa thấy bất cứ điều gì liên quan trực tiếp đến số sê-ri.

Bất cứ ai có thể đề nghị một cách để làm điều này?


1
Bất kỳ lý do cụ thể bạn muốn làm điều này?
Jared Harley

1
Đúng. Tôi có một công cụ phần mềm kiểm kê PC sử dụng số sê-ri BIOS để nhận dạng duy nhất các máy tính. Nó hoạt động tốt cho phần cứng vật lý và cho máy ảo từ các nhà cung cấp khác, nhưng không biết cách xử lý nhiều máy ảo VirtualBox.
Roger

chỉnh sửa câu trả lời của tôi để phản ánh lỗi bạn bắt được.
Một chú lùn

Bạn có tin tức gì về điều này không, Roger? Rất muốn biết làm thế nào nó bật ra.
Một chú lùn

Tôi không bao giờ xác định làm thế nào để làm điều đó. Tôi đã nhận được một vài phản hồi trên các diễn đàn VirtualBox, nhưng không tìm thấy gì hiệu quả. Nếu tôi chạy qua câu trả lời, tôi chắc chắn sẽ thêm một bản cập nhật ở đây.
Roger

Câu trả lời:


22

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

Thực sự có câu trả lời chi tiết cho việc này.

Bạn có thể đặt số sê-ri bios bằng cách thực hiện việc này:

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

Lỗi bạn gặp phải là do sê-ri không được đặt làm giá trị chuỗi, nếu bạn có số thuần túy, bạn nên thêm vào đó string:như sau:

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

Lưu ý: Trong trường hợp VM của bạn được cấu hình để sử dụng phần mềm EFI, bạn cần thay thế pcbios bằng efi trong các phím.


3
Lưu ý rằng các hướng dẫn này dành cho các hệ thống sử dụng BIOS . Nếu hệ thống của bạn sử dụng EFI - được điều khiển bởi "Cài đặt -> Hệ thống -> Bo mạch chủ -> Bật EFI" - thì bạn cần thay thế "pcbios" bằng "efi" trong các lệnh trên.
ntc2

8

Không phải từ bất kỳ cài đặt bên ngoài. Nhưng bạn có thể từ mã và sau đó tự xây dựng nó:

Tập tin nguồn: DevPcBios.cpp
Dòng: 1014READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");

Thay đổi "0" thành bất kỳ giá trị nào bạn cần.


EDIT: Rõ ràng bạn có thể sử dụng VBoxManage setextradata . Tôi đã sử dụng nó trong quá khứ cho các loại cấu hình khác (không liên quan đến bios) và không kiểm tra cài đặt cụ thể này. Thôi buông đi:

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

Nếu không ... trở lại chỉnh sửa và xây dựng mã nguồn.

May mắn nhất.


1
Hừm. Cảm ơn - rất gần, nhưng chưa có. Tôi đã thử điều này: "c: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" setextradata "Demo Server" VBoxI Internalal / Devices / pcbios / 0 / Config / DmiSerial "123" Nó dường như hoạt động, nhưng khi tôi khởi chạy VM tôi nhận được thông báo lỗi này: Không thể khởi động máy chủ Demo Máy ảo. Cấu hình không hợp lệ cho thiết bị pcbios của thiết bị (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES). Lỗi không xác định khi tạo VM (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES). Xóa và tạo lại định nghĩa máy đã sửa nó, do đó không có tác hại gì. Tôi nghĩ bạn thực sự thân thiết - có đề xuất nào khác không?
Roger

hmm ... bạn đã tạo một bản sao nguyên văn / dán lệnh của bạn vào hộp bình luận chưa? Bởi vì không có khoảng cách giữa / Config và / DmiSerial. Bất kể tôi sẽ khám phá điều này hơn nữa. Đoán tôi sẽ phải cài đặt VirtualBox. Cho đến nay chỉ dựa vào ghi chú của tôi :)
Một người lùn

Bah! Cái đầu này của tôi. Tôi đăng dòng mã có liên quan và sau đó thậm chí không kiểm tra nó so với các ghi chú cũ hơn nhiều của tôi. Nó không phải / DmiSerial. Nó đã được đổi tên đôi khi giữa phiên bản 1.5 và bây giờ. Bây giờ là / DmiSystemSerial
Một người lùn

Cảm ơn, Một người lùn, vì tất cả sự giúp đỡ của bạn. Tôi đã thử thay thế DmiSerial bằng DmiSystemSerial, chạy lại dòng lệnh (không có dấu cách, đó là một lỗi đánh máy) và gặp lỗi tương tự.
Roger

Theo hiểu biết của tôi, điều đó chỉ có nghĩa là điều này chưa được thực hiện đầy đủ và bạn không thể làm theo cách này. Tại thời điểm này tôi sợ rằng tôi không còn hữu ích. Bạn nên vào diễn đàn VirtualBox và thử từ đó. Họ là những người xuất sắc và bạn sẽ nhận được câu trả lời sáng suốt hơn. Tuy nhiên tôi rất muốn biết kết quả cuối cùng, nếu bạn thật tử tế và đăng câu trả lời cho câu hỏi của chính bạn khi điều đó xảy ra. Tất cả tốt nhất.
Một chú lùn

3

Nếu bạn chạy lệnh đó và nhận được lỗi được tham chiếu bởi Roger, bạn cần sao lưu lệnh bằng cách chạy lệnh mà không có tham số cuối cùng (VALUE).

Điều này loại bỏ các mục gây ra lỗi.

Nếu bạn không chắc chắn về lệnh vi phạm cuối cùng là gì, hãy mở tệp ~~~ .vbox (XML) trong thư mục gốc của thư mục VirtualMachines của VM cụ thể và xem lại phần EXTRADATA.

Chạy lệnh gọi dòng lệnh đến vboxmanage là cách tốt nhất để sửa đổi những điều này. Chỉnh sửa tệp xml không dính 100% thời gian.


2

Câu trả lời được chấp nhận đã không cập nhật chính xác số sê-ri cho tôi; thay vào đó, tôi làm theo các bước sau để cập nhật thành công số sê-ri. Lưu ý hệ điều hành khách là macOS và máy chủ là windows.

LƯU Ý: Bạn phải đóng hộp ảo trước khi chạy lệnh này để được lưu.

  1. Mở dấu nhắc lệnh windows với tư cách quản trị viên
  2. cd "C:\Program Files\Oracle\VirtualBox\"
  3. VBoxManage.exe setextradata "VM NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "SERIAL_HERE" xem nguồn . *
    Không chắc tại sao lệnh pcbios không hoạt động nhưng efi đã làm.

LIÊN KẾT HỮU ÍCH

  • Nếu bạn gặp khó khăn trong việc tìm kiếm một serial hợp lệ, hãy làm theo hướng dẫn ở đây .
  • Nếu bạn không chắc tên vm của bạn đang chạy là gì VBoxManage.exe list vms.

1
Bạn cần "efi" và câu trả lời được chấp nhận bằng cách sử dụng "pcbios", điều này có thể là do bạn đang sử dụng (U) EFI và người đó đang sử dụng BIOS truyền thống. Việc bạn đang sử dụng EFI hay BIOS được xác định bởi hộp kiểm "Cài đặt -> Hệ thống -> Bo mạch chủ -> Bật EFI" trong VirtualBox.
ntc2

Ah có ý nghĩa! Cảm ơn @ ntc2
josh7weaver

1

Hãy thử sử dụng số sê-ri chứa chuỗi thập lục phân 20 byte:

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

( Tham khảo )

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.