Мультизагрузка на USB с syslinux

7798
pr.nizar

Я пытаюсь создать мультизагрузочный 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/ /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: 640 x 480, 8-битный png в / media / disqus / syslinux /)

Теперь все идет хорошо, и я могу загрузиться, у меня есть меню syslinux и даже загрузить vmlinuz и initrd! ОС фактически загружается (у меня есть заставка), но затем у меня появляется ошибка (кое-что о Busybox):

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

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

Ответ не должен быть о MultiBootUSB, MultiSystem, Yummi или любом другом инструменте; это не должно быть также о grub или grub2 или любом другом загрузчике. Я хочу, чтобы мой подход работал.

9
Почему не Grub2? Это было бы проще, так как не требуется извлекать ISO. Zoredache 11 лет назад 0
@Zoredache Я уже сделал с grub2, но я хочу это с syslinux и без memdisk. pr.nizar 11 лет назад 0
[PenDriveLinux Multiboot] (http://www.pendrivelinux.com/yumi-multiboot-usb-creator/) сделает все, что вам нужно. Вот почему я сказал, что это дурак. KronoS 11 лет назад 1

2 ответа на вопрос

1
pr.nizar

Я действительно решил это, и это работает! Я нашел чит-код с именем: 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 в репозитории Yumi на GitHub: https://github.com/bwnickle/YUMI/blob/master/src/menu/

Отлично сработано. pr.nizar. Просто для записи `ignore_uuid` может быть опущен; Кроме того, для тех, кто хочет скопировать минимальный набор файлов с компакт-диска, ознакомьтесь с http://sfxpt.wordpress.com/2014/02/18/ubuntu-frugal-multiboot-installation-without-burning-any-cddvd/ #new. То есть `rsync -vuaR .disk casper / mnt / usbpen / boot / lub1310`. xpt 10 лет назад 0
0
Zoredache

Хорошо, поскольку вас не интересуют альтернативные решения, вам нужно больше времени, чтобы понять, как работает процесс книги.

Загрузчик загружает ядро ​​и initrd в память, а затем передает выполнение ядру. После этого все выполнение передается процессу init / upstart в initrd и любым сценариям, которые вызывает первый процесс. Скрипты внутри initrd, на самом деле ничего не знают о файловой системе или относительном пафосе того, откуда она была загружена. Они не могут просто ссылаться на какую-то большую файловую систему Каспара в этом каталоге.

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

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

Простое удаление файлов в произвольный каталог, который вы определяете, вероятно, не поддерживается. В последнее время я не рассматривал сценарии livecd initrd, но мне неизвестны какие-либо параметры, позволяющие вам указать произвольный каталог для извлеченных файлов.

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

Проблема в том, что BT5R3 * все еще * не поддерживает параметр iso-scan / filename ... Я должен исправить файл casper / initrd.gz. http://this.is.thoughtcrime.org.nz/multi-boot-bt5-from-usb-with-grub2 Есть ли другие способы решения моей проблемы? pr.nizar 11 лет назад 0
Если бы вы добавили эту деталь в свой первоначальный вопрос, вы бы получили гораздо меньше шуток, если бы ваш вопрос был дубликатом. Почти наверняка есть решение, но я не знаю его сейчас. Zoredache 11 лет назад 0
Я могу сделать то же самое, что и unetbootin, но проблема в том, что он не будет такой же структуры каталогов, как я. (Http://www.youtube.com/watch?v=MH-khdiXqYs) pr.nizar 11 лет назад 0