Arranque múltiple en usb con syslinux

9

Estoy tratando de hacer un USB de arranque múltiple con Ubuntu, Backtrack y Mantra-OS en él (todo ubuntu como puedes ver). Esos son los pasos que he hecho:

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

Después de eso, monté y copié archivos en los ISO respectivos a las carpetas que hice:

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/

Después de eso me llena en el fichero de configuración syslinux.cfgen /media/diqus/syslinuxesto:

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 8bit png en / media / disqus / syslinux /)

Ahora todo va bien y puedo arrancar, ¡tengo el menú syslinux e incluso cargo vmlinuz e initrd! El sistema operativo se está cargando (tengo la pantalla de inicio) pero luego aparece el error (algo sobre Busybox):

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

No estoy muy seguro de cuál es el problema, pero creo que se trata de rutas relativas y la "cosa" del CDROM. He probado muchos de ellos (incluso relativos y absolutos) pero nada funciona.

La respuesta no debe ser sobre MultiBootUSB, MultiSystem, Yummi o cualquier otra herramienta; no debe ser también sobre grub o grub2 o cualquier otro gestor de arranque. Quiero que mi enfoque funcione.

pr.nizar
fuente
¿Por qué no Grub2? Eso sería más fácil ya que no requiere que extraiga los ISO.
Zoredache
@Zoredache Ya lo hice con grub2 pero lo quiero con syslinux y sin el disco de memoria.
pr.nizar
1
PenDriveLinux Multiboot hará todo lo que necesita hacer. Es por eso que dije que esto era un tonto.
James Mertz

Respuestas:

1

¡En realidad resolví esto y funciona! Encontré un código de trucos llamado: live-media-path = path / to / casper / folder junto con ignore_uuid. Entonces el código de trabajo 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

¡Muchas gracias!

PD: para otras distribuciones, puede buscar archivos de configuración de syslinux en el repositorio de Yumi en GitHub: https://github.com/bwnickle/YUMI/blob/master/src/menu/

pr.nizar
fuente
Bien hecho. pr.nizar. Solo para el registro, ignore_uuidse puede omitir; también, para cualquiera que quiera copiar el conjunto mínimo de archivos del CD, consulte sfxpt.wordpress.com/2014/02/18/… . Es decir, rsync -vuaR .disk casper /mnt/usbpen/boot/lub1310.
xpt
0

Bien, dado que no está interesado en soluciones alternativas, necesitará más tiempo para comprender cómo funciona el proceso del libro.

El gestor de arranque carga el núcleo y el initrd en la memoria , y luego pasa la ejecución al núcleo. Después de ese punto, toda la ejecución se pasa al proceso init / upstart en initrd, y cualquier script que primero procese las llamadas. Las secuencias de comandos dentro del initrd, realmente no saben nada sobre el sistema de archivos, o el pathos relativo de donde se cargó. No pueden simplemente hacer referencia a algún gran sistema de archivos caspar en ese directorio.

El Initrd de livecds contiene scripts que les permiten ubicar el sistema de archivos. Para el sistema Ubuntu, busca un archivo particular en una carpeta particular dentro de la raíz de cada sistema de archivos conocido en cada unidad que puede ver. Si no puede encontrar nada, recibirá el error que mencionó.

Puede pasar la ISO-SCANopción a como parte de su línea de adición. Este argumento le dirá al script que en lugar de escanear sistemas de archivos, montará en bucle un ISO y leerá los archivos desde allí.

Probablemente no sea compatible con soltar archivos en algún directorio aleatorio que defina. No he mirado los scripts livecd initrd últimamente, pero no conozco ninguna opción que le permita especificar un directorio arbitrario para los archivos extraídos.

Si desea un comportamiento que aún no haya sido diseñado por los desarrolladores, tendrá que reconstruir sus initrds con sus propios scripts y herramientas para cargar el sistema de archivos raíz. Dejar el ISO en el sistema de archivos y luego usar la iso-scan/filename=$isofileopción es el método que puede usar sin tener que reconstruir su initrd.

Zoredache
fuente
El problema es que BT5R3 todavía no es compatible con el parámetro iso-scan / filename ... Tengo que parchear el archivo casper / initrd.gz. this.is.thoughtcrime.org.nz/multi-boot-bt5-from-usb-with-grub2 ¿Hay alguna otra solución a mi problema?
pr.nizar
Si hubieras agregado ese detalle a tu pregunta original, habrías recibido muchas críticas acerca de que tu pregunta es un duplicado. Es casi seguro que hay una solución, pero no lo sé por el momento.
Zoredache
Puedo hacer las mismas cosas que unetbootin, pero el problema es que no será la misma estructura de directorio que hice ... ( youtube.com/watch?v=MH-khdiXqYs )
pr.nizar