Syslinux के साथ USB पर मल्टीबूट


9

मैं उस पर उबंटू, बैकट्रैक और मंत्र-ओएस के साथ एक मल्टीबूट यूएसबी बनाने की कोशिश कर रहा हूं (सभी 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

उसके बाद मैंने संबंधित आईएसओ में उन फ़ोल्डरों को माउंट और कॉपी किया जो मैंने बनाया है:

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 भी लोड है! ओएस वास्तव में लोड हो रहा है (मेरे पास छप स्क्रीन है) लेकिन फिर मेरे पास त्रुटि है (बिजीबॉक्स के बारे में कुछ)

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

मुझे यकीन नहीं है कि समस्या क्या है, लेकिन मुझे लगता है कि यह सापेक्ष पथ और सीडीरॉम "चीज" के बारे में है। मैंने उनमें से कई (यहां तक ​​कि रिश्तेदार और निरपेक्ष) का परीक्षण किया है, लेकिन कुछ भी काम नहीं करता है।

उत्तर मल्टीबूटसबी, मल्टीसिस्टम, यूमी या किसी अन्य उपकरण के बारे में नहीं होना चाहिए; यह ग्रब या ग्रब 2 या किसी अन्य बूटलोडर के बारे में भी नहीं होना चाहिए। मैं अपना दृष्टिकोण काम करना चाहता हूं।


ग्रब 2 क्यों नहीं? यह आसान होगा क्योंकि आपको आईएसओ निकालने की आवश्यकता नहीं है।
ज़ोराडेक

@Zoredache मैंने पहले से ही grub2 के साथ किया है, लेकिन मैं इसे syslinux के साथ और मेम्दिस्क के बिना चाहता हूं।
प्र.निज़र

1
पेनड्राइवलिनक्स मल्टीबूट वह सब कुछ करेगा जो आपको करने की आवश्यकता है। इसलिए मैंने कहा कि यह एक द्वैध था।
जेम्स मर्ट्ज़

जवाबों:


1

मैंने वास्तव में इसे हल किया है और यह काम करता है! मुझे एक चीट कोड मिला, जिसका नाम है: live-media-path = path / to / casper / folder साथ में 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

बहुत धन्यवाद!

पुनश्च: अन्य विकृतियों के लिए आप GitHub में Yumi के भंडार में syslinux कॉन्फ़िगरेशन फ़ाइलों की तलाश कर सकते हैं: https://github.com/bwnickle/YUMI/blob/master/src/menu/


बहुत बढ़िया। pr.nizar। सिर्फ रिकॉर्ड के लिए, ignore_uuidछोड़ा जा सकता है; इसके अलावा, जो कोई भी सीडी से फाइलों के न्यूनतम सेट को कॉपी करना चाहता है, उसके लिए sfxpt.wordpress.com/2014/02/18/… देखें । यानी, rsync -vuaR .disk casper /mnt/usbpen/boot/lub1310
xpt

0

ठीक है, चूंकि आप वैकल्पिक समाधानों में रुचि नहीं रखते हैं, तो आपको यह समझने में अधिक समय लेने की आवश्यकता है कि पुस्तक प्रक्रिया कैसे काम करती है।

बूटलोडर कर्नेल और initrd को मेमोरी में लोड करता है , और फिर कर्नेल को निष्पादन देता है। उस बिंदु के बाद सभी निष्पादन को initrd में init / upstart प्रक्रिया, और किसी भी स्क्रिप्ट को पास किया जाता है जिसे पहली प्रक्रिया कॉल करती है। Initrd के भीतर स्क्रिप्ट, वास्तव में फाइलसिस्टम, या जहां से इसे लोड किया गया था के सापेक्ष पथ के बारे में कुछ भी नहीं जानता है। वे बस उस निर्देशिका में कुछ बड़े कैस्पर फाइल सिस्टम को संदर्भित नहीं कर सकते।

Livecds के Initrd में वे स्क्रिप्ट होती हैं जो उन्हें फ़ाइल सिस्टम का पता लगाने की अनुमति देती हैं। उबंटू प्रणाली के लिए यह एक विशेष फ़ाइल के लिए हर ड्राइव पर हर ज्ञात फाइल सिस्टम के मूल में एक विशेष फ़ाइल की तलाश करता है जिसे वह देख सकता है। यदि यह कुछ भी नहीं मिल सकता है तो आपको आपके द्वारा उल्लिखित त्रुटि मिलती है।

आप ISO-SCANअपनी अपेंड लाइन के भाग के रूप में विकल्प पास कर सकते हैं । यह तर्क स्क्रिप्ट को बताएगा कि फाइलसिस्टम को स्कैन करने के बजाय, यह एक आईएसओ को लूपबैक करेगा, और उसके भीतर से फाइलों को पढ़ेगा।

बस कुछ यादृच्छिक निर्देशिका में फ़ाइलों को छोड़ने से आप शायद समर्थित नहीं हैं। मैंने हाल ही में लाइव एलसीडी initrd स्क्रिप्ट को नहीं देखा है, लेकिन मुझे ऐसे किसी भी विकल्प के बारे में जानकारी नहीं है जो आपको निकाली गई फ़ाइलों के लिए कुछ मनमाना निर्देशिका निर्दिष्ट करने की अनुमति देता है।

यदि आप ऐसा व्यवहार चाहते हैं जो पहले से ही डेवलपर्स द्वारा डिज़ाइन नहीं किया गया है, तो आपको रूट फाइल सिस्टम को लोड करने के लिए अपनी स्वयं की स्क्रिप्ट और टूल के साथ अपने इनिट्रॉड्स को फिर से बनाना होगा। आईएसओ को फाइलसिस्टम पर छोड़ना, और फिर iso-scan/filename=$isofileविकल्प का उपयोग करना वह विधि है जिसका उपयोग आप अपने इनट्रॉड के पुनर्निर्माण के बिना कर सकते हैं।


समस्या यह है कि BT5R3 अभी भी आईएसओ-स्कैन / फ़ाइल नाम पैरामीटर का समर्थन नहीं करता है ... मुझे कैस्पर / initrd.gz फ़ाइल को पैच करना होगा। this.is.thoughtcrime.org.nz/multi-boot-bt5-from-usb-with-grub2 क्या मेरी समस्या का कोई और समाधान है?
pr.nizar

यदि आपने अपने मूल प्रश्न में उस विस्तार को जोड़ लिया है, तो आपको अपने प्रश्न के डुप्लिकेट होने के बारे में बहुत कम जानकारी मिलेगी। लगभग निश्चित रूप से एक समाधान है, लेकिन मैं इसे फिलहाल नहीं जानता।
ज़ोराडेक

मैं वही चीजें बना सकता हूं जो unetbootin करता है, लेकिन समस्या यह है कि यह उसी तरह की निर्देशिका संरचना नहीं होगी जैसा मैंने बनाया था .. ( youtube.com/watch?v=MH-khdiXqYs )
pr.nizar
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.