Como posso carregar o GRUB do syslinux?

6

Devido ao estado atual da minha configuração, eu quero fazer o Syslinux, que é o meu principal gerenciador de inicialização, para carregar o GRUB2. O Google traz muitas informações sobre como carregar o Syslinux a partir do GRUB2, mas nada realmente útil para o cenário invertido, que é o que estou procurando.

    
por bill 02.08.2013 / 20:02

4 respostas

1

Eu nunca tentei isso sozinho, mas encontrei esses detalhes no wiki do ArchLinux. Em um artigo apropriadamente intitulado: Syslinux . Há uma seção intitulada: Chainloading de outros sistemas Linux .

trecho

Chainloading another bootloader such as Windows' is pretty obvious, as there is a definite bootloader to chain to. But with Syslinux, it is only able to load files residing on the same partition as the configuration file. Thus, if you have another version of Linux on a separate partition, without a shared /boot, it becomes necessary to employ Extlinux. Essentially, Extlinux can be installed on the partition superblock and be called as a separate bootloader from the MBR installed by Syslinux. Extlinux is part of the Syslinux project and is included with the syslinux package.

Portanto, supondo que você tenha um sistema com o Grub2 da seguinte forma:

  • /dev/sda3 ( / )
  • /dev/sda2 ( /boot )

Você montaria assim:

$ mount /dev/sda3 /mnt
$ mount /dev/sda2 /mnt/boot (only necessary for separate /boot)

Então, com extlinux instalado, você faz o seguinte:

$ extlinux -i /mnt/boot/syslinux
$ cp /usr/lib/syslinux/{chain,menu}.c32 /mnt/boot/syslinux

E crie este arquivo: /mnt/boot/syslinux/syslinux.cfg :

timeout 10

ui menu.c32

label Other Linux
    linux /boot/vmlinuz-linux
    initrd /boot/initramfs-linux.img
    append root=/dev/sda3 ro quiet


label MAIN
    com32 chain.c32
    append hd0 0
    
por 02.08.2013 / 20:24
1

Supondo que você tenha arquivos do GRUB em /boot/grub , na mesma partição que o syslinux, você pode carregar a primeira imagem do GRUB, chamada boot.img , desta forma:

LABEL GRUB
  MENU LABEL Grub2 chainload
  COM32 CHAIN.C32
  APPEND file=/boot/grub/boot.img
    
por 11.12.2013 / 16:39
0

Existem várias maneiras de fazer isso. Ao contrário das janelas de carregamento em cadeia que não possuem código-fonte público para o carregador de inicialização, o grub está disponível em vários formatos e não é difícil adicionar mais. A abordagem do CostinStroie usa a variação de carregar um setor de inicialização e funciona bem supondo que você tenha o grub instalado, tenha bios tradicionais e não seja inicializado pela rede. Você também pode usar outras imagens do grub. Eu tive uma vez uma imagem legada do grub que tinha um cabeçalho de imagem do Linux nela que poderia ser carregado com a palavra-chave do kernel do syslinux. Você pode (embora eu não saiba de ninguém que tenha) compilar o grub como uma imagem c32 que é específica do syslinux. outros interessantes incluem o carregamento de uma imagem pxe grub do pxelinux, o carregamento de uma imagem de disquete grub com o memdisk.

    
por 16.01.2014 / 17:37
0

Supondo que você tenha o GRUB2 instalado no PBR (NOT in MBR), no SAME DISK como Syslinux (por exemplo: sda) em outra partição (por exemplo: sda3), você pode carregar o GRUB2 pelos seguintes comandos:

LABEL Other Linux (Linux installed on sda3 & Syslinux installed on sda)
  MENU LABEL Grub2 chainload
  COM32 chain.c32
  APPEND boot 3 

Testado com YUMI e sem problemas

    
por 05.08.2014 / 00:27