Multiboot บน usb ด้วย syslinux


9

ฉันพยายามที่จะสร้าง multiboot usb กับ Ubuntu, Backtrack และ Mantra-OS บนมัน (อูบุนตูทุกอย่างที่คุณเห็น) นี่คือขั้นตอนที่ฉันทำ:

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 8 บิต png ใน / สื่อ / disqus / syslinux /)

ตอนนี้ทุกอย่างเรียบร้อยดีและฉันสามารถบูตได้ฉันมีเมนู syslinux และโหลด vmlinuz และ initrd! ระบบปฏิบัติการกำลังโหลด (ฉันมีหน้าจอสแปลช) แต่ฉันมีข้อผิดพลาด (บางอย่างเกี่ยวกับ Busybox):

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

ฉันไม่ค่อยแน่ใจว่าปัญหาคืออะไร แต่ฉันคิดว่ามันเกี่ยวกับเส้นทางญาติและ "สิ่ง" ของซีดีรอม ฉันได้ทดสอบพวกเขาหลายคน (แม้แต่ญาติและสัมบูรณ์) แต่ไม่มีอะไรทำงาน

คำตอบต้องไม่เกี่ยวกับ MultiBootUSB, MultiSystem, Yummi หรือเครื่องมืออื่น ๆ มันจะต้องไม่เกี่ยวกับด้วงหรือด้วง 2 หรือ bootloader อื่น ๆ ฉันต้องการทำให้วิธีการของฉันทำงาน


ทำไมไม่ Grub2 มันจะง่ายขึ้นเพราะคุณไม่ต้องแยก ISO ออก
Zoredache

@ Zoredache ฉันทำไปแล้วกับ grub2 แต่ฉันต้องการด้วย syslinux และไม่มี memdisk
pr.nizar

1
PenDriveLinux Multibootจะทำทุกอย่างที่คุณต้องการ นั่นเป็นเหตุผลที่ฉันพูดว่านี่เป็นล่อลวง
James Mertz

คำตอบ:


1

ฉันแก้ไขมันได้จริงและใช้งานได้! ฉันพบรหัสโกงที่เรียกว่า: live-media-path = path / to / casper / โฟลเดอร์พร้อมกับ ign_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: สำหรับ distros อื่น ๆ คุณอาจมองหาไฟล์กำหนดค่า syslinux ในที่เก็บของ Yumi ที่ GitHub: https://github.com/bwnickle/YUMI/blob/master/src/menu/


ทำได้ดี. pr.nizar เพียงเพื่อบันทึกignore_uuidสามารถละเว้น; นอกจากนี้ยังมีสำหรับทุกคนที่ต้องการคัดลอกกำหนดขั้นต่ำของไฟล์จากแผ่น CD, ตรวจสอบsfxpt.wordpress.com/2014/02/18/... rsync -vuaR .disk casper /mnt/usbpen/boot/lub1310กล่าวคือ
xpt

0

ตกลงเนื่องจากคุณไม่สนใจวิธีแก้ปัญหาอื่นคุณจะต้องใช้เวลามากขึ้นในการทำความเข้าใจวิธีการทำงานของหนังสือ

bootloader โหลดเคอร์เนลและเริ่มต้นในหน่วยความจำแล้วส่งผ่านการดำเนินการไปยังเคอร์เนล หลังจากจุดนั้นการดำเนินการทั้งหมดจะถูกส่งผ่านไปยังกระบวนการ init / upstart ใน initrd และสคริปต์ใด ๆ ที่กระบวนการแรกเรียกใช้ สคริปต์ภายใน initrd ไม่รู้อะไรเลยเกี่ยวกับระบบไฟล์หรือสิ่งที่น่าสมเพชของญาติที่มันถูกโหลดมา พวกเขาไม่สามารถอ้างอิงระบบไฟล์ caspar ขนาดใหญ่ในไดเรกทอรีนั้นได้

Initrd of livecds มีสคริปต์ที่อนุญาตให้ค้นหาระบบไฟล์ สำหรับระบบ Ubuntu มันจะค้นหาไฟล์เฉพาะในโฟลเดอร์เฉพาะภายในรูทของระบบไฟล์ที่รู้จักในทุกไดร์ฟที่สามารถมองเห็นได้ หากไม่พบสิ่งที่คุณได้รับข้อผิดพลาดที่คุณกล่าวถึง

คุณสามารถส่งISO-SCANตัวเลือกให้เป็นส่วนหนึ่งของสายผนวกของคุณ อาร์กิวเมนต์นี้จะบอกสคริปต์ว่าแทนที่จะสแกนระบบไฟล์มันจะวนลูปกลับเป็น ISO และอ่านไฟล์จากภายใน

เพียงแค่วางไฟล์ในไดเรกทอรีสุ่มที่คุณกำหนดอาจไม่ได้รับการสนับสนุน ฉันไม่ได้ดูสคริปต์ตัวเริ่มต้น livecd แต่ฉันไม่ทราบถึงตัวเลือกใด ๆ ที่อนุญาตให้คุณระบุไดเรกทอรีที่กำหนดเองสำหรับไฟล์ที่แตกออกมา

หากคุณต้องการพฤติกรรมที่ยังไม่ได้รับการออกแบบโดยนักพัฒนาคุณจะต้องสร้าง initrds ของคุณใหม่ด้วยสคริปต์และเครื่องมือของคุณเองเพื่อโหลดระบบไฟล์รูท ออกจาก ISO บนระบบแฟ้มแล้วใช้iso-scan/filename=$isofileตัวเลือกเป็นวิธีที่คุณสามารถใช้ได้โดยไม่ต้องสร้าง initrd ใหม่


ปัญหาคือ BT5R3 ยังคงไม่สนับสนุนพารามิเตอร์ iso-scan / filename ... ฉันต้องแก้ไขไฟล์ casper / initrd.gz this.is. buttcrime.org.nz/multi-boot-bt5-from-usb-with-grub2มีวิธีแก้ไขปัญหาอื่นอีกหรือไม่?
pr.nizar

หากคุณได้เพิ่มรายละเอียดนั้นลงในคำถามเดิมของคุณคุณจะได้รับความสะเพร่าน้อยลงเกี่ยวกับคำถามของคุณที่ซ้ำกัน มีวิธีแก้ปัญหาเกือบจะแน่นอน แต่ฉันไม่รู้ในขณะนี้
Zoredache

ฉันสามารถทำสิ่งเดียวกันกับที่ unetbootin ทำ แต่ปัญหาคือมันจะไม่เป็นโครงสร้างไดเรกทอรีเดียวกับที่ฉันทำ .. ( youtube.com/watch?v=MH-khdiXqYs )
pr.nizar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.