Multiboot na usb z syslinux

9

Usiłuję zrobić wielobootowy usb z Ubuntu, Backtrack i Mantra-OS na nim (wszystkie Ubuntu, jak widać). Oto kroki, które zrobiłem:

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

Następnie podłączyłem i skopiowałem pliki z odpowiednich ISO do folderów, które utworzyłem:

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/

Potem wypełnione w pliku konfiguracyjnym syslinux.cfgw /media/diqus/syslinuxz tym:

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 w / media / disqus / syslinux /)

Teraz wszystko idzie dobrze i jestem w stanie uruchomić, mam menu syslinux, a nawet ładuję vmlinuz i initrd! System operacyjny ładuje się (mam ekran powitalny), ale potem pojawia się błąd (coś o Busybox):

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

Nie jestem do końca pewien, na czym polega problem, ale myślę, że chodzi o ścieżki względne i „rzecz” CDROM-u. Przetestowałem wiele z nich (nawet względnych i absolutnych), ale nic nie działa.

Odpowiedź nie może dotyczyć MultiBootUSB, MultiSystem, Yummi ani żadnego innego narzędzia; nie może też dotyczyć grub, grub2 ani żadnego innego programu ładującego. Chcę, aby moje podejście zadziałało.

pr.nizar
źródło
Dlaczego nie Grub2? Byłoby to łatwiejsze, ponieważ nie wymaga wyodrębnienia ISO.
Zoredache
@Zoredache Zrobiłem już z grub2, ale chcę to z syslinux i bez memdisk.
pr.nizar 18.04.13
1
PenDriveLinux Multiboot zrobi wszystko, co musisz zrobić. Dlatego powiedziałem, że to był dupek.
James Mertz

Odpowiedzi:

1

Naprawdę to rozwiązałem i działa! Znalazłem kod o nazwie: live-media-path = ścieżka / do / casper / folder wraz z ignore_uuid. Zmodyfikowany działający kod:

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

Wielkie dzięki!

PS: W przypadku innych dystrybucji możesz szukać plików konfiguracyjnych syslinux w repozytorium Yumi na GitHub: https://github.com/bwnickle/YUMI/blob/master/src/menu/

pr.nizar
źródło
Dobra robota. pr.nizar. Dla przypomnienia ignore_uuidmożna pominąć; Ponadto dla każdego, kto chce skopiować minimalny zestaw plików z dysku CD, sprawdź sfxpt.wordpress.com/2014/02/18/… . Tj rsync -vuaR .disk casper /mnt/usbpen/boot/lub1310.
xpt
0

Ok, ponieważ nie jesteś zainteresowany alternatywnymi rozwiązaniami, musisz poświęcić więcej czasu, aby zrozumieć, jak działa proces księgowania.

Program ładujący ładuje jądro i initrd do pamięci , a następnie przekazuje wykonanie do jądra. Po tym punkcie całe wykonanie jest przekazywane do procesu init / upstart w initrd i wszystkich skryptów, które najpierw wywołują proces. Skrypty w initrd naprawdę nie wiedzą nic o systemie plików ani względnym patosie miejsca, z którego został załadowany. Nie mogą po prostu odwoływać się do jakiegoś dużego systemu plików Caspar w tym katalogu.

Initrd of livecds zawiera skrypty, które pozwalają im zlokalizować system plików. W systemie Ubuntu szuka określonego pliku w określonym folderze w katalogu głównym każdego znanego systemu plików na każdym dysku, który może zobaczyć. Jeśli nic nie może znaleźć, pojawia się wspomniany błąd.

Możesz przekazać tę ISO-SCANopcję jako część linii dołączającej. Ten argument powie skryptowi, że zamiast skanować systemy plików, zapętli zamontowanie ISO i odczyta pliki z tego.

Po prostu upuszczanie plików w określonym przez ciebie losowym katalogu prawdopodobnie nie jest obsługiwane. Ostatnio nie przeglądałem skryptów initrd na żywo, ale nie znam żadnych opcji, które pozwalają określić dowolny katalog dla wyodrębnionych plików.

Jeśli chcesz zachowania, które nie zostało jeszcze zaprojektowane przez programistów, będziesz musiał ponownie zbudować initrds za pomocą własnych skryptów i narzędzi do załadowania głównego systemu plików. Pozostawienie ISO w systemie plików, a następnie użycie tej iso-scan/filename=$isofileopcji to metoda, której można użyć bez konieczności przebudowywania initrd.

Zoredache
źródło
Problem polega na tym, że BT5R3 nadal nie obsługuje parametru iso-scan / filename ... Muszę załatać plik casper / initrd.gz. this.is.thoughtcrime.org.nz/multi-boot-bt5-from-usb-with-grub2 Czy są jakieś inne rozwiązania mojego problemu?
pr.nizar 18.04.13
Gdybyś dodał ten szczegół do swojego pierwotnego pytania, miałbyś o wiele mniej kłopotów z tym, że twoje pytanie jest duplikatem. Istnieje prawie na pewno rozwiązanie, ale w tej chwili nie wiem.
Zoredache
Mogę robić te same rzeczy, które UNetbootin robi ale problemem jest to, że nie będzie taką samą strukturę katalogów jak zrobiłem .. ( youtube.com/watch?v=MH-khdiXqYs )
pr.nizar