Como encadear o GRUB2 para o Ubuntu 10.04 a partir do Truecrypt e seu bootloader (multi boot ao lado da partição do Windows XP)?

9

Eu quero que o Truecrypt peça senha para o Windows XP como de costume, mas com a opção padrão [ESC], ao selecioná-lo, ou seja, pela tecla Escape, quero que ele localize o grub para a instalação do Ubuntu (não criptografada).

Instalei o Windows XP no disco rígido de 120Gb de um netbook Toshiba NB100 e particionei para dar espaço ao Ubuntu 10.04 e instalei-o depois da instalação do Windows XP.

Quando eu criptografo o Windows XP, o Truecrypt sobrescreve a entrada do grub no registro mestre de inicialização (MBR), acredito (?) e não poderei mais escolher entre o XP e o Ubuntu. Então eu preciso restaurá-lo de volta.

Eu pesquisei bastante extensivamente por respostas em fóruns do Ubuntu e em outros lugares, mas ainda não encontrei uma resposta completa que cobre todas as eventualidades, cenários e mensagens de erro, ou eles falam de GRUB legado e não do GRUB2. O Ubuntu 10.04 usa o GRUB2.

Minha configuração:

Partições:

  1. Windows XP, NTFS (para ser criptografado com Truecrypt), 40Gb
  2. / boot (Ext4, 1Gb)
  3. Ubuntu swap, 4Gb
  4. Ubuntu / (root) - sistema de arquivos principal (20gb)
  5. compartilhamento NTFS, 55Gb

Eu sei que o gerenciador de boot Truecrypt substitui o GRUB ao inicializar, porque eu já tentei em outro laptop.

Eu quero que a tela do carregador de inicialização seja parecida com a usual:

Truecrypt

Digite a senha:

(ou [ESC] para pular)

senha é para WindowsXP e ao pressionar [ESC] para encontrar o Ubuntu grub para inicializar

Agradecemos antecipadamente por sua ajuda.

A área chave do problema é como instruir o Truecrypt quando a tecla de escape é pressionada, e como o Grub / Ubuntu pode ficar visível para o bootloader do truecrypt para encontrá-lo, quando a tecla esc é pressionada. Também sabendo como encadeamento.

    
por therobyouknow 23.08.2010 / 17:17

5 respostas

2

A resposta que vou aceitar para essa pergunta é minha. E essa resposta é aceitar que não posso * fazer isso e aceitarei uma das alternativas:

  1. Use um aplicativo de virtualização / VMware em execução no Windows XP (a partição da unidade do sistema criptografada) como o VirtualBox, o VMWare ou o Parallels. Então eu teria que inicializar no Windows, em seguida, executar este aplicativo e inicializar no Ubuntu a partir de dentro deste. Alguns comentaristas listam uma das desvantagens dessa abordagem, já que você deve inicializar duas vezes (primeiro XP, depois Ubuntu) para acessar o Ubuntu. No entanto, eu diria que, na verdade, tem uma vantagem sobre as botas comuns lançadas pelo BIOS, na medida em que você realmente tem os dois sistemas operacionais rodando ao mesmo tempo. Ótimo se você quiser, por exemplo, testar aplicativos ou páginas da Web rapidamente em várias plataformas.

  2. Use um disco rígido secundário ou um cartão SD (por exemplo, 8GB, 16GB) para o Ubuntu e selecione a partir da BIOS (única) inicialização para inicializar o Ubuntu a partir disso.

* Não posso = realmente significa que passei tempo suficiente (cerca de 6 horas ao longo de 3 dias, indo limpar a minha mente, procurando fóruns atualizados) e não estou preparado para gastar mais. Então eu não posso ser acusado de ser preguiçoso e depender dos outros. Can't = também significa: não pode no momento . Eu posso revisitar isso de novo.

