Como inicializar o Linux com o extlinux

3

EDIT: Apenas adicionando meus dois centavos depois que essa questão se torna "popular". Eu tinha sido um grande fã de grub porque ele foi capaz de inicializar tudo o que eu usei. No entanto, quando grub2 veio, eu realmente não gosto porque é

  • humongo em si
  • deixo muitos juncos na minha pasta /boot que 99,9% são inúteis para mim
  • a sintaxe "aprimorada" ficou complicada para mim
  • tente inicializar o UEFI usando grub2 é realmente um ROYAL PITA
  • Consegui usar grub como meu carregador de boot de CD, mas não sei se grub2 pode fazer isso ou não - não me importo mais, porque encontrei uma alternativa melhor.

O ecossistema syslinux (incluindo o extlinux) agora está inicializando tudo o que eu uso, CD / DVD, FAT, Ext2 / 3/4 e até mesmo Btrfs. Além disso, lida com relé MBR / PBR ou GPT sem problemas. É pequeno, ao ponto, e mantém uma sintaxe universal em toda a linha. O extlinux (syslinux) é atualmente a minha solução escolhida para inicializar qualquer coisa que eu use.

Agora de volta ao OP.

Alguém sabe como inicializar corretamente o Linux com extlinux ?

Eu perdi minha pesquisa no google, mas ainda não consegui descobrir qual é a maneira correta de configurar extlinux para inicializar o Linux. Todos os hits que encontrei falam sobre a edição direta do arquivo /boot/extlinux/extlinux.conf . No entanto, há um aviso grande dentro dele que me desencoraja a fazê-lo:

## /boot/extlinux/extlinux.conf
##
## IMPORTANT WARNING
##
## The configuration of this file is generated automatically.
## Do not edit this file manually, use: extlinux-update


default l0
prompt 1
timeout 50

include themes/debian/theme.cfg

Eu executei extlinux-update ou extlinux -update em todos os tipos de tempo, mas o arquivo ainda permanece o mesmo. O problema é que esse arquivo não inicializa nada!

Se eu mesmo editar, e rodar extlinux-update novamente, então BOOM, ele retornará para a versão boot-nothing acima novamente.

Alguém sabe como configurar corretamente o extlinux no Ubuntu para inicializá-lo (sem editar diretamente o extlinux.conf)?

Este é o extlinux do Ubuntu Trusty BTW mais recente:

% apt-cache policy extlinux
extlinux:
Installed: 3:4.05+dfsg-6+deb8u1
Candidate: 3:4.05+dfsg-6+deb8u1
Version table:
*** 3:4.05+dfsg-6+deb8u1 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
100 /var/lib/dpkg/status
    
por xpt 19.04.2014 / 22:46

3 respostas

2

Ok, assim como você queria, aqui estão os passos mínimos para eu instalar o extlinux:

sudo apt-get install extlinux

sudo extlinux --install /boot/extlinux

E isso aconteceu. Não podia acreditar, mas funcionou. Então aqui está alguma informação extra: Meu sistema (uname)

3.13.0-24-generic (Kernel)
#46-Ubuntu SMP .. (Kernel version)
i686 (Processor and machine)

E o

apt-cache policy extlinux
extlinux:
  Installed: 3:4.05+dfsg-6+deb8u1
  Candidate: 3:4.05+dfsg-6+deb8u1
  Version table:
 *** 3:4.05+dfsg-6+deb8u1 0
        500 http://de.archive.ubuntu.com/ubuntu/ trusty/universe i368 Packages
        100 /var/lib/dpkg/status

O /boot/extlinux/extlinux.conf

default l0
prompt 1
timeout 50

include themes/debian/theme.cfg

Eu acho que é o mesmo que o seu. E eu não acho que o tema debian irá variar. Então aqui está o meu específico linux.cfg:

label l0
    menu label Ubuntu GNU/Linux, kernel 3.13.0-24-generic
    linux /vmlinuz-3.13.0-24-generic
    append initrd=/initrd.img-3.13.0-24-generic root=UUID=61e460f5-878a-4cff-be9c-12239153d59c ro quiet

label l0r
    menu label Ubuntu GNU/Linux, kernel 3.13.0-24-generic (recovery mode)
    linux /vmlinuz-3.13.0-24-generic
    append initrd=/initrd.img-3.13.0-24-generic root=UUID=61e460f5-878a-4cff-be9c-12239153d59c ro single
    text help
    This option boots the system into recovery mode (single-user)
    endtext

Ok, é isso. Mas aqui está outra coisa interessante que descobri sobre o processo de inicialização: eu criei "myvmlinuz" e "myinitrd.img" como cópias dos arquivos originais em / boot e editei o arquivo extlinux.conf para o seguinte:

default test
prompt 1
timeout 50

#include themes/debian/theme.cfg
LABEL test
    MENU Test entry
    LINUX /myvmlinuz
    APPEND initrd=/myinitrd.img root=UUID=61e460f5-878a-4cff-be9c-12239153d59c

Tanto quanto eu entendo, esta é a configuração mínima para obter um sistema funcionando. Botas bem para mim. Note que / é a pasta raiz da partição marcada como inicialização com o extlinux nestes arquivos.

APPEND initrd=/myinitrd.img root=/dev/sda5

também funcionou. Eu usei diferentes partições em um disco para / (sda5), / boot (sda1), swap e assim por diante. Eu criei / boot como uma partição primária, não sei se isso é importante. Talvez você possa tentar

cat /usr/lib/extlinux/mbr.bin > /dev/sda

se o grub fez algo ruim.

Bem, espero que você o faça funcionar, por favor, deixe-me saber se funciona!

    
por 25.04.2014 / 15:00
1

Aqui está um bom tutorial sobre Configurando a atualização automática do extlinux no Debian que deve ser o que você está procurando:

A few days ago, I wrote about how to set up and configure extlinux (syslinux) as a bootloader. But on Debian or Ubuntu, if you make changes to files like /boot/extlinux/extlinux.conf directly, they'll be overwritten.

The configuration files are regenerated by a program called extlinux-update, which runs automatically every time you update your kernel. (Specifically, it runs from the postinst script of the linux-base package: you can see it in /var/lib/dpkg/info/linux-base.postinst.)

[...]

    
por 06.10.2016 / 06:30
1

Este é um detalhamento de uma instalação "manual" padrão, para o MBR:

  • Instale um MBR padrão no disco. Este MBR procurará e tentará inicializar qualquer partição que tenha o sinalizador "boot".
    dd /usr/lib/extlinux/mbr.bin of=/dev/sda bs=440 count=1
  • Defina o sinalizador de inicialização na partição que conterá EXTLINUX
  • Copie os arquivos do extlinux e os módulos usados para um diretório (ou root) na partição de inicialização. Vamos usar /boot/ , por causa do exemplo.
  • Instale um gerenciador de inicialização nesta partição e aponte-o para o diretório syslinux.
    extlinux --install /boot/
  • Verifique se a configuração está correta.

Então, quando você inicializar, o MBR carregará o bootloader da partição inicializável, que iniciará o EXTLINUX, que lerá o extlinux.conf.

Algumas etapas podem ser redundantes, mas acho que é bom escrever os passos para ter uma ideia do que acontece.

Eu gosto do EXTLINUX. É assim que o software deveria ser. Eu posso realmente saber e entender o que está acontecendo e eu aprendi algo novo sobre computadores usando-o.

    
por 01.03.2018 / 12:55