Instalando o Windows em um HD virtual

— Em: Artigos, Dicas e tutoriais
Print
Share

Há uns dias atrás conheci, através de um post no Blog Acadêmico da Microsoft Brasil, o Innovation Lab, que, como o post diz, é um “portal com diversos treinamentos gratuitos em tecnologias Microsoft”. Baixei alguns módulos, mas acabei vendo que em alguns deles é necessária a instalação de aplicativos, fazer e desfazer configurações… E eu não queria mexer na minha instalação atual do Windows (Server 2008 R2, a saber). Normalmente, em um caso desses, me recomendariam duas coisas: instalar o Windows em uma máquina virtual ou criar uma nova partição no HD e instalar o Windows nela.

Então, vamos analisar as possibilidades. Instalar em uma máquina virtual significa que o sistema não vai conseguir aproveitar bem o hardware da máquina “real”, mas ela é bem flexível: é possível fazer backups facilmente, e quando não precisar mais, basta apagar um arquivo (o HD virtual). Porém, em geral, máquinas virtuais são lentas. Particionar o HD já resolve esse problema que aparece nas máquinas virtuais, mas gera outro: partições no HD não são flexíveis. É muito mais fácil criar um arquivo e excluí-lo do que criar uma partição e excluí-la. E agora? Decisão difícil, não é?

O Windows 7 resolve esse problema de uma maneira muito bacana, na minha humilde opinião. É possível criar HDs virtuais (.vhd), instalar o Windows e dar boot a partir deles. Mas o que são HDs virtuais? Resumidamente, esses arquivos VHD são arquivos que simulam um disco rígido utilizando um arquivo. Então, resolvi experimentar esse novo recurso do Windows 7. :D

Citando o Scott Hanselman:

NOTA: Isto é um recurso avançado e você pode perder um dedo. Nenhuma garantia expressa ou implícita. Existem alguns workarounds nos *tubes mas esse recurso só funciona no Windows 7 e Windows Server 2008 R2. Tenha medo.

Então, vamos ao que interessa. Antes de tudo, certifique de ter todos os requisitos abaixo:

  • Uma instalação do Windows 7 ou do Windows Server 2008 R2 funcional.
  • DVD do Windows 7 (Enterprise ou Ultimate, somente) ou um DVD do Windows Server 2008 R2 (qualquer versão).
  • Script Install-WindowsImage, que pode ser baixado nessa página, no link “Install-WindowsImage.ps1”

E mais um aviso, você precisa de direitos de Administrador para realizar todos os passos. E todos os programas citados devem ser iniciados com direitos de administrador.

Precisamos antes qualquer coisa, criar o HD virtual, anexá-lo ao sistema e formatá-lo. Para isso, clique com o botão direito em Computador na área de trabalho ou no menu Iniciar e escolha “Gerenciar”.

Abrindo o Gerenciamento do computador

Na sidebar à esquerda, selecione “Gerenciamento de disco”, se ele não estiver selecionado, e na sidebar direita, clique em “Mais ações” e então em “Criar VHD” (a janela pode ser um pouco diferente no Windows 7, mas as opções são iguais).

Criar VHD no Gerenciador de disco

Na tela que é aberta, selecione o local do arquivo, o tamanho e o formato. Nesse exemplo, criei um VHD com 20GB, que é expandido automaticamente, ou seja, o tamanho do arquivo em disco vai aumentar conforme o conteúdo. É um pouco mais lento, porém economiza espaço em disco.

Definir local, tamanho e tipo do disco

Pressionando OK o VHD será criado e anexado ao gerenciador de discos. E não se assuste caso algum driver seja instalado. :) Isso é necessário para o Windows reconhecer o VHD. Agora vamos “inicializar” o disco. Para isso, clique com o botão inverso do mouse no disco adicionado (com um ícone cor ciano, ou água, como preferir), como na imagem abaixo, e selecione “Inicializar disco”.

Inicializar disco VHD

Na janela aberta, só pressione OK. Então, clique com o botão inverso do mouse no espaço marcado como “Não alocado” ao lado do disco e escolha “Novo Volume Simples…”.

Criar partição primária

Assim, o Assistente para Novas Partições Simples será iniciado. Não há segredo algum no assistente, basta clicar algumas vezes em “Avançar”, atribuir uma letra de unidade (aqui eu selecionei a unidade Z), informar um rótulo do volume (se desejar) e clicar em “Concluir”. Assim, você verá um novo disco no “Computador”.

VHD montado no Computador

Então, vamos instalar o Windows nesse HD. Só precisamos fazer uma coisa antes: ir nas propriedades daquele script que baixamos (no meu caso, coloquei em C:\Install-WindowsImage.ps1) e clicar no botão ”Desbloquear”. Por questões de segurança, o Windows “bloqueia” a execução do arquivo baixado da Internet.

