Inicialização de múltiplos sistemas operacionais em Windows Vista ou 7

Motivação: ferramentas que permitam ao usuário, ao ligar seu micro, escolher qual o sistema operacional a carregar são fundamentais para a aceitação de sistemas operacionais de software livre, como o LINUX. LILO e GRUB têm protagonizado as principais, mais aceitas e robustas estratégias para fazer isso. Hoje em dia, ao instalarmos primeiro o Windows, e depois LINUX, temos a possibilidade de permitir que GRUB seja instalado no registro mestre do disco rígido em uso (MBR), dessa forma assumindo essa tarefa de gerenciamento de inicialização. GRUB têm sido cada vez mais confiável nesta tarefa. Entretanto, quando há necessidade de re-instalar o Windows, ele novamente escreve sua inicialização sobre a MBR e então nossa bonita e robusta solução via GRUB é desfeita. Portanto, tudo ficaria mais simples e robusto se o o próprio Windows fizesse esse gerenciamento. Esse documento trata exatamente sobre esse assunto.

Fundamentação: o Windows têm um gerenciador de boot residente, para que a inicialização de outras versões do próprio Windows seja possível. Nossa estratégia será iludir esse gerenciador, fazendo ele carregar uma imagem do setor de boot do LINUX, salva em um arquivo na raiz C: do Windows, dessa forma disparando GRUB ou LILO para continuar o processo de carga do LINUX. A partir do Vista, ficou mais difícil (e técnico, do que em XP) adicionar ítens no menu do gerenciador de boot do Windows. Deve ser feito usando bcdedit, a partir de shell de superusuário.

Cenários:

  1. Windows é instalado primeiro, Linux é instalado depois. Nesse caso, ao instalar o Linux, orientar GRUB (ou LILO) a instalar-se na partição principal (/) do próprio LINUX, e não na MBR.
  2. Windows foi reinstalado, fazendo um bom trabalho na tarefa de apagar o que havia na MBR, e por consequência não há como inicializar o Linux.

Será necessário:

  1. Possuir médio-avançado conhecimento de Linux, como administrador.
  2. Ter o primeiro disco (ou LIVE CD) da instalação do LINUX, ou alguma outra forma de abrir uma sessão (shell) Linux em seu micro.

Mãos à obra:

  1. Carregue o disco de seu Linux. Se é disco de instalação, pressione F1 (e NÃO enter) para ter opções de recuperação ao invés de entrar no processo de instalação; se estiver disponibilizado, selecione opção para montar seus sistemas de arquivo; voltando a esse menu, escolha opção para entrar na Console (Single Mode). Se é LIVE CD, use os recursos do sistema gráfico para montar os sistemas de arquivo existentes, depois abra um Terminal como root.
  2. Descubra onde foi montada a partição / do seu Linux em HD (uma boa dica é listar o arquivo em /etc/fstab). ( Não confunda com o / do Linux do CD que você está usando, que também seu próprio arquivo /etc/fstab ). Suporemos aqui a raiz de seu Linux está em /dev/hda5, e que nesse local está seu setor de boot. Se este não for o caso, mude as referências até o final deste documento, ou re-instale seu gerenciador, deixando seu setor de boot neste local.
  3. Use dd if=/dev/hda5 of=/linux.boot bs=512 count=1 para criar uma imagem de seu setor de boot Linux (será salva no arquivo /linux.boot)
  4. Transfira este arquivo /linux.boot para a raiz (C:\) de seu sistema Windows (se souberes como) ou para algum dispositivo que depois possa ser acessado pelo Windows (como um pendrive).
  5. Reinicie o computador e carregue o Windows; faça login e certifique-se que o arquivo linux.boot esteja na raiz C:\ do Windows.
  6. Precisamos agora executar o Prompt de Comando com permissões de Administrador. Para isso, no menu do Windows, selecione Todos os Programas, Acessórios, Prompt de Comando, mas não clique, use o botão direito do mouse para Executar como Administrador.

  7. Depois que você confirmar ao Windows que o Programa Prompt de Comando pode fazer alterações no computador, o sistema abrirá uma janela de comando.

  8. Usando bcdedit (use bcdedit /? para ajuda) podemos gerenciar entradas e configurações do menu de boot do Windows, como vemos abaixo. O valor da chave (string entre chaves retornado pelo sistema) varia caso a caso, portanto adapte. O cd é desnecessário para você, foi feito apenas para que todos os comandos coubessem em uma única linha, para melhor entendimento das instruções. Use a seta ↑ para não precisar digitar a longa chave mais do que uma vez !

  9. Pronto. No próximo boot, você poderá indicar ao Windows qual sistema operacional ele deve carregar. A opção padrão de carregamento, caso não seja trocada com bcdedit /default {8ff4a153-e0af-11e1-aafc-842b2b7b47b4}, é o sistema Windows mais recente.
JBC, 07Ago12.