Multiboot trên usb với syslinux


9

Tôi đang cố gắng tạo một usb đa tốc độ với Ubuntu, Backtrack và Mantra-OS trên nó (tất cả đều có trên Ubuntu như bạn có thể thấy). Đó là những bước tôi đã thực hiện:

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

Sau đó, tôi đã gắn và sao chép các tệp trong các ISO tương ứng vào các thư mục tôi đã tạo:

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/

Sau đó tôi điền vào file cấu hình syslinux.cfgtrong /media/diqus/syslinuxvới điều này:

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 8ng png trong / media / disqus / syslinux /)

Bây giờ mọi thứ đều ổn và tôi có thể khởi động, tôi có menu syslinux và thậm chí tải vmlinuz và initrd! Hệ điều hành thực sự đang tải (tôi có màn hình giật gân) nhưng sau đó tôi gặp lỗi (một cái gì đó về Busybox):

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

Tôi không chắc vấn đề là gì nhưng tôi nghĩ đó là về các đường dẫn tương đối và "điều" CDROM. Tôi đã thử nghiệm nhiều trong số chúng (thậm chí tương đối và tuyệt đối) nhưng không có gì hoạt động.

Câu trả lời không được là về MultiBootUSB, MultiSystem, Yummi hoặc bất kỳ công cụ nào khác; nó cũng không phải là về grub hoặc grub2 hoặc bất kỳ bộ tải khởi động nào khác. Tôi muốn làm cho cách tiếp cận của tôi làm việc.


Tại sao không phải là Grub2? Điều đó sẽ dễ dàng hơn vì nó không yêu cầu bạn trích xuất các ISO.
Zoredache

@Zoredache Tôi đã thực hiện với grub2 nhưng tôi muốn nó với syslinux và không có memdisk.
pr.nizar

1
PenDriveLinux Multiboot sẽ làm mọi thứ bạn cần làm. Đó là lý do tại sao tôi nói rằng đây là một bản dupe.
James Mertz

Câu trả lời:


1

Tôi thực sự đã giải quyết điều này và nó hoạt động! Tôi tìm thấy một mã cheat có tên: live-media-path = path / to / casper / thư mục cùng với ign_uuid. Vì vậy, mã làm việc sửa đổi:

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

Cảm ơn nhiều!

PS: Đối với các bản phát hành khác, bạn có thể tìm các tệp cấu hình syslinux trong kho lưu trữ của Yumi tại GitHub: https://github.com/bwnickle/YUMI/blob/master/src/menu/


Làm tốt. pr.nizar. Chỉ cần cho hồ sơ, ignore_uuidcó thể được bỏ qua; Ngoài ra, đối với bất kỳ ai muốn sao chép bộ tệp tối thiểu từ CD, hãy xem sfxpt.wordpress.com/2014/02/18/ . Ví dụ rsync -vuaR .disk casper /mnt/usbpen/boot/lub1310.
xpt

0

Ok, vì bạn không quan tâm đến các giải pháp thay thế, nên bạn sẽ cần thêm thời gian để hiểu quy trình làm việc của cuốn sách.

Bộ nạp khởi động tải kernel và initrd vào bộ nhớ , sau đó chuyển thực thi cho kernel. Sau thời điểm đó, tất cả việc thực thi được chuyển sang quá trình init / upstart trong initrd và bất kỳ tập lệnh nào xử lý cuộc gọi đầu tiên. Các tập lệnh trong initrd, không thực sự biết bất cứ điều gì về hệ thống tập tin hoặc các đường dẫn tương đối về nơi nó được tải từ đó. Họ không thể đơn giản tham khảo một số hệ thống tập tin caspar lớn trong thư mục đó.

Ban đầu của livecds, chứa các tập lệnh cho phép chúng định vị hệ thống tập tin. Đối với hệ thống Ubuntu, nó tìm kiếm một tệp cụ thể trong một thư mục cụ thể trong thư mục gốc của mọi hệ thống tệp đã biết trên mọi ổ đĩa mà nó có thể nhìn thấy. Nếu nó không thể tìm thấy bất cứ điều gì bạn nhận được lỗi bạn đề cập.

Bạn có thể chuyển ISO-SCANtùy chọn này thành một phần của dòng chắp thêm. Đối số này sẽ cho kịch bản lệnh thay vì quét các hệ thống tệp, nó sẽ lặp lại gắn kết một ISO và đọc các tệp từ bên trong đó.

Chỉ cần thả các tập tin trong một số thư mục ngẫu nhiên bạn xác định có thể không được hỗ trợ. Gần đây tôi đã không xem xét các tập lệnh initrd của livecd, nhưng tôi không biết bất kỳ tùy chọn nào cho phép bạn chỉ định một số thư mục tùy ý cho các tệp được trích xuất.

Nếu bạn muốn các hành vi chưa được các nhà phát triển thiết kế, thì bạn sẽ phải xây dựng lại các initrd của mình bằng các tập lệnh và công cụ của riêng bạn để tải hệ thống tập tin gốc. Rời khỏi ISO trên hệ thống tập tin, và sau đó sử dụng iso-scan/filename=$isofiletùy chọn là phương pháp bạn có thể sử dụng mà không phải xây dựng lại initrd của mình.


Vấn đề là BT5R3 vẫn không hỗ trợ tham số iso-scan / filename ... Tôi phải vá tệp casper / initrd.gz. this. is.
pr.nizar

Nếu bạn đã thêm chi tiết đó vào câu hỏi ban đầu của mình, bạn sẽ nhận được ít nhiều thông tin hơn về câu hỏi của bạn là một bản sao. Gần như chắc chắn có một giải pháp, nhưng tôi không biết nó vào lúc này.
Zoredache

Tôi có thể tạo ra những thứ tương tự mà unetbootin làm nhưng vấn đề là nó sẽ không có cấu trúc thư mục giống như tôi đã tạo .. ( youtube.com/watch?v=MH-khdiXqYs )
pr.nizar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.