Como usar uma partição real com o Windows 7 instalado, em um virtualbox vm?


37

Meu Ubuntu 12.04 está instalado /dev/sda5 e o Windows 7 está ativado /dev/sda1. Quando estou executando o Ubuntu, gostaria de usar o Virtualbox para executar o Windows 7 em uma VM. A partição do Windows 7 tem 1 TB e está meio cheia, ou seja, grande, então não quero copiá-la para um disco rígido virtual.

Li que é possível usar um disco rígido real para uma VM do Virtualbox, mas as várias instruções que encontrei diferem umas das outras e não consigo fazê-lo funcionar. Alguém sabe uma maneira de fazê-lo funcionar no Ubuntu 12.04 e Virtualbox 2.1.12_Ubuntu r77245 (o último Ubuntu instalou os repositórios)?

Poste como ele funciona para você, pois quero tentar novamente qualquer método que possa funcionar.


Por que sua partição MSWIN 1TiB? Embora não seja uma solução completa: se possível, mova tudo o que não precisa estar lá (dados ... arquivos de mídia?) E redimensione a partição, o que facilitará qualquer abordagem. Se você quiser seguir a rota da imagem, limpar e reduzir a partição deixará espaço suficiente para criar uma imagem completa da nova partição menor. :-)
Alastair

Respostas:


27

O comando que você deseja é

VBoxManage internalcommands createrawvmdk -filename Win7.vmdk -rawdisk /dev/sda -partitions 1

Isso criará um arquivo de disco virtual especial do VMDK (Win7.vmdk), que na verdade é um ponteiro para a partição do disco host /dev/sda1.

Em teoria, você pode usar isso como o arquivo de disco para uma VM executar diretamente da partição de disco real, mas ...

  • (a) Eu nunca tentei isso, então não sei o quão confiável é
  • (b) você pode ter problemas com a Ativação do Windows, dependendo da sua chave de licença e se o Windows decide que o 'hardware' detectado mudou significativamente

Obrigado. Eu nem pensei no problema de ativação. Isso com certeza acabará com meus planos.
314 Jazz

11
Além disso, mesmo que funcionou (o que duvido), você pode danificar seriamente o Windows ao executar a inicialização e a VM.
Takkat 26/07/12

@ ubnewbie2: Eu provavelmente tentaria isso apenas como um experimento e / ou ao usar algum tipo de chave de Licenciamento por Volume e provavelmente a veria como uma operação unidirecional; ou seja, você teria mais dificuldades em tentar revertê-lo. Na verdade, eu executo o Windows 7 e uso uma VM do VirtualBox com o Ubuntu, geralmente no modo de tela cheia, para que o PC pareça estar apenas executando o Linux e fique mais confiante em executar o Ubuntu a partir de uma partição de disco bruto.
StarNamer 26/07/12

Para sua informação, já tentei isso ao contrário. Eu precisava mudar uma máquina executando o Ubuntu para o Win 7, então libertei algum espaço redimensionando partições e criando um novo e instalei o Win 7. Isso substituiu o grub2 pelo bootloader do windows, então instalei o VirtualBox e criei uma nova VM, com um disco virtual mínimo para reservar, que usa as partições 'brutas' existentes para executar. Funciona bem, embora um pouco lento devido à memória reduzida e vendo apenas 1 núcleo da CPU (em vez de 4).
StarNamer

