Como posso inicializar duas vezes um Windows 7 e um Ubuntu 11.10 criptografados com TrueCrypt quando ambos estão instalados separadamente em unidades físicas diferentes?

Como posso inicializar duas vezes um Windows 7 e um Ubuntu 11.10 criptografados com TrueCrypt quando ambos estão instalados separadamente em unidades físicas diferentes?

Como posso inicializar duas vezes um Windows 7 e um Ubuntu 11.10 criptografados com TrueCrypt quando ambos estão instalados separadamente em unidades físicas diferentes?

Eu tenho dois discos rígidos. hd0 tem uma instalação do Windows 7 criptografada por TrueCrypt com o bootloader TrueCrypt. hd1 tem uma instalação Ubuntu 11.10 com o bootloader grub2.

A saída de fdisk -lé a seguinte:

  Device Boot      Start         End      Blocks   Id  System   
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   976771071   488282112    7  HPFS/NTFS/exFAT

  Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048   968517631   484257792   83  Linux
/dev/sdb2       968519678   976771071     4125697    5  Extended
/dev/sdb5       968519680   976771071     4125696   82  Linux swap / Solaris

Posso inicializar com sucesso em qualquer sistema operacional alterando a ordem de inicialização no BIOS, mas não quero ter que fazer isso repetidamente. Minhas opções são:

  • Adicione o bootloader TrueCrypt à configuração do grub2 e carregue-o em cadeia com o grub2.
  • Inicialize no bootloader TrueCrypt e, ao pressionar escape para sair da entrada de senha, inicialize no grub2.

Tive dificuldade com a opção 1, pois ao clicar em escape, o TrueCrypt não encontra outra partição inicializável. Pelo que entendi, ele deve procurar outros discos inicializáveis.

Também tive dificuldade com a opção 2, e com a seguinte dentro /etc/grub.d/40_custom(e depois executando update-grub2)...

menuentry "Windows 7" {
set root=(hd0,1)
chainloader +1
}

(Eu também tentei root=(hd0,0)e root=(hd0,2))

... Recebo erros sem essa partição. Também li várias fontes que sugerem que não é possível fazer isso com o grub2 sem montar e inicializar no ISO do disco de recuperação TrueCrypt antes de inicializar o Windows. Isso é necessário?

O que estou fazendo de errado?

Responder1

Posso ajudá-lo em uma solução alternativa, é bastante complicado, então certifique-se de entendê-lo.

Primeiro: Backup completo Segundo: Requer dois discos físicos, com apenas um não consegui

Vá para a parte complicada, o processo de ordem de sequência de inicialização:

  • O BIOS inicializará a partir de um HDD (normalmente o primeiro)
  • Então coloque aí o bootloader GRUB2
  • Esse GRUB permitirá que você inicialize partições no primeiro disco ou inicialize a partir do segundo disco (essa é a parte complicada)
  • Se quiser inicializar o Linux, basta inicializar de outra partição no mesmo disco
  • Se quiser inicializar o TrueCrypt Bootloader, basta dizer para inicializar a partir do segundo disco, não de uma partição

Tendo isso em mente, como arquivar isso? Fácil, siga estes passos:

  • Coloque apenas um HDD vazio no PC
  • Configure o BIOS para inicializar a partir dele (só por enquanto)
  • Instale o Windows e o TrueCrypt nele
  • Diga ao TrueCrypt para criptografar tudo (apenas um HDD está presente)
  • Reinicie, teste a inicialização do Windows
  • Desligue corretamente
  • Adicione um segundo disco
  • Crie nesse segundo HDD algumas partições
  • Um para /boot (para onde irá o GRUB2)
  • O resto como desejar para Ubuntu/, SWAP, etc...
  • Configure o GRUB2 para permitir a inicialização do Ubuntu e carregar em cadeia o segundo disco rígido completo (cuidado para não informar nenhuma partição, apenas o disco rígido completo)
  • Reinício
  • Complicado: diga ao BIOS para inicializar a partir do segundo HDD (como você diz, deixe) para sempre desde agora
  • Teste se a inicialização executa o GRUB2
  • Teste se a cadeia GRUB2 carrega corretamente primeiro o bootloader do HDD (carregador TrueCrypt), mas não coloque a senha nem deixe o Windows inicializar, apenas reinicie quando a senha for solicitada.
  • Reinicie se não for feito... e teste a opção GRUB2 Linux... não inicializará porque o Ubuntu ainda não está instalado, mas não carregará o TrueCrypt, então você vê que funciona
  • Instale o Linux com muito cuidado especial... não deixe que ele altere nenhuma tabela de partições... apenas instale-o no segundo disco usando as partições existentes... e quando solicitado pelo bootloader diga para instalar o Grub ou Lilo, etc... na partição Linux, não no HDD MBR.