Desbloqueando arquivo

Existem várias maneiras de realizar esse procedimento, mas serei mais prático, e vou usar o (bastante desprezado, diga-se) Windows PowerShell. O PowerShell é um aplicativo de scripting disponível para Windows XP, Server 2003, Vista, vem como componente opcional do Windows Server 2008 e já está pré-instalado no Windows 7 e Server 2008 R2. Basicamente, é um prompt de comando turbinado via .NET Framework.

Então inicie o PowerShell como Administrador. Para isso, abra o Menu Iniciar, digite powershell no campo de pesquisa e na lista de programas, clique em Windows PowerShell com o botão inverso do mouse e escolha “Executar como administrador”.

Abrir PowerShell como Administrador

Precisamos alterar a diretiva de execução de scripts temporariamente, pois o PowerShell por padrão bloqueia a execução de scripts (obrigado, Lucas, por ter me lembrado disso!). Para isso, execute o comando e confirme a operação:

Set-ExecutionPolicy RemoteSigned -scope Process

Pra instalar o Windows, vamos usar o script Install-WindowsImage. E ele precisa saber qual é a versão do Windows que queremos instalar. Então, com o DVD no drive (aqui é o drive D), é só executar o comando:

C:\Install-WindowsImage.ps1 -WIM D:\sources\install.wim

Ah, e lembre-se, altere se necessário o caminho do script e a unidade de DVD no comando acima. Aqui, com o DVD do Windows 7 RC, apareceu assim:

Detecção das versões do Windows no Install-WindowsImage

Certo, como eu quero instalar o Windows 7 Ultimate (só as versões Enterprise  e Ultimate suportam o boot em VHD), agora é só executar o comando abaixo:

C:\Install-WindowsImage.ps1 -WIM D:\sources\install.wim -Apply -Index 5 -Destination Z:

O comando é auto-explicativo, mas não custa nada explicar. Ele “aplica” a versão do indíce 5 (a coluna “Index” da imagem acima) à unidade Z, que é o VHD que criamos anteriormente. O processo demora um pouquinho

Instalação do Windows no VHD

Agora só nos resta configurar o boot. Considerando que o VHD esteja montado na unidade Z, é só executar:

Z:\Windows\System32\bcdboot Z:\Windows

Depois disso, temos o dual boot com a instalação real e a virtual configurado. E com o Windows 7 do VHD já instalado no gerenciador de boot, podemos mudar a descrição do Windows no boot e mudar o sistema selecionado por padrão. Para isso, chame o comando bcdedit no PowerShell. Você verá algo como:

Exemplo de saída do bcdedit

O conteúdo do retângulo amarelo da imagem vou chamar de {identificador}. Agora ele está como {default}, o que significa que esse é o item selecionado por padrão no gerenciador de boot. Quando adicionamos o Windows 7 do VHD ao boot, ele se torna o sistema padrão, ou seja, se não selecionarmos outro sistema no boot, essa nossa nova instalação será inicializada automaticamente.

Para mudar a descrição que aparece no gerenciador de boot (desnecessário, a menos que você goste de ver dois “Windows 7” na lista), basta fazer algo como:

bcdedit /set "{identificador}" description "Windows 7 - VHD"

Onde {identificador} é o código que identificamos anteriormente.

E se você quiser deixar a instalação “antiga” como padrão no boot (e considerando que estamos nela ainda), é só executar o comando:

bcdedit /default "{current}"

Feito isso, agora é só reiniciar o computador, no gerenciador de boot, escolher o recém instalado Windows 7 e realizar aquelas configurações básicas de pós-instalação do sistema, como a criação de contas de usuário, configuração de rede, drivers…

Windows Boot Manager mostrando o VHD

Desfazendo tudo

Se você já fez o que queria e quer limpar tudo isso que fizemos, é só fazer duas coisas:

  • Desanexar o VHD (se ele estiver anexado) no Gerenciador de discos.

desanexar-vhd

  • Deletar o arquivo VHD onde o Windows foi instalado.
  • Executar o comando bcdedit para descobrir o identificador do disco virtual.
  • Executar o comando bcdedit /delete "{identificador}" /cleanup, lembrando de substituir o {identificador} pelo identificador que encontramos antes.

Bom, é isso aí. Espero que seja bastante útil para vocês também, já que tudo indica que um beta do Windows Live Messenger 2010, e talvez até do Windows 7 SP1, será liberado na CES 2010, que acontece agora no início do ano. Sem dúvida alguma essa é uma boa maneira de testar softwares em fase de teste sem afetar a instalação atual.

Artigo adaptado do manual de uso do script Install-WindowsImage, que descobri através do blog do Rafael Godinho.

Related Posts with Thumbnails
Processing your request, Please wait....
Tags: , , ,

Quem escreveu?

Gravatar

