Um hypervisor como o VirtualBox pode ser usado para iniciar um SO virtualizado que também seja inicializável diretamente?

61

Esta questão é bastante teórica:

Suponha que eu tenha um PC com dois sistemas operacionais diferentes em duas partições diferentes: OS1 em sda1 e OS2 em sda2. É de alguma forma possível configurar um programa como o VMWare ou o Virtualbox no OS1, que acessa o sda2, o inicializa e executa o OS2? Por outro lado, o OS2 também deve ser inicializável diretamente.

Eu percebo que o OS2 emulado seria muito mais lento e provavelmente ninguém realmente usaria essa configuração, mas acho isso muito interessante.

    
por Wauzl 26.10.2015 / 13:46

6 respostas

58

É possível , sim, e não necessariamente precisa ser mais lento, já que hoje em dia não é mais emulação , é virtualização - a maioria das CPUs suportam virtualização assistida por hardware (VT-x e outras), mas mesmo sem elas, o VirtualBox tem muitos truques para tornar as VMs virtualizadas por software executadas rapidamente.

Em qualquer caso, não será mais lento do que inicializar uma VM antiga. Pode até ser mais rápido (devido ao uso de uma partição bruta em vez de uma imagem de disco fragmentada).

Mas eu não tenho certeza absoluta sobre como fazê-lo no VirtualBox - Eu acho que você deve criar um arquivo .vdi especial usando vboxmanage que aponta para a partição real? Além disso, não tenho idéias sobre como fazer o bootloader funcionar em tal situação.

Apesar de eu ter depurado vários problemas de inicialização no Linux, executando uma cópia somente leitura do sistema operacional atual , usando qemu-system-x86_64 -enable-kvm -hda /dev/sda -snapshot -monitor stdio .

    
por 26.10.2015 / 14:03
28

qemu permitirá que você use dispositivos de bloco como /dev/sda2 , etc. como discos rígidos virtuais. O VMWare também funciona. Não tenho certeza sobre o Virtualbox.

Quando você inicializa o /dev/sda2 em uma VM, ele terá um efeito semelhante, como se você tivesse tirado um disco rígido e inicializado em um computador diferente com hardware diferente. Se o sistema operacional puder lidar com essa mudança, você deverá estar OK executando o sistema operacional em uma VM e de forma nativa. O Windows lhe dará problemas, é claro, e o Linux provavelmente tolerará isso muito bem.

Você pode atenuar possíveis problemas, tornando o hardware virtual compatível tanto quanto possível com o hardware físico em seu sistema - embora, é claro, você tenha que especificar menos memória RAM. De particular importância é especificar o mesmo tipo de controlador de disco (IDE, SCSI, etc.).

    
por 26.10.2015 / 14:17
19

É completamente possível, na verdade, eu costumava fazer isso!

Eu tinha uma partição / disco (esqueci qual) com o Windows um com o Linux, acho que foi nos dias de Windows XP (na verdade, isso durou por um tempo). Foi uma boa maneira de ter acesso aos dois conjuntos de dados sem usar uma carga de espaço em disco com instalações diferentes.

O único problema que me lembro de ter foi que eu precisava configurar dois perfis de hardware diferentes no XP. Ficou muito confuso quando se inicializou nos errados.

Não sei como os processos de ativação atuais responderiam à troca de hardware. Isso pode causar alguns problemas ... (mas se você só inicializar o Windows como uma máquina física e tiver Linux como VM / ou físico, isso resolveria isso)

Se bem me lembro, fiz isso com a estação de trabalho VMware. Isso definitivamente suporta a inicialização de um disco bruto. Tenho certeza que a versão do MS faz. Não tenho tanta certeza sobre as VMs Linux, mas ficaria muito surpreso se não fosse.

    
por 26.10.2015 / 14:16
8

Curiosamente, para aqueles que executam o VMware Fusion em um Mac, com uma partição de bootcamp do Windows, é possível iniciar uma máquina virtual que é executada na partição do bootcamp:

VMware Fusion allows you to launch an already-installed Boot Camp partition without affecting its ability to boot natively. This gives you the ability to access a Boot Camp partition from both inside the Mac OS using Fusion, and by rebooting and launching Windows directly.

Note, no entanto:

You may be prompted to reactivate Windows because different hardware is recognized by the operating system.

Fonte: VMware - Iniciando sua partição do Boot Camp no VMware Fusion

    
por 27.10.2015 / 06:19
7

Eu fiz isso . É bastante útil, mas existem algumas limitações e configurá-lo não é trivial.

  • O SO nativo ou VM deve ser tolerante com o hardware em que é executado. A maioria das distros Linux não se importa e apenas roda em qualquer coisa que você inicialize, desde que a arquitetura da CPU corresponda. Não é tão suave com o Windows. Você também pode enfrentar problemas de ativação / licenciamento.

  • No Windows, você não pode inicializar o SO em uma máquina virtual enquanto sua partição estiver montada no host. Isso não é grande coisa, pois nesse caso você provavelmente gostaria de inicializar o Linux dentro do Windows e o Windows não suporta ext filesystems de qualquer maneira.

  • Configurar bootloaders é complicado. Você precisa de configuração de inicialização separada para inicializar na VM e para inicializar nativamente. Eu usei o Grub4DOS / NeoGrub como primeiro estágio bootloader quando inicializar nativamente, então eu era capaz de carregar o bootloader do Windows ou inicializar no Ubuntu. A VM tinha uma unidade pequena (alguns MB) montada com prioridade mais alta que a unidade principal. Essa unidade continha o GRUB2 instalado manualmente que eu usei para inicializar o Ubuntu dentro da VM.

  • A instalação incomum do gerenciador de inicialização requer uma atualização cuidadosa. Por exemplo, atualizar o GRUB ao executar o Linux nativamente poderia quebrar sua cadeia de bootloaders. A atualização dentro da VM exige que você a instale manualmente na partição de inicialização.

por 28.10.2015 / 00:21
0

Isso é possível com bastante facilidade. Se você usar discos rígidos separados para cada instalação!

Dê uma olhada aqui, por exemplo: link - ou pesquise no site do VirtualBox (que está no momento) para essas palavras-chave.

Eu o uso para poder acessar minha partição Linux quando faço algum trabalho com o Windows, como coisas da Adobe ou outras coisas que não são executadas tão bem sob o Wine ou Virtualização do Windows no Linux.

Além disso, muitas vezes eu acesso a minha torre remotamente - e todo o meu disco rígido Linux é criptografado, enquanto o meu disco rígido do Windows não é e só tem dados não sensíveis nele. Então eu inicio o Windows (a entrada do Windows no GRUB é pré-selecionada) entre no Teamviewer, inicie o Virtualbox e depois meu disco rígido do Linux.

Nesta direção - Windows - > Virtualbox - > outro HD com Linux - > é possível que seja bastante simples, por causa da super detecção de hardware, que o Linux, ou seja, o Ubuntu, suporta.

Na outra direção, você vai acabar com uma bagunça. O Windows não gosta de hardware em constante mudança .. Ele pode atrapalhar o seu sistema, não inicia de todo, ou mesmo se acontecer, talvez diga que sua licença não é mais válida porque muitas mudanças de hardware acontecem com muita frequência.

Dito isso, você deseja manter o Windows como uma entrada de inicialização pré-selecionada no GRUB, mas realmente atente para o fato de selecionar a entrada correta no GRUB quando for executada no Virtualbox. Se você tiver problemas com defasagens remotamente, aumente seu tempo limite de inicialização no GRUB para estar seguro.

Espero que tenha ajudado você:)

    
por 02.04.2016 / 10:13