Não é possível alterar os dados do disco rígido no VirtualBox

3

Usando o Windows 10, eu tenho uma caixa virtual rodando o cientifix linux. Agora preciso emular um disco rígido "real" e, como o google, os fóruns e o superusuário me ensinaram, isso pode ser alcançado da seguinte forma:

C:\Program Files\Oracle\VirtualBox>vboxmanage setextradata "Testinstall" "VBoxInternal/Devices/piix4ide/0/Config/PrimaryMaster/FirmwareRevision" "ISD000081"

C:\Program Files\Oracle\VirtualBox>vboxmanage setextradata "Testinstall" "VBoxInternal/Devices/piix4ide/0/Config/PrimaryMaster/SerialNumber" "83CJ0015"

C:\Program Files\Oracle\VirtualBox>vboxmanage setextradata "Testinstall" "VBoxInternal/Devices/piix4ide/0/Config/PrimaryMaster/ModelNumber" "INTEL SSD1602CW"

.... quais são os comandos exatamente como entraram por mim.

No entanto, a saída de hdparm -I /dev/sda ainda lista o estoque "VBOX HARDDISK" com seus dados associados.

Coisas que eu tentei:

  • Verifique o controlador de disco. Está definido para o PIIX4. Eu também tentei setextradata para piix3, apenas no caso, mas o resultado não muda.
  • Como vboxmanage oferece muito pouco em termos de verbosidade, decidi bongar meu comando, para ver se havia alguma maneira de detectar erros óbvios:
    • Digitando o nome da máquina incorretamente: "TestInstallaoeu". Lança um erro, indicando que o nome da máquina que eu digitei originalmente está correto
    • Digitando o parâmetro para alterar: "VBoxInternal/Bogus/Parameter" "BogusData" . Isso não produz um erro, indicando que pode haver um erro de digitação no meu comando (mesmo que eu não consiga localizar um).
  • Eu tentei tanto com como sem envolver os comandos em doublequotes como acima, mas isso não parece fazer diferença, já que não há espaços em branco de qualquer maneira.

Não sei como proceder. Tudo o que li indica que deve funcionar como está, mas minhas experiências são em contrário.

EDIT 1:

Dados adicionais solicitados (parcialmente).

  • Versão do Virtualbox: 5.1.4 r110228
  • Sistema operacional do host: Windows 10
  • SO convidado: Scientific Linux 6.7 (kernel 2.6.32)

Nenhum dos metadados no diretório da máquina virtual parece conter os dados que eu inseri. Verificou o arquivo .vbox e o arquivo .vbox-prev .

A entrada .vbox do disco rígido:

  <HardDisks>
    <HardDisk uuid="{808541e0-6629-47cd-96b3-7ff6021d9dcc}" location="TestDisk.vdi" format="VDI" type="Normal"/>
  </HardDisks>

A entrada .vbox para o controlador de armazenamento:

<StorageController name="IDE" type="PIIX4" PortCount="2" useHostIOCache="true" Bootable="true">
        <AttachedDevice passthrough="false" type="DVD" hotpluggable="false" port="1" device="0"/>
        <AttachedDevice type="HardDisk" hotpluggable="false" port="0" device="0">
          <Image uuid="{808541e0-6629-47cd-96b3-7ff6021d9dcc}"/>
        </AttachedDevice>
      </StorageController>

Uma coisa que notei no arquivo é que há restos do comando bogus-eu digitei:

<ExtraDataItem name="VboxInternal/Bogus/Parameter" value="asdf"/>

... pelo menos alguns dos meus comandos são como pretendidos.

O .vbox na sua totalidade pode ser visto aqui: Link do Pastebin

NB: Percebi agora que, em uma tentativa de anonimizar os dados, distorcei o nome da máquina e o nome do disco nesse post e na pasta de papel vinculada. Ao ler qualquer referência a "TestDisk" e "Testinstall", lembre-se de que essas são etiquetas de substituição que, na verdade, são nomes idênticos. "Testinstall" e "TestDisk" são, portanto, intercambiáveis neste caso.

Editar 2: Depois de tentar várias combinações, descobri agora um conjunto de comandos que realmente fazem parte do arquivo .vbox . Muito provavelmente um erro de digitação me impediu de fazer isso antes. Os comandos foram:

C:\Program Files\Oracle\VirtualBox>vboxmanage setextradata Testinstall "VboxInternal/Devices/piix4ide/0/Config/PrimaryMaster/ModelNumber" "INTEL SSD1602CW"

C:\Program Files\Oracle\VirtualBox>vboxmanage setextradata Testinstall "VboxInternal/Devices/piix4ide/0/Config/PrimaryMaster/FirmwareRevision" "1602CW.1.3"

C:\Program Files\Oracle\VirtualBox>vboxmanage setextradata Testinstall "VboxInternal/Devices/piix4ide/0/Config/PrimaryMaster/SerialNumber" "1602CW1800200926"