Felipe B. Zorzo. Paranaense, 19 anos. Estudante de Sistemas de Informação, desenvolvedor e entusiasta da plataforma .NET Framework.
Posts deste autorMande um e-mail

  • Existe uma forma de fazer esse mesmo procedimento, através do Dvd de instalação do Windows 7.
    Eu vi isso num forum, não sei se pode postar ou nao link, mas lá vai:
    http://forums.techarena.in/guides-tutorials/117...
    Pelo guia, parece ser possível instalar a partir de uma máquina com Windows XP apenas.
  • Eder
    Gostaria de dar os parabéns aí pela dica. Testado e rodando...
    Achei que o desempenho seria inferior, mas nao notei diferença alguma, detecta todos os drivers como se fosse a maquina fisica, e o disco principal fica visível como se fosse outro disco.
    Muito prático mesmo.
    Se existisse um hack pra poder instalar tbem o XP aí ficaria show.
    Mas no mais está perfeito.
    Abraço
  • É pra isso que existe o XP Mode, mas é claro que não vai ser a mesma coisa, afinal, o XP mode é uma "maquina virtual oficial da MS"
  • andrkrumns
    Valeu, muito bom esse tutorial, vou executar.
  • jeancfs
    Olá meu querido Felipe, gostaria de saber e essa técnica necessita de virtualização assistida ou não, ou seja, se o processador é obrigatório ter a tecnologia de Virtualização? NO mais agradeço a dica e Sucesso!
  • Felipe Zorzo
    Não, jeancfs, o processador não precisa de suporte a virtualização, porque isso não é uma virtualização "completa" do hardware. A única diferença entre uma instalação normal e essa instalação demonstrada no post é que o Windows é instalado em um arquivo, que simula um HD. :)

    Aliás, por não se tratar de virtualização, podemos utilizar todos os recursos do hardware do PC, como por exemplo, aceleração gráfica por hardware (que é um dos grandes desafios da virtualização).
  • Ótimo post, agora estou na procura para virtualizar o velho caminhão de guerra Windows XP.
    Se ficarem sabendo de novidades, peço que compartilhem, e se possível até criar um novo post explicativo de como fazer. Meus parabéns e muito obrigado por este post.
  • Toothless
    Infelizmente comigo não deu certo, depois que crio o arquvo VHD, ele simplesmente não aparece na lista de discos. O que será que pode ser ? Tenho 7 partições em meu micro distribuídas em 4 HD's e uso Win 7 Ultimate.
  • Felipe Zorzo
    Experimente ir no Gerenciador de discos novamente, como nessa imagem aqui, mas em vez de escolher "Criar VHD" clique em "Anexar VHD". Aponte o caminho do VHD que você criou anteriormente e verifique se agora ele aparece na lista de discos. ;)
  • Toothless
    Disfarça....como eu criei uma partição relativamente grande (35GB), o sistema demora um pouco pra criá-la e mostrá-la na lista de discos, eu achei que apareceria instantâneamente...agora deu certo rsrsrs....obrigado !
  • Felipe Zorzo
    Ah, os detalhes... Que bom que funcionou. :)
  • Toothless
    Eu uso o Win7 e queria testar o Server 2008 R2 que também baixei da minha conta no Dreamspark, mas usando os comandos acima não deu certo, dá erros na execução do script. Saberia me dizer um lugar que ensine passo a passo do mesmo modo que você ensinou mas com o Server 2008 ?
  • Felipe Zorzo
    Qual é o erro que acontece? Note que você precisa trocar o "Index" do comando, já que é o DVD do Windows Server.

    Execute "C:\Install-WindowsImage.ps1 -WIM D:\sources\install.wim" e veja qual é o valor da coluna Index da linha correspondente ao "Windows Server 2008 R2 Standard", e depois execute:

    C:\Install-WindowsImage.ps1 -WIM D:\sources\install.wim -Apply -Index índice_que_você_encontrou -Destination unidade_onde_esta_montada_o_VHD
  • Toothless
    Felipe, obrigado pela ajuda, agora deu certo. Como estou com um braço quebrado e engessado, estou tendo que digitar tudo com o esquerda, no mínimo eu estava digitando alguma coisa errada rsrsrs...Valeu !!!
  • Vericcimo
    Boa a dica, mas fui testar aqui, e recebo a seguinte mensagem de erro do PowerShell, o arquivo não pode ser carregado porque a execução de scripts foi desabilitata neste sistema.
  • Lucas
    O mesmo aconteceu comigo. Descobri que para desbloquear a execução de scripts do PowerShell, é só você usar esse comando:

    Set-ExecutionPolicy Unrestricted

    E dar "S". Acho que você não deve usar scripts no PowerShell, mas tome cuidado com os não confiáveis.
  • Felipe Zorzo
    Lucas, realmente havia esquecido desse detalhe do PowerShell.

    Atualizei o post com o comando "Set-ExecutionPolicy RemoteSigned -scope Process". Ele vai permitir a execução dos scripts temporariamente. E depois quando o PowerShell é fechado a configuração volta ao padrão. ;) Valeu!
  • Toothless
    Infelizmente comigo não deu certo, depois que crio o arquvo VHD, ele simplesmente não aparece na lista de discos. O que será que pode ser ? Tenho 7 partições em meu micro distribuídas em 4 HD's e uso Win 7 Ultimate.
  • Vericcimo
    Valeu Lucas, desbloqueou, amanhã vou testar a instalação.
  • Lucas
    Acho que a melhor parte desse tutorial nem foi a de instalar o Windows em um VHD e dar boot nele. Foi esse script do PowerShell, que permite instalar o Windows em dois comandos. Com ele, consegui instalar o Vista em outra partição. Depois foi só usar o EasyBCD pra arrumar o boot e pronto :D

    Valeu pela dica, Felipe!
  • Felipe Zorzo
    :)

    Aliás, a parte de configuração do boot com o bcdboot e o bcdedit também funciona nesse caso. Mas claro, o EasyBCD facilita um pouco as coisas.
  • É de artigos assim que eu gosto, muito bem explicativo e com imagens, perfeito, parabéns...

    Abraço;

    http://www.truquesemacetes.com.br
  • Muito bom...

    Sempre usei o VMWare Ace e o VirtualBox e recentemente o Hyper-V no Windows Server R2 e já tinha ouvido falar de virtualização nativa do Windows 7 e Windows 2008 R2 (Windows Virtual PC)... Agora essa de usar o VHD direto, inclusive para boot...

    Simplesmente demais...


    Valeu pela dica.
  • RafaelCa
    Caramba gostei desta dica já testei e aprovei.
    No DVD do Windows 7 vem todas as versões do mesmo? Pois quando instalei usando meu DVD do Windows 7 Professional, no fim instalou o Ultimate.
    Até Mais
  • Felipe Zorzo
    Rafael, só as versões Enterprise e Ultimate podem ser instaladas em um VHD. Talvez seja por isso que você não conseguiu instalar o Professional.
  • Tem como instalar outras versões do Windows nesse VHD (como XP, Vista e 2000?)
  • Felipe Zorzo
    Talvez até exista algum hack por aí, mas, oficialmente, só o Windows 7 e o Windows Server2088 R2 estão prontos para o boot através de VHD. ;)
  • robsonejs
    Posts como esse são sempre muito bem vindos!
  • Putz... era tudo o que eu precisava hoje! Esse post salvou uma máquina virtual rodando! hahaha... Qualquer dia tem que ter um jeito de por um linux ai, nem que seja um script shell rodando com alguns programas ajudando a formatar em ext4!
  • recurso interessante.

    agora, por curiosidade Felipe, pq vc usa o Win Server 2008 R2 e não o Win 7?
  • Felipe Zorzo
    Porque estudantes tem acesso ao Windows Server 2008 R2 original de forma gratuita através do DreamSpark. ;)

    Além disso, uso ele porque ainda não comprei o Windows 7. Mas pretendo "voltar" pro Windows 7 assim que possível. No Window Server sinto falta de alguns recursos mais domésticos do Windows 7, como o Backup do Windows (tá, isso tem no Server também, mas no Windows 7 é bem mais prático) e alguns aplicativos não instalam no Windows Server, por exemplo, o Microsoft Security Essentials.
  • Está aí o único motivo pelo qual eu não uso o Server 2008 R2. O Microsoft Security Essentials não funciona nele, e nenhum outro antivírus gratuito.
  • Agail Sanches
    Boa dica, mais como alguns falaram o bicho msm é quando der pra instalar um linux experto ai nesse VHD
  • Luiz Alberto Franco
    muito bom! poso precisar disso um dia....
  • amievil
    Muito bom mesmo... conheço bastante as ferramentas de virtualização, nisso hyperv e vmware. Mas atachar um VHD no windows 7 eu desconhcia. valeu.
  • Ótimo artigo!

    ...

    Quem me dera ter no mínimo 3GB livres por aqui... :)
  • Emerson P. Gomes
    Ótimo artigo! Muito interessante e útil, principalmente para quem gosta de testar "coisas" novas como eu.
  • Seria legal se desse para emular um Linux ali.
  • /diego
    Eu amaria se tivesse alguma macumba pra colocar linux em uma partição virtual
  • Felipe Zorzo
    Ei Deigo, Bruno e todos os outros que também querem instalar o Linux em um HD virtual. Vocês podem usar o WUBI (Ubuntu-only) ou o UNetbootin (que suporta dezenas de distros).

    Claro que não tem toda essa integração com o Windows, mas é uma alternativa. ;)
blog comments powered by Disqus
site statistics