Instalando outro Linux em um disco criptografado

7

Recentemente, recebi um SSD para substituir o disco rígido do meu laptop e decidi alterar e usar a criptografia "full disk".

Eu criei uma pequena partição não criptografada para /boot e uma grande partição LUKS criptografada em que usei o LVM para criar 5 volumes lógicos em um grupo de volumes:

  • Um para instalar o Fedora ( lv_fedora ).
  • Um para troca ( lv_swap ).
  • Um para outro sistema operacional Linux ( lv_os2 ).
  • E dois para dados ( lv_data1 e lv_data2 ).

Eu instalei o Fedora em lv_fedora como meu primeiro sistema operacional sem problemas e posso inicializá-lo a partir do menu do GRUB, mas agora eu não sei como instalar outro sistema operacional Linux (Linux Mint 17) no disco criptografado e fazer GRUB2 do Fedora detectá-lo e iniciar este sistema operacional também.

Eu tentei duas abordagens diferentes. Em ambos os casos, iniciei ubiquity , o instalador do Linux Mint, com a opção --no-bootloader , para evitar que o Mint instalasse o gerenciador de inicialização. E em ambos os casos, para iniciar a instalação, desbloqueei anteriormente a partição LUKS do gerenciador de arquivos da imagem do LinuxMint Live para poder selecionar o volume lógico lv_os2 correspondente como destino de instalação. Agora:

  • Primeiro, tentei instalar o Linux Mint em uma única partição atribuída a / in lv_os2 . A instalação foi bem sucedida. Do Fedora, eu executei grub2-mkconfig -o /boot/grub/grub.cfg para atualizar as entradas do GRUB (é isso que tenho feito a vida toda quando uso disco não criptografado). O GRUB detectou que o Linux Mint estava presente e incluiu as entradas correspondentes no menu de inicialização. O problema é que eu não consegui inicializar a partir dessas entradas depois.
  • Então eu pensei que talvez [1] era devido às imagens do kernel sendo criptografadas na pasta boot na partição do Linux Mint. Talvez o GRUB 2 precisasse que esses arquivos estivessem em uma partição não criptografada, assim como quando eu instalei o Fedora pela primeira vez (usei uma partição /boot unencrypted simplesmente porque era a configuração recomendada). Então, desta vez fiz um backup da partição /boot do Fedora (por via das dúvidas) e reinstalei o Linux Mint, mas usei a partição não criptografada como /boot também, para que as imagens do kernel pudessem ser copiadas para esse diretório e, talvez, inicializadas depois da instalação. A instalação foi bem sucedida e os arquivos "extras" adicionados em /boot pelo Linux Mint não substituíram nenhum dos arquivos do Fedora, então pelo menos o Fedora estava funcionando e eu não precisei usar o /boot bakcup. Eu então iniciei o Fedora e executei grub2-mkconfig -o /boot/grub/grub.cfg novamente. Desta vez foi ainda pior. O GRUB misturou entradas criando, por exemplo, uma entrada para o Fedora (segmentação lv_fedora ) carregando uma imagem do kernel do Linux Mint. Tentei modificar manualmente essas entradas, mas sem sucesso.

Aposto que estou fazendo algo errado. Existe uma maneira melhor de instalar um sistema operacional Linux secundário em um volume já criptografado e permitir que o SO Linux principal manipule o gerenciador de inicialização? (atualizando suas entradas do GRUB para permitir a inicialização do SO secundário também)

[1] : como você pode ver, estou apenas tentando e aprendendo, mas não tenho um entendimento profundo sobre o assunto.

    
por Peque 12.02.2015 / 10:15

2 respostas

1

De tudo que eu li, parece que ter o initramfs "embutido no kernel e carregado em um estágio inicial do processo de inicialização". 1

Para o Mint, você terá que configurar /etc/crypttab e, em seguida, usar update-initramfs . 2

Pelo que entendi, isso deve servir como um guia para a criação da imagem initramfs após a instalação do Mint, que você parece já ter instalado. Espero que isso cubra tudo, mas certifique-se de pesquisar cada parte sozinho.

Live boot Mint , mount e chroot na partição em que você instalou o Mint. 3

Crie e configure /etc/crypttab para desbloquear na inicialização. 4 Aqui é onde você adiciona o caminho para o seu lvm onde o Mint está instalado, o qual, baseado na sua pergunta, deve estar localizado em /dev/mapper/lv_os2 ou /dev/<big encrypted LUKS>/lv_os2 5

A maioria dos exemplos que vi de /etc/crypttab tem a seguinte aparência:
root /dev/mapper/lv_os2 none luks . Os quatro campos, respectivamente, são: de sua escolha, caminho para o lvm onde você instalou o Mint, none definindo a senha a ser inserida manualmente durante a inicialização do sistema e luks força o modo LUKS, mas não parece necessário.

