O que devo fazer antes de iniciar o Windows 7 e o Debian no EFI?

10

Estou prestes a comprar uma placa-mãe Asus com firmware EFI e queria me preparar para instalar o Windows e o Debian assim que o hardware chegar. Eu estava esperando que alguém que tenha ido por esse caminho possa me dar algumas dicas.

Quais preparações devo fazer antes de tentar instalar o Windows 7 e o Debian em um novo sistema baseado em UEFI?

    
por Mr. Shickadance 08.02.2012 / 17:52

4 respostas

8

EDITAR: Quando escrevi esta resposta, poucas distribuições foram enviadas com um kernel configurado para EFI_STUB, de modo que era necessário construir um personalizado. Atualmente, a maioria das distribuições envia um kernel adequadamente configurado e uma compilação personalizada não é mais necessária. Nesse caso, as seções “Configurar suas partições” e “Configurando as coisas” são interessantes, “Requirements” e “Compiling the kernel” podem ser ignoradas. / p>

Eu não sei como o Windows lida com a UEFI, mas do lado do Debian é bonito simples.

Configure suas partições

Use o esquema de partição GPT, não o MBR.

Para inicializar a partir de uma partição GPT com UEFI, uma partição de inicialização dedicada é obrigatória, chamado de EFI SYSTEM PARTITION (ESP). Não é obrigatório, mas o mais maneira compatível é usar uma partição FAT32. Um tamanho de 200 MiB deve estar bem para a maioria dos casos.

Para registrar a partição como um ESP, ela deve ser marcada com o sinalizador boot . Ao contrário dos esquemas MBR, o flag de inicialização é usado apenas para indicar o ESP, não as partições para poder arrancar a partir.

UEFI usa uma estrutura de diretório \EFI\<vendor>\<application>.efi para armazenar Aplicativos UEFI. Um separador de diretório é denotado por uma barra invertida , mesmo em Linux. pode ser um nome de distribuição, o valor real não é relevante para o UEFI.

Os aplicativos podem ser utilitários do sistema, como verificadores de memória ou um shell UEFI. isto também pode ser um carregador do sistema operacional ou o próprio sistema operacional. Essas aplicações precisa ser registrado no UEFI para poder ser lançado no momento da inicialização.

Requisitos

A versão do kernel do Linux > = 3.3 pode ser carregada diretamente pelo UEFI. O kernel pode atuar como seu próprio carregador. Isso é chamado EFISTUB . As seguintes configurações de kernel são necessárias.

CONFIG_EFI=y
CONFIG_EFI_PARTITION=y
CONFIG_EFI_STUB=y
CONFIG_RELOCATABLE=y
CONFIG_FB_EFI=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_EFI_VARS=m

Um kernel com esta configuração não está no Debian estável ainda. Você também pode assar seu próprio kernel ou usar o da árvore experimental, nesse caso, você pode pular o próximo parágrafo.

Compilando o kernel

(provavelmente não é mais necessário, veja editar)

Se você decidir compilar o kernel, aqui estão instruções breves de como fazer isso. Se você tiver problemas, há muitas informações disponíveis sobre como compilar um kernel.

Obtendo a fonte

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

Confira uma versão específica

git checkout v3.6

Configurando o kernel

make menuconfig

Faça as configurações necessárias no seu sistema ou deixe-as como é se você não tem nada para personalizar. Isto escreve o kernel configuração para o arquivo .config .

Verifique se as configurações do parágrafo anterior estão definidas. Isso também faz sentido selecionar CONFIG_INPUT_EVBUG=n . Caso contrário, seus logs será preenchido com GiB de lixo.

Criando o kernel

INSTALL_MOD_STRIP=1 make-kpkg --uc --us binary-arch

Os pacotes são criados no diretório pai.

Instalando o kernel

dpkg -i linux-image-3.5.0_Custom.deb linux-headers-3.5.0_Custom.deb

Criando initramfs

mkinitramfs -o /boot/initrd.img-3.6.0-amd64 3.6.0

3.6.0 é a versão do kernel. O padrão é o kernel em execução, o que não é uma boa escolha, já que você ainda está executando o antigo kernel.

Configurando as coisas

Para poder inicializar o kernel do Linux, ele deve ser copiado para o ESP juntos com o initramfs. Dado que o ESP está montado em /boot/efi

/boot/efi/EFI/debian/vmlinuz-3.6.0.efi
/boot/efi/EFI/debian/initrd.img-3.6.0

NOTA: Para garantir compatibilidade com a maioria dos sistemas, a extensão efi tem que ser adicionado ao kernel.

Agora, o kernel pode ser registrado no UEFI. Usamos a ferramenta efibootmgr para isso.

echo "root=UUID=3a4287b6-b3a7-4721-da38-acc38a928278 ro rootfstype=ext4 add_efi_memmap initrd=\EFI\debian\initrd.img-3.6.0" |
  iconv -f ascii -t ucs2 |
  efibootmgr \
    --create \
    --gpt \
    --disk /dev/sda \
    --part 4 \
    --label "Debian Linux kernel 3.6.0" \
    --loader "\EFI\debian\vmlinuz-3.6.0" \
    --write-signature \
    --append-binary-args -

O argumento de --disk é o dispositivo em que o kernel reside, não o ESP. --part é o número da partição em que o kernel reside. --label é o entrada no menu de inicialização do UEFI.

Para ver uma lista das entradas disponíveis, basta lançar efibootmgr sem argumentos. Sintaxe para excluir uma entrada específica

efibootmgr -b entry (hex) -B

por exemplo:

efibootmgr -b 001a -B

Estas instruções não lidam com o caso de uma atualização do kernel. O kernel e o initramfs não são copiados automaticamente para o ESP. Isso pode ser feito usando um script curto que copia o kernel e o initramfs para o ESP e executa efibootmgr . Este script pode ser colocado em /etc/kernel/postinst.d para ser iniciado automaticamente após a atualização do kernel.

Observação: Um gerenciador de inicialização como o GRUB não é necessário, o próprio UEFI age como um gerenciador de inicialização.

Isso é tudo que você precisa do lado do Linux, eu não sei o que é preciso para adicionar Janelas.

    
por 14.06.2012 / 15:16
2

Certifique-se de que o UEFI não bloqueie o Linux fora de sua máquina; provavelmente há uma configuração nesse efeito no BIOS. Verifique e verifique com certeza. Eu verificaria novamente este ponto com o manual e com o fabricante, se for necessário.

Houve alguma discussão extensa sobre isso; O ZDNet tinha vários artigos. Aqui está um artigo de 21 de setembro de 2011 e um de 23 de setembro .

Em segundo lugar, com base em dados históricos, você pode querer instalar o Windows primeiro. Tradicionalmente, o Windows apenas assume que é o único sistema operacional na máquina - assim, elimina todos os dados de inicialização relacionados ao Linux. Isso pode ser diferente para UEFI, não sei.

    
por 09.02.2012 / 01:29
2

Você não precisa necessariamente fazer o boot duplo do Windows e do Linux no UEFI. Siga o guia para converter seu UEFI em MBR-BIOS sem perda de dados.

Este guia foi feito por mim. Além disso, o referido blog nunca será removido. Embora eu tenha usado 10 vezes sem perda de dados, recomendo que você faça backup dos seus dados antes de usar o meu procedimento.

    
por 09.10.2012 / 17:33
2

Eu posso recomendar com entusiasmo a série de artigos da UEFI por Rod Smith . Em particular, ele menciona que GPT-MBR "híbrido" é um "perigoso" devido aos riscos de dessincronização.

    
por 01.11.2012 / 16:07