Veja algumas referências que outras pessoas podem achar úteis:

  • link ("Inicialização dupla com Truecrypt 6.3a chainloading Grub2")
  • link ("Bug # 484102 no grub2 (Ubuntu):" O Grub2 não carrega corretamente o carregador TrueCrypt ")
  • link ("Chainloading TrueCrypt com o GRUB2")
  • link ("HowTo: Criptografar um sistema de inicialização dupla (Windows e Ubuntu ) ")
  • link ("Combine o gerenciador de inicialização TrueCrypt e o GRUB?")

Todos os itens acima oferecem algumas dicas, mas não uma resposta definitiva completa que cubra todas as eventualidades ou versões do grub.

Eu postei essa mesma pergunta aqui no superusuário, nos fóruns do ubuntuforums e do truecrypt:

Minha justificativa para fazer isso é que os leitores desses fóruns não necessariamente lerão outros fóruns, haverá alguma sobreposição, mas alguns conselhos vitais podem ser perdidos.

Pensamentos e aprendizagens de fundo (se estiver interessado!)

Na verdade, estou muito feliz em dizer que eu liguei para o dia e resolvi as alternativas, embora tenha me deixado levar pelo melhor e continue lutando para vencer e resolver minha resposta. Mas é um alívio aceitar que isso não pode ser feito (facilmente) e que existem alternativas. Agora eu posso continuar com coisas mais importantes! Eu já inicializo o Windows 7 e o Ubuntu 10.04 em um desktop sem criptografia - isso é um procedimento bastante simples. E com as alternativas eu não estou longe do que eu queria na minha resposta original. Na verdade eu não uso o Ubuntu em um notebook tanto quanto o Windows no momento, então não vou sentir tanto a falta dele. Eu também tenho um MacBookPro, então não sou mais um fã do Windows do que qualquer outro SO!

Aqui está uma razão pela qual eu gostaria que o TrueCrypt entrasse em Windows com o Ubuntu, da perspectiva de outro usuário:

link

"I have a work laptop used in Symbian and web development. I need to be able to boot both Vista and Linux. Due to client privacy, both operating systems must be crypted for the case of lost laptop. Even if I do not use Windows actively, its web browser data may contain stored password for client systems and it would be catastrophic to leak them accidentally."

O Grub2 é muito mais complexo que o grub, alguns podem argumentar necessariamente assim. Eu tive sucesso com o Ubuntu 10.04 (GRUB não GRUB2) com o Windows XP:

link

Eu digo mais complexo porque há mais arquivos de configurações agora presentes, espalhados por mais diretórios com referências entre eles, alguns são agora gerados por máquina e a edição deles é desaconselhada, por exemplo No menu de inicialização, há uma espécie de linguagem de script para aprender e interpretar scripts para serem executados quando uma alteração é feita. Está muito envolvido para mim no momento, e é apenas para lançar um sistema operacional, não um foguete para a lua!

    
por 31.08.2010 / 14:36
6

Isso é bem fácil. Particione seu disco, instale o Windows e o Ubuntu. Use o TrueCrypt na partição do Windows, que criptografará o Windows, mas deixará o Ubuntu descriptografado.

Você descobrirá que provavelmente poderá inicializar apenas no Windows e depois no gerenciador de inicialização TrueCrypt. Parece que você já está lá.

Digamos que seu disco seja sda , com o Windows em sda1 e o Linux em sda2 (isso é hipotético, parece que o seu não será sda2 ). O TrueCrypt será instalado no MBR em sda e sobrescreve o GRUB.

Use o CD de distribuição do Ubuntu para inicializar um CD ao vivo, em seguida, chroot no seu sistema pré-instalado. Assim:

sudo su -
mkdir -p /mnt/ubuntu
mount /dev/sda2 /mnt/ubuntu
mount --bind /proc /mnt/ubuntu/proc
mount --bind /dev /mnt/ubuntu/dev
chroot /mnt/ubuntu

Em seguida, instale o bootloader GRUB, mas para sda2 , em vez de sda .

grub-install /dev/sda2 --force

Então, quando você reiniciar, você ainda terá o carregador TrueCrypt pedindo uma senha para inicializar a partir de sda - > sda1 no Windows. Mas quando você pressionar ESCAPE, terá a opção de ignorar e inicializar diretamente no Linux, mas de sda2 em vez do MBR.

Mas espere

Antes de fazer isso, uma ressalva: se você obtiver grub-install errado e substituir o sda MBR ou se fizer uma atualização do kernel que aciona o GRUB para sobrescrever o MBR, você descobrirá que precisa reinstale o carregador de inicialização TrueCrypt para voltar ao Windows. Isso é um incômodo enorme se você não estiver preparado.

Eu sugiro que antes de mexer com o GRUB, você faça backup do material do gerenciador de inicialização TrueCrypt dentro do Linux. Dessa forma, quando você quebra o TrueCrypt e só pode entrar no Linux, você pode facilmente escrevê-lo de volta.

Faça o backup do seu carregador de boot TrueCrypt:

dd if=/dev/sda of=~/truecrypt.mbr count=1 bs=512
dd if=/dev/sda of=~/truecrypt.backup count=8 bs=32256 # Just in case

Restaurar o seu carregador de boot TrueCrypt (eu chamo isso de restore-truecrypt.sh ):

sudo dd if=~/truecrypt.mbr of=/dev/sda count=1 bs=512
sudo dd if=~/truecrypt.backup of=/dev/sda count=8 bs=32256
sudo grub-install /dev/sda2 --force

Eu tenho esses dois conjuntos de comandos em pequenos scripts de shell, que mantenho à mão. Quando eu acidentalmente zap meu bootloader (isso acontece) eu não quero estar pesquisando os comandos ou lendo man .

Ah, e uma palavra sobre compatibilidade. Quando eu escrevo "GRUB", eu quis dizer GRUB 1 ou 2. Pessoalmente, eu faço isso com o GRUB 2 no 10.04 e no Windows 7 ... mas funcionou bem com versões mais antigas do GRUB, Windows e Linux.

    
por 13.10.2010 / 21:48
1

Eu acho que acabei de resolver isso de forma suave. Minha situação original foi a seguinte: Eu tinha um netbook não criptografado (MSI U160) com uma partição do Windows 7 e uma partição do Ubuntu 10.10 (o grub2 do Ubuntu fica no MBR).

  1. Para instalar o Truecrypt, tive que reinstalar o Windows 7 em sua partição original.
  2. Então eu instalei o truecrypt (criptografando toda a partição do windows 7)
  3. Usando estas instruções que eu reinstalou o Ubuntu a partir de uma chave USB, colocando o carregador grub2 na partição do Ubuntu
  4. Após a reinicialização, recebo o gerenciador de inicialização TrueCrypt. Eu pressionei [ESC] e obtive uma lista de partições suportáveis, incluindo a do Linux (ela também mostra a partição do Windows, mas como isso é criptografado, a inicialização irá falhar).

Espero que isso seja o que você quer também.

    
por 23.06.2011 / 17:40
1

Eu passei os últimos 2 dias lutando contra isso e não consegui que nenhuma dessas respostas funcionassem para mim. O que eu finalmente consegui trabalhar, eu tenho documentado no meu blog . Aqui está a versão sumária (feita com o Debian wheezy; deve funcionar para o Ubuntu também. Outras distribuições podem precisar de pequenas modificações):

Essencialmente, você carrega em cadeia o GRUB2 para carregar o SYSLINUX, que por sua vez inicializa a imagem ISO do TrueCrypt Rescue, que permite inicializar no Linux.

  1. Instale o syslinux:

    sudo aptitude install syslinux
    
  2. Copie os arquivos no lugar:

    sudo cp /usr/lib/syslinux/memdisk /boot/
    sudo cp TrueCrypt\ Rescue\ Disk.iso /boot/truecrypt-rescue-disk.iso
    
  3. Determine o UUID da sua partição de inicialização:

    sudo blkid /dev/sda2
    

    A saída deve ser algo como isto:

    /dev/sda3: UUID="12345678-1234-1234-1234567890"

  4. Configurar o GRUB2:

    Adicione o seguinte a /etc/grub.d/40_custom :

    menuentry "TrueCrypt ISO boot" {
        insmod part_msdos
        insmod fat
        insmod ext2
        insmod search_fs_uuid
        search --fs-uuid --no-floppy --set=boot [UUID without quotes]
        linux16 ($boot)/memdisk iso raw
        initrd16 ($boot)/truecrypt-rescue-disk.iso
    }
    
  5. Re-carregue a configuração do GRUB2

    sudo update-grub
    

Observe que isso mostrará as opções de [F8] Repair sempre que você inicializar no Windows, pois estamos enganando o sistema que está inicializando a imagem do TrueCrypt Rescue CD a partir do disco rígido, em vez do método de inicialização TrueCrypt "normal". Mas parece uma pequena desvantagem para mim (e pode até ser considerado um recurso adicional!)

    
por 29.04.2013 / 08:02
-1

solution: talvez copiar o bootloader do truecrypt para um arquivo IMG a ser inicializado pelo grub? ou talvez use o Grub4Dos para carregar o Ubuntu?

    
por 24.08.2010 / 17:27