Segundo a Wikipedia , o GRUB foi lançado em 1995. Nesse ponto, o Linux e o xBSD existiam há vários anos. Eu sei que as primeiras versões do Unix estavam ligadas ao hardware nos anos 70 e 80, mas o Linux e o xBSD estavam livres para distribuir e instalar. O que levanta a questão: como você inicializaria o Linux naquela época? As distribuições estavam sendo enviadas com suas próprias implementações de gerenciadores de inicialização?
boot-loader
history
Sergiy Kolodyazhnyy
fonte
fonte
biosboot(8)
.biosboot
para duas arquiteturas, i386 e amd64. Isso significa que o OpenBSD teve que visar especificamente as arquiteturas em vez de ter uma ferramenta unificadora?Respostas:
A primeira distribuição Linux que eu usei nos anos 90 (
Slackware 3.0
IIRC) usou o LILO como um gerenciador de inicialização. E muitas distribuições usadasLILO
por anos, mesmo quandoGRUB
estavam se tornando o gerenciador de inicialização "padrão".Além disso, nos primeiros anos do Linux, era comum inicializar o Linux a partir de outro sistema operacional (por exemplo, DOS ou Windows), em vez de depender de um carregador de inicialização / inicialização dupla. Por exemplo, havia loadlin .
Não se esqueça do Syslinux , que é um carregador de inicialização mais simples, geralmente usado para distribuições de instalação / recuperação auto-inicializáveis por USB. Ou o Isolinux (do mesmo projeto) usado por muitas distros "Live".
Lembre-se de que hoje
GRUB
pode ser usado para carregar muitos sistemas operacionais, enquantoLILO
era mais limitado e especificamente direcionado ao Linux (ou seja, LInux LOader), com algum suporte para inicialização dupla no Windows.GRUB
é muito útil para dupla de multi boot / por causa de suas muitas opções configuráveis, recursos de script, etc ...Se você quer apenas um único sistema operacional em sua máquina "qualquer" (ou seja, qualquer que seja o bootloader é o padrão para a sua distribuição Linux / BSD) deve seja suficiente.
fonte
other=/dev/hda1
comtable=/dev/hda
tolilo.conf
, e o lilo apenas transferia o controle para o setor de inicialização no hda1, sabendo que a tabela de partição estaria no hda.O LILO era o padrão de fato para inicializar o Linux em PCs antes do Grub, desde muito cedo (a MCC, uma das primeiras distribuições Linux, o utilizava). Vários outros gerenciadores de inicialização foram usados contemporaneamente. Loadlin era bastante comum; inicializou o Linux a partir do DOS e até foi usado em algumas configurações
umsdos
para hospedar um ambiente Linux em um sistema de arquivos DOS ... Outra configuração comum não envolveu um gerenciador de inicialização: o kernel pode se inicializar a partir de um disquete, e a maioria Os usuários do Linux mantinham um par conhecido de disquetes de “inicialização e raiz”, um contendo o kernel e o outro um sistema básico de arquivos raiz para fins de resgate.Havia várias maneiras de usar os gerenciadores de inicialização de outros sistemas operacionais para inicializar o Linux também; por exemplo, o gerenciador de inicialização do OS / 2 ou o NTLDR do Windows NT.
Outros sistemas tinham seus próprios gerenciadores de inicialização:
Ainda hoje em dia, o Grub não é o único gerenciador de inicialização que você verá. Embora a inicialização do kernel diretamente do disquete não seja mais muito útil (não verifiquei se ainda é possível, supondo que você possa construir um kernel pequeno o suficiente para caber em um disquete), ele pode inicializar diretamente do EFI (que é efetivamente seu próprio sistema operacional pequeno projetado para carregar outros sistemas operacionais, como o Grub). Em muitos sistemas menores (sistemas embarcados, computadores de placa única ...), você encontrará o U-Boot . (E também há uma camada EFI para U-Boot .)
fonte
Até meados dos 2,6 kernels, o kernel x86 era inicializável diretamente se copiado para um disquete (como se fosse uma imagem de disco).
Essa era, de fato, a maneira original de inicializar o Linux.
Se você olhar o cabeçalho de um kernel x86 hoje, verá uma mensagem de erro dizendo que a inicialização a partir de disquetes não funciona mais.
fonte
Comecei com o Linux no final dos anos 90 e, como mencionado,
lilo
era o padrão. Se você quisesse a inicialização dupla com um sistema DOS, poderia fazer uma inicialização simples sem carregar coisas no HIMEM ou carregar drivers de CD, etc. e usá-laloadlin
. Para a inicialização dupla do Win95, você pode tornar a unidade inicializável primeiro com o DOS, depois instalar o '95, e o carregador de inicialização do '95 permitirá que você inicialize o kernel do DOS ainda e, em seguida, use-oloadlin
.Para a inicialização dupla com o NT4, o truque era gravar o LILO na
/
partição, remover os primeiros 512 bytes usandodd
(dd if=/dev/sda2 of=/path/to/file bs=512 count=1
) e colocar o arquivo resultante onde elentldr
poderia ser visto e você poderia usá-lo no gerenciador de inicialização do WinNT. O problema é que, quando você atualizou seu kernel, lembre-se de repetir todas as etapas antes de reiniciar; caso contrário, você terá problemas para voltar ao sistema Linux. O mesmo processo funcionou com o Win2k.Com o LILO, sempre que o kernel foi atualizado, você precisava se lembrar de atualizar o LILO.
A
loadlin
qualquer momento que o kernel era atualizado, você precisava se lembrar de copiar o kernel para a partição DOS.Uma outra opção sugerida em outras respostas foi gravar o kernel diretamente em um disquete usando
dd if=/path/to/vmlinuz of=/dev/fd0
MAS O dispositivo raiz teve que ser configurado corretamente no kernel, em tempo de compilação ou usando ordev
utilitário.Quando
GRUB
surgiu, houve muita alegria porque você não precisou mais se lembrar de atualizar o LILO ou atualizar o LILO e remover novamente as informações de inicialização, etc. info ...fonte
make install
seria executada/sbin/lilo
, portanto você não precisava atualizar nada manualmente (e esse ainda pode ser o caso, se você tiverlilo
instalado). Isso pode ser uma questão de opinião, mas não me lembro de muita alegriagrub
, pelo contrário. Elilo
(pelo menos em sua versão de 1999), as janelas de inicialização dupla podem ficar bem, sem necessidadeloadlin
.E antes do LILO e GRUB, era necessário iniciá-lo a partir da linha de comando com algum tipo de utilitário de carregador de inicialização personalizado.
Como exemplo, o Amiga tinha Linux disponível. Você tinha que usar um utilitário de linha de comando chamado amiboot para carregar o ELF do kernel na memória e pular para ele.
Aqui está um vídeo de alguém usando o amiboot na linha de comando para iniciar o linux em um Amiga 600 . Seu script StartInstall está chamando o executável de inicialização inicial. Você pode assistir uma inicialização do sistema configurando a memória, descobrir o endereço de carregamento desejado e passar parâmetros para o kernel por volta das 0:55.
fonte