No entanto, a saída de hdparm -I /dev/sda ainda diz que o disco é do modelo "VBOX HARDDISK". Em outras palavras, a questão permanece a mesma.

    
por Jarmund 09.09.2016 / 09:24

2 respostas

0

Acredito que você entendeu mal o significado da opção setextradata/getextradata . De acordo com o Manual do VBox ,

These commands let you attach and retrieve string data to a virtual machine or to a VirtualBox configuration (by specifying global instead of a virtual machine name).

O caso de uso apresentado é o seguinte:

# VBoxManage setextradata Fedora5 installdate 2006.01.01
# VBoxManage getextradata Fedora5 installdate
    VirtualBox Command Line Management Interface Version 5.1.6
    (C) 2005-2016 Oracle Corporation
    All rights reserved.

    Value: 2006.01.01

Aqui installdate é uma palavra-chave associada à seguinte string, 2006.0.1.01 ; invocar a palavra-chave retorna a string associada. Em outras palavras, setextradata/getextradata é uma maneira de burning na VM algum tipo de dado cuja recuperação pode ser útil no futuro.

Não tem nada a ver com emulat [ing] um disco rígido "real" . AFAIK, não existe essa opção no VBox; se você pensa o contrário, você pode fornecer algumas referências?

Do que você escreve, os comandos que você mencionou foram tirados de alguém que anexou à sua VM alguns rótulos detalhando as propriedades do HDD em que a VM estava sendo executada. Seguindo a sintaxe dada pelo manual, as strings "ISD000081", "83CJ0015", "INTEL SSD1602CW" foram atribuídas a uma VM chamada TestInstall , sob as palavras-chave (longas) representado pelos caminhos de arquivo. Se você tiver uma VM chamada TestInstall, essas sequências estarão disponíveis consultando a VM com os comandos fornecidos acima, por exemplo

vboxmanage getextradata "Testinstall" "VBoxInternal/Devices/piix4ide/0/Config/PrimaryMaster/FirmwareRevision"

deve retornar a string

 "ISD000081"

Você pode tentar verificar se o que eu disse está correto, ou você pode simplesmente abrir o arquivo xml que descreve a VM geralmente chamada TestInstall.vbox , e você encontrará uma nova linha como essa,

<ExtraDataItem name="keyword" value="character_string"/>

que mostra novamente o que os comandos setextradata / getextradata são usados.

    
por 16.09.2016 / 10:39
-1

Cenário

Acredito que você tenha algum software na VM que verifica se ele está sendo executado em um disco rígido específico e o faz lendo sua marca e modelo. Assim, o software será executado na máquina real, mas se recusará a fazê-lo na máquina virtualizada.

Equivalentemente, você não quer que o software perceba que está sendo executado em uma máquina virtual, e o software verifica se há indicadores como o disco rígido com uma marca de fábrica de "VBOX".

Se este cenário estiver correto , sua abordagem também estará correta - faça com que o VirtualBox relate as mesmas informações da máquina real. Isso é feito usando uma ramificação especial da árvore de propriedades ExtraData.

Se não estiver correto , e você quiser emular outra propriedade física, possivelmente do disco rígido (tempo de busca, latência ou outra coisa), então a resposta do @ MariusMatutiae é a correta - o que você está fazendo não é a maneira de fazê-lo, e simplesmente não funcionará.

Funciona!

Você provavelmente está usando a sintaxe VBoxManage incorreta, ou talvez esteja se referindo ao controlador errado (por exemplo, você não está usando o PIIX4, mas, digamos, AHCI). Você ainda pode definir extradados do PIIX4 mesmo quando usar AHCI ou PIIX3, exceto que, é claro, eles não afetarão a máquina.

Acabei de experimentar uma das minhas VMs, que usa o disco rígido AHCI (tudo em uma linha):

D:\Programmi\Oracle\VirtualBox>vboxmanage setextradata
    "Aladdin-Clone" "VBoxInternal/Devices/ahci/0/Config/Port0/ModelNumber" 
    "HITACHI HTD723216L9SA61"

e eu obtive (eu só mudei o número do modelo, mas não tenho razão para acreditar que as outras duas chaves não funcionariam)

/dev/sda:

ATA device, with non-removable media
        Model Number:       HITACHI HTD723216L9SA61
        Serial Number:      VB35affeb2-744b8198
        Firmware Revision:  1.0
Standards:
        Used: ATA/ATAPI-6 published, ANSI INCITS 361-2002
        Supported: 6 5 4

Atualizar

Existe um script Python completo no github, " antivmdetection ", que permite personalizar um Máquina VirtualBox para que se assemelhe a outro. Você pode executar o script em uma máquina para salvar os dados e ele irá gerar um script para modificar uma VM ... ou você pode olhar para o código-fonte e levantar os comandos de lá. Observe que há mais de um comando para definir a marca e o modelo da unidade, dependendo do controlador .

    
por 17.09.2016 / 16:43