Multiboot di usb dengan syslinux

9

Saya mencoba membuat multiboot usb dengan Ubuntu, Backtrack dan Mantra-OS di atasnya (semua ubuntu seperti yang Anda lihat). Itulah langkah-langkah yang telah saya lakukan:

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

Setelah itu saya memasang dan menyalin file di ISO masing-masing ke folder yang saya buat:

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/

Setelah itu saya mengisi pada file konfigurasi syslinux.cfgdi /media/diqus/syslinuxdengan ini:

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 png 8bit di / media / disqus / syslinux /)

Sekarang semuanya berjalan dengan baik dan saya dapat boot, saya memiliki menu syslinux dan bahkan memuat vmlinuz dan initrd! Os sebenarnya memuat (saya memiliki layar splash) tetapi kemudian saya memiliki kesalahan (sesuatu tentang Busybox):

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

Saya tidak yakin apa masalahnya tapi saya pikir ini tentang jalur relatif dan "hal" CDROM. Saya sudah menguji banyak dari mereka (bahkan relatif dan absolut) tetapi tidak ada yang berhasil.

Jawabannya tidak boleh tentang MultiBootUSB, MultiSystem, Yummi atau alat lain apa pun; itu tidak boleh juga tentang grub atau grub2 atau bootloader lainnya. Saya ingin membuat pendekatan saya berhasil.

pr.nizar
sumber
Kenapa tidak Grub2? Itu akan lebih mudah karena tidak mengharuskan Anda untuk mengekstrak ISO.
Zoredache
@Zoredache Saya sudah melakukannya dengan grub2 tapi saya menginginkannya dengan syslinux dan tanpa memdisk.
pr.nizar
1
PenDriveLinux Multiboot akan melakukan semua yang perlu Anda lakukan. Itu sebabnya saya mengatakan bahwa ini adalah penipuan.
James Mertz

Jawaban:

1

Saya benar-benar memecahkan ini dan berhasil! Saya menemukan kode cheat bernama: live-media-path = path / to / casper / folder bersama dengan ign_uuid. Jadi kode kerja yang dimodifikasi:

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

Terimakasih banyak!

PS: Untuk distro lain Anda dapat mencari file konfigurasi syslinux dalam repositori Yumi di GitHub: https://github.com/bwnickle/YUMI/blob/master/src/menu/

pr.nizar
sumber
Sudah selesai dilakukan dengan baik. pr.nizar. Hanya sebagai catatan, ignore_uuidbisa dihilangkan; juga, bagi siapa saja yang ingin menyalin set file minimum dari CD, lihat sfxpt.wordpress.com/2014/02/18/… . Yaitu rsync -vuaR .disk casper /mnt/usbpen/boot/lub1310,.
xpt
0

Oke, karena Anda tidak tertarik dengan solusi alternatif, maka Anda perlu meluangkan lebih banyak waktu untuk memahami cara kerja proses buku.

Bootloader memuat kernel dan initrd ke dalam memori , dan kemudian meneruskan eksekusi ke kernel. Setelah titik itu, semua eksekusi dilewatkan ke proses init / pemula di initrd, dan skrip apa pun yang panggilan proses pertama. Script dalam initrd, tidak benar-benar tahu apa-apa tentang sistem file, atau pathos relatif dari mana ia diambil. Mereka tidak bisa begitu saja merujuk beberapa filesystem caspar besar di direktori itu.

Initrd of livecds, berisi skrip yang memungkinkan mereka untuk menemukan sistem file. Untuk sistem Ubuntu, ia mencari file tertentu di folder tertentu di dalam root dari setiap sistem file yang dikenal di setiap drive yang dapat dilihatnya. Jika tidak dapat menemukan apa pun Anda mendapatkan kesalahan yang Anda sebutkan.

Anda dapat meneruskan ISO-SCANopsi sebagai bagian dari baris append Anda. Argumen ini akan memberi tahu skrip bahwa alih-alih memindai sistem file, itu akan mengulang mount ISO, dan membaca file dari dalam itu.

Hanya menjatuhkan file di beberapa direktori acak yang Anda tentukan mungkin tidak didukung. Saya belum melihat skrip initrd livecd belakangan ini, tetapi saya tidak mengetahui adanya opsi yang memungkinkan Anda untuk menentukan beberapa direktori arbitrer untuk file yang diekstrak.

Jika Anda ingin perilaku yang belum dirancang oleh pengembang, maka Anda harus membangun kembali initrds Anda dengan skrip dan alat Anda sendiri untuk memuat sistem file root. Meninggalkan ISO pada sistem file, dan kemudian menggunakan iso-scan/filename=$isofileopsi adalah metode yang dapat Anda gunakan tanpa harus membangun ulang initrd Anda.

Sakit kepala
sumber
Masalahnya adalah BT5R3 masih tidak mendukung parameter iso-scan / nama file ... Saya harus menambal file casper / initrd.gz. this.is.thoughtcrime.org.nz/multi-boot-bt5-dari-usb-with-grub2 Apakah ada solusi lain untuk masalah saya?
pr.nizar
Jika Anda telah menambahkan detail itu ke pertanyaan awal Anda, Anda akan mendapatkan lebih sedikit kritik tentang pertanyaan Anda sebagai duplikat. Hampir pasti ada solusi, tapi saya tidak tahu saat ini.
Zoredache
Saya dapat membuat hal yang sama dengan yang dilakukan unetbootin tetapi masalahnya adalah bahwa itu tidak akan menjadi struktur direktori yang sama dengan yang saya buat .. ( youtube.com/watch?v=MH-khdiXqYs )
pr.nizar