When no mode is specified in the options field and the block device contains a LUKS signature, it is opened as a LUKS device; otherwise, it is assumed to be in raw dm-crypt (plain mode) format.

Configure /etc/fstab para montar o /dev/mapper/<name> que você acabou de criar em /etc/crypttab como o diretório raiz / . Algo como: /dev/mapper/<name> / <fs_vfstype> <fs_mntops>
Veja man fstab .

Depois de ter /etc/crypttab e /etc/fstab configurado a seu gosto, você pode usar update-initramfs para criar / atualizar a imagem de inicialização.

Veja man update-initramfs . Pode ser melhor usar a versão específica do kernel exibida por uname -r em Mint. O comando deve ser parecido com update-initramfs -u -k 3.11.0-26-generic , exceto substituir a versão do kernel por sua própria.

Neste ponto , você poderá inicializar no Fedora novamente e tentar a opção grub2-mkconfig -o /boot/grub/grub.cfg que detectou o Mint antes. Se isso não funcionar, siga a configuração manual de inicialização múltipla no manual do GRUB. 6

Particularmente, esta parte:

In all the OSes install GRUB tools but disable installing GRUB in bootsector, so you’ll have menu.lst and grub.cfg available for use. Also disable os-prober use by setting:

GRUB_DISABLE_OS_PROBER=true

in /etc/default/grub

Espero que isso cubra a maioria do que você precisa para obter o Mint.

    
por 17.02.2015 / 02:52
1

Ele realmente não responde à sua pergunta "como", mas deve lhe dar um pouco de percepção - e é muito longo para um comentário.

Primeiro de tudo, você não pode inicializar de uma partição criptografada. Simplesmente porque a cadeia de inicialização entende a criptografia apenas razoavelmente tarde no processo:

  1. carrega o firmware - normalmente BIOS da UEFI (na plataforma x86). O hardware, como tal, é completamente independente de dados - apenas carrega o que encontrar em algum armazenamento persistente (em um endereço predefinido).

  2. O firmware carrega o gerenciador de inicialização ou diretamente o kernel. Como no caso da CPU, ela não tem nenhuma ideia sobre os possíveis modos de criptografia (não que isso não seja possível, mas geralmente não ocorre).

  3. Se o carregador de inicialização estiver envolvido, ele carrega o kernel (ou um gerenciador de inicialização encadeado como por exemplo ao inicializar o Windows) e mais frequentemente do que um ramdisk inicial (que pode estar em um arquivo independente ou embutido no kernel imagem). Aqui fica mais interessante, pois, por exemplo, o GRUB2 deve ser capaz de inicializar a partir de um dispositivo LUKS, mas a documentação parece ser bastante escassa .

  4. O kernel monta o sistema de arquivos raiz e executa init (as opções init do System V, systemd , OpenRC , upstart ... são abundantes).

  5. Se inicializar com o ramdisk inicial, ele será primeiro expandido na memória, depois montado e o sistema init será executado a partir daí. O initramfs shuold contém tudo o que é necessário para montar o sistema de arquivos raiz - normalmente contém todos os drivers disponíveis (por exemplo, RAID necessários quando o rootfs final está em um dispositivo RAID), infra-estrutura gráfica de inicialização - o que geralmente significa um mínimo (ou não-tão-mínimo) X11 stack - e frequentemente também ferramentas para montar partições criptografadas. Depois que tudo estiver configurado, e o rootfs final montado no sistema init executado a partir do initramfs, o pivot_root() (veja o pivot_root(8) e pivot_root(2) man pages para mais detalhes), mudando assim o / para o sistema de arquivos.

Agora, normalmente, a maneira mais fácil de inicializar um volume criptografado é fazer a configuração de criptografia na etapa 5 - principalmente porque isso é feito pelo kernel que será executado e pode usar a infraestrutura oferecida por qualquer distribuição recente decente.

Assim, você provavelmente vai querer saber exatamente como o Fedora e o Mint são inicializados a partir do volume criptografado. A solução para o seu problema pode ser, por exemplo, criar uma imagem initramfs apropriada para o kernel Mint. Você pode até mesmo usar um initramfs para ambos os kernels, desde que você tenha certeza de que há uma montagem condicional dos rootfs certos dependendo do kernel inicializado, embora eu não recomende isso, especialmente se você decidiu usar diferentes ) kernel para cada distribuição.

Dito isto, você também pode querer considerar se você realmente quer ter duas instalações lado a lado - pode ser mais conveniente executar um virtualizado.

    
por 16.02.2015 / 22:18