
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.