syslinuxを使用したUSBでのマルチブート


9

私は、Ubuntu、Backtrack、Mantra-OSを搭載したマルチブートUSBを作成しようとしています(ご覧のとおり、すべて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

その後、それぞれの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:/ media / disqus / syslinux /内の640x480 8ビットpng)

これですべてがうまくいき、起動できます。syslinuxメニューがあり、vmlinuzとinitrdをロードすることさえできます!OSは実際にロードしています(スプラッシュスクリーンがあります)が、エラー(Busyboxについての何か)があります。

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

何が問題なのかはよくわかりませんが、相対パスとCDROMの "もの"が原因だと思います。私はそれらの多くをテストしましたが(たとえ相対でも絶対でも)、何も機能しません。

答えは、MultiBootUSB、MultiSystem、Yummi、またはその他のツールに関するものであってはなりません。また、grub、grub2、またはその他のブートローダーに関するものであってはなりません。私のアプローチを機能させたい。


なぜGrub2ではないのですか?ISOを抽出する必要がないため、これは簡単です。
Zoredache 2013

@Zoredache私はすでにgrub2で実行しましたが、syslinuxでmemdiskなしでそれを望みます。
pr.nizar 2013

1
PenDriveLinux Multibootはあなたがする必要があるすべてをします。だから私はこれはだまされたと言った。
James Mertz 2013

回答:


1

私は実際にこれを解決し、うまくいきました!ignore_uuidとともにlive-media-path = path / to / casper / folderというチートコードを見つけました。したがって、変更された作業コード:

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:他のディストリビューションについては、GitHub:https : //github.com/bwnickle/YUMI/blob/master/src/menu/にあるYumiのリポジトリでsyslinux設定ファイルを探すことができます


よくやった。pr.nizar。参考までに、ignore_uuidは省略できます。また、CDから最小限のファイルセットをコピーする場合は、sfxpt.wordpress.com / 2014/02/18 /…をチェックしてください。すなわち、rsync -vuaR .disk casper /mnt/usbpen/boot/lub1310
xpt '19

0

さて、あなたは別の解決策に興味がないので、あなたは本のプロセスがどのように機能するかを理解するためにもっと時間が必要になるでしょう。

ブートローダーはカーネルとinitrdをメモリにロードし、実行をカーネルに渡します。その後、すべての実行は、initrdのinit / upstartプロセス、および最初のプロセスが呼び出すスクリプトに渡されます。initrd内のスクリプトは、ファイルシステム、またはロード元の相対パスについて本当に何も知りません。彼らはそのディレクトリにある大きなcasparファイルシステムを単に参照することはできません。

livecdsのInitrdには、ファイルシステムの場所を特定できるスクリプトが含まれています。Ubuntuシステムの場合、認識できるすべてのドライブ上のすべての既知のファイルシステムのルート内にある特定のフォルダーで特定のファイルを探します。何も見つからない場合は、先ほど述べたエラーが発生します。

ISO-SCANオプションを追加行の一部として渡すことができます。この引数は、ファイルシステムをスキャンする代わりにISOをループバックマウントし、その中からファイルを読み取ることをスクリプトに伝えます。

定義したランダムディレクトリにファイルをドロップするだけでは、おそらくサポートされません。最近はlivecd initrdスクリプトを確認していませんが、抽出したファイル用に任意のディレクトリを指定できるオプションについては知りません。

開発者がまだ設計していない動作が必要な場合は、独自のスクリプトとツールを使用してinitrdを再構築し、ルートファイルシステムをロードする必要があります。ISOをファイルシステムに残し、iso-scan/filename=$isofileオプションを使用するのは、initrdを再構築せずに使用できる方法です。


問題は、BT5R3 がまだ iso-scan / filenameパラメーターをサポートしていないことです... casper / initrd.gzファイルにパッチを適用する必要があります。this.is.thoughtcrime.org.nz/multi-boot-bt5-from-usb-with-grub2問題に対する他の解決策はありますか?
pr.nizar 2013

元の質問にその詳細を追加していた場合、質問が重複していることについてのフレークがはるかに少なくなります。ほぼ確実な解決策がありますが、現時点ではわかりません。
Zoredache 2013

私はunetbootinが行うのと同じものを作ることができますが、問題は、私は...(作ったとして、それは同じディレクトリ構造ではないということですyoutube.com/watch?v=MH-khdiXqYs
pr.nizar
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.