Багатозавантаження на usb з syslinux


9

Я намагаюся зробити багатозавантажувальний usb з Ubuntu, Backtrack і Mantra-OS на ньому (все ubuntu, як ви бачите). Це кроки, які я зробив:

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

Після цього я змонтував і скопіював файли у відповідні ISO в папки, які я створив:

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/

Після цього я заповнив файл конфігурації syslinux.cfgу /media/diqus/syslinuxцьому:

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

Тепер все йде добре, і я можу завантажитися, у мене є меню syslinux і навіть завантажую vmlinuz та initrd! OS фактично завантажується (у мене екран сплеску), але тоді у мене є помилка (щось про Busybox):

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

Я не зовсім впевнений, у чому проблема, але я думаю, що це стосується відносних шляхів та "речі" CDROM. Я перевірив багато з них (навіть відносних і абсолютних), але нічого не працює.

Відповідь не повинна стосуватися MultiBootUSB, MultiSystem, Yummi чи будь-якого іншого інструменту; не повинно бути також про grub або grub2 або будь-який інший завантажувач. Я хочу, щоб мій підхід працював.


Чому б не Grub2? Це буде простіше, оскільки це не вимагає від вас витягу ISO.
Зоредаче

@Zoredache я вже робив з grub2, але я хочу це з syslinux та без memdisk.
пр.нісар

1
PenDriveLinux Multiboot зробить усе, що вам потрібно зробити. Тому я сказав, що це дуп.
Джеймс Мерц

Відповіді:


1

Я фактично це вирішив, і це працює! Я знайшов чіт-код під назвою: live-media-path = path / to / casper / folder разом з ignore_uuid. Отже, модифікований робочий код:

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

Дуже дякую!

PS: Для інших дистрибутивів ви можете шукати файли конфігурації syslinux у сховищі Юмі на GitHub: https://github.com/bwnickle/YUMI/blob/master/src/menu/


Молодці. пр.нізар. Тільки для запису ignore_uuidможна пропустити; Також для всіх, хто хоче скопіювати мінімальний набір файлів з компакт-диска, перегляньте sfxpt.wordpress.com/2014/02/18/… . Тобто, rsync -vuaR .disk casper /mnt/usbpen/boot/lub1310.
xpt

0

Гаразд, оскільки вас не цікавлять альтернативні рішення, то вам знадобиться витратити більше часу, щоб зрозуміти, як працює процес книги.

Завантажувач завантажує ядро ​​та initrd в пам'ять , а потім передає виконання ядру. Після цього все виконання передається процедурі init / upstart в initrd та будь-яким сценаріям, який перший процес викликає. Сценарії всередині initrd насправді нічого не знають про файлову систему або відносний пафос, звідки вона завантажена. Вони не можуть просто посилатися на якусь велику файлову систему caspar у цьому каталозі.

Initrd livecds містить сценарії, які дозволяють їм знаходити файлову систему. Для системи Ubuntu він шукає певний файл у певній папці в корені кожної відомої файлової системи на кожному диску, який він може бачити. Якщо він нічого не може знайти, ви отримаєте вказану вами помилку.

Ви можете передати цю ISO-SCANопцію як частину рядка додавання. Цей аргумент підкаже скрипту, що замість сканування файлових систем він зможе встановити ISO, і прочитає файли всередині цього.

Просто викидання файлів у визначений вами випадковий каталог, ймовірно, не підтримується. Останнім часом я не переглянув сценарії incrd livecd, але не знаю жодних варіантів, які дозволять вам вказати якийсь довільний каталог для витягнутих файлів.

Якщо ви хочете, щоб розробники, які ще не були розроблені розробниками, вам доведеться заново створити свої initrds за допомогою власних скриптів та інструментів для завантаження кореневої файлової системи. Залишивши ISO у файловій системі, а потім скориставшись iso-scan/filename=$isofileопцією, це метод, яким ви можете скористатися, не потребуючи перебудови свого initrd.


Проблема полягає в тому, що BT5R3 досі не підтримує параметр iso-scan / filename ... Мені потрібно виправити файл casper / initrd.gz. this.is.thoughtcrime.org.nz/multi-boot-bt5-from-usb-with-grub2 Чи є інші рішення моєї проблеми?
пр.нісар

Якби ви доклали цю деталь до свого оригінального запитання, ви б отримали набагато менше запитання щодо того, що ваше питання було б дублікатом. Рішення майже напевно є, але на даний момент я його не знаю.
Зоредаче

Я можу зробити те саме, що робить unetbootin, але проблема полягає в тому, що це не буде та сама структура каталогів, як я створила .. ( youtube.com/watch?v=MH-khdiXqYs )
pr.nizar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.