Inicialização múltipla em usb com syslinux

9

Estou tentando fazer um usb de inicialização múltipla com o Ubuntu, Backtrack e Mantra-OS (todos os ubuntu como você pode ver). Essas são as etapas que eu fiz:

sudo su
unmount /dev/sdb1                          # unmount the drive
mkfs.vfat -F 32 -n disqus /dev/sdb1        # Format the disk with vfat
syslinux -maf /dev/sdb1                    # Install syslinux and the mbr
mkdir /media/disqus                        # Mount for the disk
mount /dev/sdb1 /media/disqus
mkdir /media/disqus/syslinux               # Syslinux configuration folder
cp /usr/lib/syslinux/{vesamenu.c32,reboot.c32,poweroff.com} /media/disqus/syslinux          # Files needed for syslinux
mkdir /media/disqus/syslinux/iso           # A folder that will contain extracted isos
mkdir /media/disqus/syslinux/iso/ubuntu
mkdir /media/disqus/syslinux/iso/backtrack
mkdir /media/disqus/syslinux/iso/mantra-os

Depois disso, montei e copiei os arquivos nos respectivos ISOs para as pastas que criei:

mkdir /media/iso
mount -t iso9660 -o loop,ro /home/nizar/Destkop/ubuntu.iso /media/iso
cp -r /media/iso/* /media/disqus/syslinux/iso/ubuntu
umount /media/iso/
mount -t iso9660 -o loop,ro /home/nizar/Destkop/backtrack.iso /media/iso
cp -r /media/iso/* /media/disqus/syslinux/iso/backtrack
umount /media/iso/
mount -t iso9660 -o loop,ro /home/nizar/Destkop/mantra-os.iso /media/iso
cp -r /media/iso/* /media/disqus/syslinux/iso/mantra-os
umount /media/iso/
rmdir /media/iso/

Depois que eu preenchido no arquivo de configuração syslinux.cfgno /media/diqus/syslinuxcom este:

DEFAULT Backtrack
PROMPT 0
allowoptions 0
TIMEOUT 100
UI vesamenu.c32

MENU TITLE Disqus: The Ultimate Disk
MENU BACKGROUND anon1.png

MENU COLOR border       30;44   #40ffffff #a0000000 std
MENU COLOR title        1;36;44 #9033ccff #a0000000 std
MENU COLOR sel          7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel        37;44   #50ffffff #a0000000 std
MENU COLOR help         37;40   #c0ffffff #a0000000 std
MENU COLOR timeout_msg  37;40   #80ffffff #00000000 std
MENU COLOR timeout      1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07        37;40   #90ffffff #a0000000 std
MENU COLOR tabmsg       31;40   #30ffffff #00000000 std

MENU WIDTH 80
MENU MARGIN 10
MENU ROWS 5
MENU VSHIFT 10
MENU TIMEOUTROW 13
MENU TABMSGROW 18
MENU CMDLINEROW 11
MENU HELPMSGROW 16
MENU HELPMSGENDROW 29

LABEL Backtrack
    MENU LABEL Backtrack
    kernel iso/backtrack/casper/vmlinuz
    append initrd=iso/backtrack/casper/initrdf.gz file=/cdrom/preseed/custom.seed boot=casper quiet splash --

LABEL Ubuntu
    MENU LABEL Ubuntu
    kernel iso/ubuntu/casper/vmlinuz
    append initrd=iso/ubuntu/casper/initrd.lz file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --

LABEL Mantra-OS
    MENU LABEL Mantra-OS
    kernel /mantra-os/casper/vmlinuz
    append initrd=/mantra-os/casper/initrd.lz file=/cdrom/preseed/xubuntu.seed boot=casper quiet splash --

LABEL Reboot
MENU LABEL Reboot
COM32 reboot.c32

LABEL Power Off
MENU LABEL Power Off
COMBOOT poweroff.com

(anon1.png: 640x480 png de 8 bits em / media / disqus / syslinux /)

Agora está tudo bem e eu consigo inicializar, eu tenho o menu syslinux e até carrego vmlinuz e initrd! O sistema operacional está realmente carregando (eu tenho a tela inicial), mas então eu tenho o erro (algo sobre o Busybox):

 (initramfs) unable to find a medium containing a live file system

Não sei bem qual é o problema, mas acho que é sobre caminhos relativos e a "coisa" do CDROM. Eu testei muitos deles (mesmo relativos e absolutos), mas nada funciona.

A resposta não deve ser sobre MultiBootUSB, MultiSystem, Yummi ou qualquer outra ferramenta; não deve ser também sobre grub ou grub2 ou qualquer outro carregador de inicialização. Eu quero fazer minha abordagem funcionar.

pr.nizar
fonte
Por que não o Grub2? Isso seria mais fácil, pois não exige que você extraia os ISOs.
Zoredache
@ Zoredache Eu já fiz com o grub2, mas quero com o syslinux e sem o memdisk.
precisa saber é o seguinte
1
O PenDriveLinux Multiboot fará tudo o que você precisa. Foi por isso que eu disse que isso era uma bobagem.
James Mertz

Respostas:

1

Eu realmente resolvi isso e funciona! Eu encontrei um código de fraude chamado: live-media-path = caminho / para / casper / pasta junto com ignore_uuid. Portanto, o código de trabalho modificado:

DEFAULT Backtrack
PROMPT 0
allowoptions 0
TIMEOUT 100
UI vesamenu.c32
MENU TITLE Disqus: The Ultimate Disk
MENU BACKGROUND anon1.png
MENU COLOR border 30;44 #40ffffff #a0000000 std
MENU COLOR title 1;36;44 #9033ccff #a0000000 std
MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel 37;44 #50ffffff #a0000000 std
MENU COLOR help 37;40 #c0ffffff #a0000000 std
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
MENU WIDTH 80
MENU MARGIN 10
MENU ROWS 5
MENU VSHIFT 10
MENU TIMEOUTROW 13
MENU TABMSGROW 18
MENU CMDLINEROW 11
MENU HELPMSGROW 16
MENU HELPMSGENDROW 29

LABEL Backtrack
MENU LABEL Backtrack
kernel /syslinux/iso/backtrack/casper/vmlinuz
append initrd=/syslinux/iso/backtrack/casper/initrdf.gz live-media-path=/syslinux/iso/backtrack/casper ignore_uuid boot=casper quiet splash --

LABEL Ubuntu
MENU LABEL Ubuntu
kernel /syslinux/iso/ubuntu/casper/vmlinuz
append initrd=/syslinux/iso/ubuntu/casper/initrd.lz live-media-path=/syslinux/iso/ubuntu/casper ignore_uuid boot=casper quiet splash --

LABEL Mantra-OS
MENU LABEL Mantra-OS
kernel /syslinux/iso/mantra-os/casper/vmlinuz
append initrd=/syslinux/iso/mantra-os/casper/initrd.lz live-media-path=/syslinux/iso/mantra-os/casper ignore_uuid boot=casper quiet splash --

LABEL Reboot
MENU LABEL Reboot
COM32 reboot.c32

LABEL Power Off
MENU LABEL Power Off
COMBOOT poweroff.com

Muito Obrigado!

PS: Para outras distros, você pode procurar por arquivos de configuração do syslinux no repositório da Yumi no GitHub: https://github.com/bwnickle/YUMI/blob/master/src/menu/

pr.nizar
fonte
Bem feito. pr.nizar. Apenas para o registro, o ignore_uuidpode ser omitido; Além disso, para quem deseja copiar o conjunto mínimo de arquivos do CD, consulte sfxpt.wordpress.com/2014/02/18/… . Ou seja rsync -vuaR .disk casper /mnt/usbpen/boot/lub1310,.
xpt
0

Ok, como você não está interessado em soluções alternativas, precisará de mais tempo para entender como o processo do livro funciona.

O carregador de inicialização carrega o kernel e o initrd na memória e passa a execução para o kernel. Após esse ponto, toda a execução é passada para o processo init / upstart no initrd e para qualquer script que o primeiro processo chame. Os scripts no initrd realmente não sabem nada sobre o sistema de arquivos ou o caminho relativo de onde ele foi carregado. Eles não podem simplesmente fazer referência a um grande sistema de arquivos caspar nesse diretório.

O Initrd dos livecds contém scripts que permitem localizar o sistema de arquivos. Para o sistema Ubuntu, ele procura um arquivo específico em uma pasta específica dentro da raiz de todos os sistemas de arquivos conhecidos em todas as unidades que podem ver. Se não conseguir encontrar nada, você receberá o erro mencionado.

Você pode passar a ISO-SCANopção para como parte da sua linha de acréscimo. Esse argumento informa ao script que, em vez de verificar os sistemas de arquivos, ele montará um ISO em loopback e lerá os arquivos a partir dele.

Apenas soltar arquivos em algum diretório aleatório que você definir provavelmente não é suportado. Ultimamente, não observei os scripts do livecd initrd, mas não conheço nenhuma opção que permita especificar um diretório arbitrário para os arquivos extraídos.

Se você deseja um comportamento que ainda não foi projetado pelos desenvolvedores, precisará recriar seus initrds com seus próprios scripts e ferramentas para carregar o sistema de arquivos raiz. Deixar o ISO no sistema de arquivos e usar a iso-scan/filename=$isofileopção é o método que você pode usar sem precisar reconstruir o initrd.

Zoredache
fonte
O problema é que o BT5R3 ainda não suporta o parâmetro iso-scan / filename ... Eu tenho que corrigir o arquivo casper / initrd.gz. this.is.thoughtcrime.org.nz/multi-boot-bt5-from-usb-with-grub2 Existem outras soluções para o meu problema?
precisa saber é o seguinte
Se você tivesse adicionado esse detalhe à sua pergunta original, teria recebido muito menos críticas por sua pergunta ser uma duplicata. Há quase certamente uma solução, mas não a conheço no momento.
precisa
Eu posso fazer as mesmas coisas que UNetbootin faz, mas o problema é que ele não vai ser a mesma estrutura de diretórios que fiz .. ( youtube.com/watch?v=MH-khdiXqYs )
pr.nizar