Com isso você obterá este esquema:

  • HDD0 - MBR com TrueCrypt, o resto para Windows
  • HDD1 - partição MBR e /boot com GRUB2, mais uma partição para / (seu Ubuntu) dentro da qual haverá outro carregador Grub, Lilo ou Grub2 em /boot, partições extras conforme desejar

O truque é:

  • Diga ao TrueTrypt para criptografar, pois ele conhece um HDD completo com seu próprio bootloader.
  • Inicialize o GRUB2 a partir de outro HDD diferente (o BIOS precisa ser capaz de inicializar a partir do segundo HDD)

Então, ao inicializar, é isso que acontece:

  • BIOS lê sua configuração no CMOS
  • BIOS veja para inicializar a partir do segundo HDD
  • BIOS lê segundo disco rígido MBR
  • GRUB2 está carregado
  • GRUB2 mostra o menu: Boot Windows / Boot Ubuntu
  • Se você selecionar Ubuntu, o GRUB2 carregará outro Grub, lilo, etc. dentro da partição raiz do Ubuntu, esse outro gerenciador de inicialização carregará seu Linux Ubuntu
  • Se você selecionar o Windows, o GRUB2 será carregado em cadeia no primeiro HDD, agindo como se o BIOS inicializasse a partir do primeiro HDD

Desta maneira:

  • TrueCrypt não sabe nada sobre o segundo disco para inicializar, não depende disso
  • GRUB2 e Linux não sobrescreverão/não mexerão em nada nesse primeiro disco
  • BIOS inicializará a partir do segundo disco rígido

Espero que esteja suficientemente claro.

Coisas em mente para arquivar isso:

  • Primeiro, faça alguns testes com um VirtualBOX antes de fazê-lo em uma máquina física real, para se familiarizar com o processo
  • Em segundo lugar, anote em um papel as etapas que você está seguindo à medida que as executa, apenas para não esquecer de nada.

Agora devo dizer que isso pode ser feito sem abrir o PC... com os dois discos sempre conectados.

Imagina isto:

  • HDD0 sem partição
  • HDD1 sem partição
  • Instalando o Windows apenas no HDD0 normalmente, mas não particione o HDD1
  • Instale o TrueCrypt e diga para criptografar o HDD0 completo, ele não fará nada com o HDD1
  • Teste tudo corre corretamente
  • Inicialize a partir de um LiveCD como SystemRescueCD, crie partições no HDD1
  • Certifique-se de criar uma partição dedicada para /boot apenas para GRUB2, não relacionada ao seu Linux, com 512 MB você também poderá colocar SystemRescueCD.iso nele e configurar o GRUB2 para fazer um loop de bootload a partir do arquivo iso (veja SystemRescueCD web para isso)
  • Instale o GRUB2 na partição HDD1 MBR e HDD1 /boot
  • Configure o grub.cfg de tal GRUB2 para inicializar a partir da raiz do Linux no HDD1 e um carregamento em cadeia para o HDD0 (não para qualquer partição no HDD0)
  • O teste GRUB2 inicializa todas as opções corretamente, apenas o teste de carga da cadeia está correto ... ao inicializar o Windows e o TrueCrypt solicitará a senha, apenas reinicie, não perca tempo para inicializar o próprio Windows
  • Instale o Ubuntu na partição raiz HDD1 e diga-lhe para instalar seu próprio grub na partição raiz HDD1, onde seus principais arquivos Linux Ubuntu vão, para que não toque na partição HDD1/boot