-partitions no final, uma lista das partições que você deseja que a caixa virtual "veja" (não a partição # que você deseja usar) VBoxManage internalcommands --helpmostrará outras coisas que você pode fazer com os comandos internos, bem como o significado das opções.
boatcoder

16

Sim, você pode fazer isso com o createrawvmdkcomando interno , que não criará uma imagem de disco inteira, mas um ponteiro para o hardware real.

Existem duas maneiras de fazer isso

  • A. Imagem completa do disco (de / dev / sdb)

    sudo VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb
    
  • B. Imagem da partição

    Como o @StarNamer mostrou, você pode usar apenas uma ou poucas partições.

    Para criar imagem de apenas uma partição (/ dev / sda1):

    sudo VBoxManage internalcommands createrawvmdk -filename sda1.vmdk -rawdisk /dev/sda -partitions 1
    

    Para criar uma tabela de partição personalizada que mapeará / dev / sda2 e / dev / sda1 nessa ordem:

    sudo VBoxManage internalcommands createrawvmdk -filename sda2_1.vmdk -rawdisk /dev/sda -partitions 2,1
    

A diferença mais marcante será que a imagem completa do disco usará o carregador de inicialização e a tabela de partição exatamente como estão no seu disco; portanto, em teoria (eu fiz isso anteriormente apenas no qemu), você poderá configurar o sistema operacional a partir da sua máquina virtual. E pela minha experiência limitada, posso dizer que a imagem completa do disco funcionará exatamente como qemu -hda /dev/sdb.

Nota: Se você estiver usando um usuário para acessar o disco, precisará adicioná-lo a diske vboxusersgrupos, por exemplo

sudo usermod -aG disk,vboxusers ubuntu

certifique-se de fazer login novamente ou reinicie o computador.

Leitura adicional:


"a imagem completa do disco usará o carregador de inicialização e a tabela de partição exatamente como estão no seu disco" - em que cenário, o primeiro (/ dev / sdb) ou o segundo (com as partições especificadas)?
naught101

11
Além disso, o VirtualBox precisa ser executado como root, caso contrário, você começa Permission problem accessing the file for the medium '/home/naught101/sda2_windows.vmdk'
naught101

3
"Além disso, a caixa virtual precisa ser executada como raiz". Na verdade não, você precisa ser um membro do disco do grupo. Muito mais seguro do que rodar a caixa virtual como raiz.

2
Aqui está o que funcionou para mim com o Ubuntu 16.04 como sistema host e o Windows 10 como convidado: criei o arquivo .vmdk usando sudo VBoxManage internalcommands createrawvmdk -filename sda1_2_3.vmdk -rawdisk /dev/sda -partitions 1, 2, 3. Dessa forma, incluí a partição do Windows, bem como a partição do carregador de inicialização EFI. Segui as instruções da shilka em virtualbox.org/ticket/7702 e adicionei cloverefiboot. Funciona como um encanto!
dzmanto

Você também pode prefixar o comando VirutalBox (e VBoxManage) sudo -g diskpara conceder apenas o acesso à caixa virtual, mas não a todos os outros processos.
Jan Hudec

0

Existe uma opção de disco chamada "Imutável"; portanto, em teoria, se você selecionar esta opção para o vmdk vinculado ao seu disco bruto, ela não deverá alterar a partição original.

Para fazer isso, abra o "Virtual Media Manager" encontrado em "Arquivo", selecione sua imagem e clique em "Modificar" (você deve certificar-se de que esta imagem não esteja anexada a nenhuma máquina, caso contrário, você receberá um erro). Agora você pode definir o tipo de mídia como "Imutável".

Eu não testei isso, no entanto. Se alguém o fizer (é claro com uma configuração de teste), seria bom relatar aqui.

Alguém tem considerações que falam contra essa idéia?


0

Há vários anos, eu tenho rodado o Windows e o Ubuntu com inicialização dupla, e a Partição Ubuntu também é inicializada no Windows VirtualBox para aproveitar os recursos da tela de toque que o Linux ainda não domina.

Eu o configurei com instruções semelhantes às abaixo;

As novas máquinas podem manipular simultaneamente os dois sistemas operacionais melhor do que os sistemas únicos em máquinas antigas.

Desvantagem: você precisa salvar as instruções usadas para a instalação, caso uma atualização desative a conexão do VirtualBox (meu problema atual).


0

Depois de muitas tentativas, acabei com uma solução limpa e arrumada:

  1. Inicialize a partição do Windows que você deseja virtualizar
  2. Faça o download do utilitário Disk2VHD da Sysinternals
  3. Se você possui uma partição UEFI , siga estas instruções
  4. Crie uma imagem VHD (não VHD X ) da sua partição C:, recuperação, UEFI (se houver) e o que mais você desejar
  5. Volte ao Linux, abra o VirtualBox e crie uma VM de acordo com as especificações do sistema operacional Windows
  6. Anexe a essa VM o disco VHD criado no ponto 4
  7. É isso aí
  8. Lucro

Solução de problemas no caso de UEFI:

  1. Nas configurações da VM, no VirtualBox, marque a opção "Ativar EFI" na guia Sistema
  2. Se você ficar preso no EFI Shell, execute o seguinte comando:

    fs0:\EFI\Boot\bkpbootx64.efi
    

Algum comentário sobre o voto negativo?
garlix

Vejo isso acontecer alguns dias atrás, mas não me lembro de lhe dar votos negativos, pelo menos não de propósito. eu votaria de bom grado, desculpe.
Userfuser 11/11

0

O VirtualBox tem muitas desvantagens. Deixo alguns anos atrás. Agora eu uso o qemu-kvm e, além de outros recursos, ele pode ser configurado para usar o dispositivo de disco da mesma maneira que a imagem do disco. O truque é configurar o virtual "-drive if = sd, id = sda, formato = raw, arquivo = / dev / sda".

Mas! Você deve primeiro fazer algumas alterações enquanto executa o MSW no estado original, antes de tentar virtualizá-lo: consulte a pasta "Drivers" para encontrar os drivers adequados e a árvore "Registry" para os drivers ativados e configurados para serem execute antes que o sistema inicie como:

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\msahci] "Start"=dword:00000000

Você precisa procurar um driver apropriado em relação à máquina virtual, se não quiser ver o BSOD.

É difícil dizer quais drivers ativar. A melhor maneira é instalar um sistema de teste primeiro e, em seguida, procure a chave de registro nele com o "Iniciar" = dword: 00000000 e defina-a na máquina bare metal. Também é recomendável verificar o endereço MAC no bare metal para colocá-lo na configuração qemu. Você pode impedir que o sistema solicite nova ativação.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.