Eu tive algumas experiências bastante ruins com GRUB2
. Eu poderia dizer (e já disse) algumas coisas desagradáveis sobre seu processo de design e desenvolvimento. Eu particularmente não gosto de seus meios de atualização: por qualquer motivo, ele deve atualizar semi-automaticamente vários scripts - um indiretamente através de outro em cadeia - para cada atualização do kernel - ou muitas outras alterações de configuração menores (e aparentemente não relacionadas) .
Isso é diretamente contrastado pelas experiências anteriores que tive LILO
- para as quais estou seriamente considerando reverter - porque nunca tive problemas com ele e sua configuração era bastante simples. Por um lado, como eu me lembro, eu tinha apenas que atualizar (ou melhor, apenas atualizar) um único arquivo de texto de configuração gerenciado com simplicidade por atualização do kernel.
Então, como o LILO funciona em hardware moderno com os kernels de hoje? Como o GRUB? Como outros gerenciadores de inicialização? Preciso cumprir quaisquer pré-condições ou se trata apenas de gravar o arquivo de configuração e executar o lilo
comando, como me lembro com carinho nos velhos tempos? O pacote de kernel atualiza (Debian / Ubuntu) atualiza o LILO como no GRUB2?
Respostas:
ELILO
Gerenciando carregadores de inicialização EFI para Linux: usando o ELILO
É realmente difícil para mim decidir qual parte disso copiar + colar, porque tudo é muito bom, então peço que você leia.
Rod Smith
Criou e mantém ambos
gdisk
erEFInd
.Mas antes de fazer, gostaria de comentar um pouco sobre isso. O link ELILO acima é para uma das muitas páginas sobre inicialização UEFI que você encontrará no rodsbooks.com, escrito por Rod Smith. Ele é um escritor técnico talentoso, e se você já pesquisou o tópico de inicialização da UEFI e acabou não lendo algo dele, provavelmente foi porque você pulou os principais resultados.
Inicialização Linux UEFI
Basicamente, o kernel do Linux pode ser executado diretamente pelo firmware.
No link acima, ele menciona o stub loader EFI do kernel do Linux - é isso que você deve usar, na minha opinião, pois permite que o kernel do linux seja chamado diretamente pelo próprio firmware. Independentemente do que você está fazendo, algo está sendo executado pelo firmware - e parece que algo está acontecendo
grub
. Se o firmware puder carregar diretamente o kernel do sistema operacional, de que serve um gerenciador de inicialização? O firmware UEFI monta uma partição GPT formatada em FAT sinalizada esp pela tabela de partições e executa um caminho onde ele salvou como uma variável de inicialização UEFI em um módulo de memória flash onboard. Então, uma coisa que você pode fazer é colocar o kernel do linux nessa partição FAT e armazenar seu caminho nessa variável de inicialização. De repente, o kernel é próprio carregador de inicialização.Carregadores de inicialização
Nos sistemas UEFI, os gerenciadores de inicialização são redundantes - incluído o ELILO.
O problema que os gerenciadores de inicialização foram projetados para resolver é que os sistemas BIOS apenas lêem no primeiro setor da partição sinalizada de inicialização e a executam. É um pouco difícil fazer algo significativo com um kernel de 512 bytes, então a coisa mais comum a fazer era escrever um pequeno utilitário que pudesse montar um sistema de arquivos onde você mantinha o kernel real e o carregava em cadeia.
De fato, os 512 bytes muitas vezes não eram suficientes, mesmo para os gerenciadores de inicialização.
grub
, por exemplo, na verdade, carrega-se em cadeia antes de carregar seu kernel em cadeia, porque ocupa seu segundo estágio no espaço vazio entre o setor de inicialização e o primeiro setor do seu sistema de arquivos. É uma espécie de truque sujo - mas funcionou.Gerenciadores de inicialização
Porém, para facilitar a configuração, alguns intermediários podem ser úteis.
O que o rEFInd de Rod Smith faz é lançar como um aplicativo EFI - este é um conceito relativamente novo. É um programa que é executado a partir do disco - e que retorna ao - firmware. O que o rEFInd faz é permitir que você gerencie os menus de inicialização e, em seguida, retorne sua seleção de inicialização ao firmware para executar. Ele vem com drivers do sistema de arquivos UEFI - então, por exemplo, você pode usar o carregador EFI-stub do kernel em uma partição não-FAT (como a atual
/boot
). É simples de gerenciar - se é necessário - e adiciona a simplicidade de um kernel de sistema executável à conveniência de um gerenciador de inicialização configurável.Indirecionamento atômico
O kernel não precisa de links simbólicos - pode
mount --bind
.Se houver algum caminho no seu
/
local em que você deve proibir a ligação simbólica, é/boot
. Um link simbólico órfão não/boot
é o tipo de problema que você deve ter para solucionar problemas. Ainda assim, é uma prática bastante comum configurar indiretos elaborados em várias distribuições - mesmo que seja uma ideia horrível - para lidar com atualizações in loco do kernel e / ou várias configurações do kernel./boot
Esse é um problema para sistemas EFI não configurados para carregar drivers do sistema de arquivos (como os fornecidos com o pacote rEFInd) porque o FAT é um sistema de arquivos bastante estúpido em geral e não os entende.
Eu não uso pessoalmente os drivers do sistema de arquivos UEFI fornecidos com o rEFInd, embora a maioria das distribuições inclua um pacote rEFInd que possa ser instalado via gerenciador de pacotes e esquecido de usar sua própria
/boot
configuração horrível e com links simbólicos e os drivers do sistema de arquivos UEFI do rEFInd.My Config
Certa vez, escrevi um conjunto de instruções e publiquei aqui , mas parece:
Então, eu apenas coloquei essas duas linhas no meu
/etc/fstab
apontador para uma pasta que pretendo conter as novas instalações do linux/boot
e estou quase terminando de me preocupar com tudo isso. Eu também tenho que fazer:Além de instalar o
refind-efi
pacote viapacman
para o primeiro, é tudo o que é necessário para instalar quantas instalações / configurações separadas eu desejar. Observe que a maioria dessa string acima consiste em opções de montagem específicas do btrfs especificadas como parâmetros do kernel. Um mais típico/boot/refind_linux.conf
provavelmente se pareceria com:E isso é tudo o que é preciso.
rodsbooks.com
Se você ainda deseja o ELILO, pode encontrar as instruções de instalação no link acima. Se você deseja refR, encontrará links para ele no primeiro parágrafo. Basicamente, se você deseja fazer qualquer configuração de inicialização UEFI, leia rodsbooks.com primeiro.
fonte
Eu uso o LILO em vez do GRUB2. Para ser sincero, não foi minha escolha - a instalação do GRUB2 falhou no instalador do Debian Live CD, mas foi a opção de instalar o LILO com êxito. Eu tenho um laptop de 2 anos executando o Debian Stable. LILO funciona perfeitamente para mim.
fonte
O LILO ainda é utilizável, mesmo com BIOS UEFI. O UEFI pode carregar o kernel do Linux diretamente, normalmente. Isso depende da própria UEFI, no entanto.
No entanto, se você precisar de uma tela de seleção de inicialização, por exemplo, se estiver inicializando em vários sistemas operacionais em uma máquina, um pequeno carregador de inicialização poderá ser útil.
Eu consideraria o uso do EXTLINUX , no entanto. É uma variante do SYSLINUX, mas reside em
ext
partições de tipo.A beleza do EXTLINUX é que, embora seja mais expansível e tenha muito mais opções que o LILO, pode ser tão simples quanto ser mantido ativamente.
fonte
Não me lembro de nenhum equivalente
update-grub
. No entanto, existe um sistema mais antigo que ainda é suportado no Debian. (É usado para uboot no meu servidor ARM).O kernel mais recente é vinculado
/boot/vmlinuz
e initrd para/boot/initrd.img
. É atualizado pelo pacote do kernel. O carregador de inicialização é apontado para essas referências e faz referência ao link simbólico em cada inicialização.Portanto, você pode não ter uma opção de recuperação. De qualquer forma, essa não será a opção mais amplamente testada, por isso é ainda mais aconselhável manter um disco de inicialização funcionando :-).
Atualização: Se o seu objetivo é algo que não seja literalmente executar o LILO em um computador moderno, provavelmente existem alternativas melhores, conforme descrito pelas outras respostas aqui :).
O exemplo acima só faz sentido para a versão original do LILO baseada em BIOS. O hardware moderno fornece compatibilidade com o BIOS em cima do EFI, se você não deseja uma inicialização segura ou a inicialização do Windows 8 no mesmo menu. Teoricamente, você poderia fazer o ELILO funcionar, mas ele não suporta inicialização segura ou carregamento do Windows 8. O ELILO não faz mais sentido em geral, então acho que não há muita comunidade por trás disso.
fonte
/boot
são uma solução imunda para qualquer problema.