VirtualBox'ta BIOS seri numarasını nasıl değiştirebilirim?


17

VirtualBox her VM örneğinin BIOS seri numarasını 0 olarak ayarlar. Bazı BIOS ayarlarını değiştirmek mümkün görünüyor, ancak seri numarasına doğrudan başvuran hiçbir şey görmedim.

Herkes bunu yapmanın bir yolunu önerebilir mi?


1
Bunu yapmak için özel bir nedeniniz var mı?
Jared Harley

1
Evet. Bilgisayarları benzersiz şekilde tanımlamak için BIOS seri numarasını kullanan bir PC envanter yazılım aracım var. Fiziksel donanım ve diğer satıcıların VM'leri için iyi çalışır, ancak birden fazla VirtualBox VM'sinin nasıl işleneceğini bilmez.
Roger

cevabımı yakaladığınız hatayı yansıtacak şekilde düzenledi.
Bir Cüce

Bu konuda bir haberin var mı Roger? Nasıl ortaya çıktığını bilmek isterdim.
Bir Cüce

Nasıl yapacağımı hiç belirlemedim. VirtualBox forumlarında birkaç yanıt aldım, ancak işe yarayan hiçbir şey bulamadım. Cevabımla karşılaşırsam, buraya bir güncelleme ekleyeceğimden emin olacağım.
Roger

Yanıtlar:


22

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

Gerçekten bunun için ayrıntılı bir cevabı var.

Bunu yaparak bios seri numarasını ayarlayabilirsiniz:

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

Aldığınız hata, dizinin dize değeri olarak ayarlanmamasından kaynaklanır, saf bir numaranız varsa, bunu şöyle eklemelisiniz string::

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

Not: VM'nizin EFI ürün yazılımını kullanacak şekilde yapılandırılması durumunda, pcbios'u tuşlarda efi ile değiştirmeniz gerekir.


3
Bu talimatların BIOS kullanan sistemler için olduğunu unutmayın . Sisteminiz EFI kullanıyorsa - "Ayarlar -> Sistem -> Anakart -> EFI'yi etkinleştir" - yukarıdaki komutlarda "pcbios" yerine "efi" yazmanız gerekir.
ntc2

8

Harici ayarlardan değil. Ancak koddan sonra kendiniz oluşturabilirsiniz:

Kaynak dosya: DevPcBios.cpp
Satır: 1014READCFGSTR("DmiSystemSerial", pszDmiSystemSerial, "0");

"0" değerini istediğiniz değere değiştirin.


EDIT: Görünüşe göre VBoxManage setextradata kullanabilirsiniz . Geçmişte diğer yapılandırmalar (bios ile ilgili değil) için kullandım ve bu ayarı test etmedim. Bir deneyin:

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

Aksi takdirde ... kaynak kodu düzenleme ve oluşturma işlemlerine geri dönün.

İyi şanslar.


1
Hmm. Teşekkürler - çok yakın, ama henüz orada değil. Bunu denedim: "c: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" setextradata "Demo Server" VBoxInternal / Devices / pcbios / 0 / Config / DmiSerial "123" Çalışıyor gibiydi, ama VM'yi başlattığımda Bu hata iletisini aldım: Sanal makine Demo Sunucusu başlatılamadı. Aygıt pcbios aygıtı için geçersiz yapılandırma (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES). VM oluştururken bilinmeyen hata (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES). Makine tanımının silinmesi ve yeniden oluşturulması düzeltildi, bu yüzden zarar gelmedi. Sanırım gerçekten yakınsın - başka önerin var mı?
Roger

hmm ... yorum kutusuna komutunun birebir kopyasını / yapıştırmasını yaptın mı? Çünkü / Config ve / DmiSerial arasında bir spave yok. Ne olursa olsun bunu daha fazla keşfedeceğim. Sanırım VirtualBox kurmam gerekecek. Şimdiye kadar sadece notlarıma güveniyordu :)
Bir Cüce

Bah! Bu başkanım. İlgili kod satırını gönderiyorum ve daha sonra eski notlarıma karşı kontrol etmiyorum. / DmiSerial değil. 1.5 sürümü ile şimdi arasında yeniden adlandırıldı. Şuan / DmiSystemSerial
Bir Cüce

Tüm yardımlarınız için teşekkürler, bir Cüce. DmiSerial DmiSystemSerial ile değiştirmeyi denedim, (bir yazım hatası olan boşluk olmadan) komut satırını yeniden ve aynı hatayı aldım.
Roger

Bildiğim kadarıyla, bunun henüz tam olarak uygulanmadığı anlamına gelebilir ve bu şekilde yapamazsınız. Bu noktada korkarım ki faydalı olmaktan vazgeçiyorum. VirtualBox forumlarına gitmeli ve oradan denemelisiniz. Onlar mükemmel millet ve daha bilinçli bir cevap alırsınız. Bununla birlikte, bu kadar nazik olursanız ve bu olduğunda kendi sorunuza bir cevap gönderirseniz, sonuç sonucunu bilmek isterim. Herşey gönlünce olsun.
Bir Cüce

3

Bu komutu çalıştırır ve Roger tarafından başvurulan hatayı alırsanız, komutu son parametre (VALUE) olmadan çalıştırarak komutu geri almanız gerekir.

Bu, hataya neden olan girişi kaldırır.

Son rahatsız edici komutun ne olduğundan emin değilseniz, ilgili VM'nin VirtualMachines klasörünün kökündeki ~~~ .vbox (XML) dosyasını açın ve EXTRADATA bölümünü inceleyin.

Komut satırı çağrısını vboxmanage için çalıştırmak, bunları değiştirmenin en iyi yoludur. Xml dosyasını düzenlemek zamanın% 100'ünü yapmaz.


2

Kabul edilen cevap seri numarasını benim için doğru şekilde güncellemedi; bunun yerine, seri numarasını başarıyla güncellemek için bu adımları izledim. Konuk işletim sistemi macOS ve ana bilgisayar windows olduğunu unutmayın.

NOT: Sanal komutu kaydetmek için bu komutu çalıştırmadan önce kapatmanız gerekir.

  1. Windows komut istemini yönetici olarak açın
  2. cd "C:\Program Files\Oracle\VirtualBox\"
  3. VBoxManage.exe setextradata "VM NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "SERIAL_HERE" Kaynağını görmek . *
    pcbios komut eser yoktu ama efi yaptım emin değilim neden.

FAYDALI BAĞLANTILAR

  • Geçerli bir seri bulmakta sorun yaşıyorsanız buradaki talimatları uygulayın .
  • Eğer vm adınızın ne olduğundan emin değilseniz VBoxManage.exe list vms.

1
Eğer "efi" ve "pcbios" kullanarak cevap kabul gerekiyor, bunun nedeni büyük olasılıkla (U) EFI ve bu kişi geleneksel BIOS kullanıyor. EFI veya BIOS kullanıp kullanmadığınız, VirtualBox'taki "Ayarlar -> Sistem -> Anakart -> EFI'yi etkinleştir" onay kutusu tarafından belirlenir.
ntc2

Ah mantıklı! Thanks @ ntc2
josh7weaver

1

20 bayt onaltılık dize içeren bir seri numarası kullanmayı deneyin:

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

( Referans )

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.