Esse é o complicado!!!

A ideia: usar outro meio para fazer o menu de inicialização real, onde você pode selecionar o que inicializar.

Pessoalmente, no meu netbook, tenho esta cadeia:

  • /boot com menu GRUB2 com opções de inicialização: WindowsVista, Windows7, Linux Ubuntu 32bits, Linux Ubuntu 64Bits, SystemRescueCD.iso, memtext86+, disquete, ... etc
  • Se eu selecionar Linux Ubuntu 32Bits... ele carregará outro GRUB2 diferente com opções: Voltar (inicializar a partir do HDD MBR), Kernel X, Kernel X debug, Kernel Y, Kernel Y debug, etc...
  • Se eu selecionar Linux Ubuntu 64Bits... ele carregará outro GRUB2 diferente com opções: Voltar (inicializar a partir do HDD MBR), Kernel X, Kernel X debug, Kernel Y, Kernel Y debug, etc...

A ideia é essa... ter no processo de boot mais de um GRUB!!

Por que mais de um? Fácil... caso o sistema atualize o Grub ele não toca naquele que uso como menu de boot, simples e eficaz.

Agora, o problema do TrueCrypt ... se ele criptografa a partição do sistema, ela precisa estar no MBR, não permite de outra forma (exceto RecoveryCD).

Portanto, se o TrueTrypt criptografa uma partição do sistema Windows, é melhor deixar o disco completo

Ei! O Linux também pode ser instalado no mesmo disco do Windows para desempenho... e dados no outro...

Primeiro HDD com:

  • /dev/sda -> Carregador TrueCrypt (o MBR)
  • /dev/sda0 -> Windows criptografado por TrueCrypt (alguns GBs)
  • /dev/sda1 -> Linux Ubuntu / (alguns GBs) conterá outro Grub, uma subpasta chamada boot e todos os arquivos do sistema, etc...

Segundo HDD com:

  • /dev/sdb -> carregador GRUB2 (o MBR) irei referenciá-lo como "BootMenu"
  • /dev/sdb1 -> /boot para GRUB2 "BootMenu" (512 MB se você quiser no arquivo SystemRescueCD.iso)
  • /dev/sdb2 -> partição NTFS para DADOS vistos no Windows e Linux (se não criptografados) como um

Espero que você consiga.

Eu tinha explicado isso pensando que você sabe como inicializar a partir de um CD, configurar BIOS, criar partições, instalar GRUB2, etc...

Isto não é para novatos. Possui etapas técnicas muito avançadas e não é um HowTo...

A ideia é apenas inicializar a partir de outra mídia, essa outra mídia (um CD, disquete, etc) conterá um menu de inicialização que permite selecionar a inicialização a partir do primeiro disco rígido ou de uma partição, etc... em outras palavras, GRUB2.

Espero que você ache útil.

Responder2

Parece que a solução mais simples para isso é usar o gerenciador de inicialização do Windows para inicializar no Grub, e não o contrário. O Grub parece incapaz de inicializar em uma partição criptografada do Windows, mesmo com o arquivo --force.

Existe uma ferramenta chamada EasyBCD (gratuita para uso não comercial) que irá configurar corretamente o bootloader do Windows para inicializar no Grub depois de inserir sua senha TrueCrypt. Agora tenho minha unidade do Windows como o primeiro dispositivo de inicialização no BIOS e o Grub como o item de inicialização padrão no gerenciador de inicialização do Windows. Você pode facilmente tornar o Windows o padrão.

Responder3

Você pode simplesmente entrar no menu de inicialização e escolher o disco rígido a partir do qual deseja inicializar.

No meu caso, faço isso pressionando F11quando as mensagens POST são mostradas. Pode ser uma Fchave diferente no seu caso.

informação relacionada