syslinux로 USB를 통한 멀티 부트


9

Ubuntu, Backtrack 및 Mantra-OS를 사용하여 멀티 부팅 USB를 만들려고합니다 (모든 우분투는 볼 수 있습니다). 이것들은 내가 한 단계입니다.

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

@Zoredache 나는 grub2로 이미 해냈지만 syslinux와 memdisk없이 그것을 원한다.
pr.nizar

1
PenDriveLinux Multiboot 는 필요한 모든 것을 할 것입니다. 그렇기 때문에 이것이 속임수라고 말했습니다.
James Mertz

답변:


1

나는 실제로 이것을 해결했고 작동합니다! live_media-path = path / to / casper / folder와 ignore_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위해서만 생략 할 수 있습니다. 또한 CD에서 최소 파일 세트를 복사하려는 사람은 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추가 라인의 일부로 옵션을 전달할 수 있습니다 . 이 인수는 스크립트에 파일 시스템을 스캔하는 대신 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

원래 질문에 그 세부 사항을 추가했다면 질문이 중복되는 것에 대해 훨씬 덜 불명확했을 것입니다. 거의 확실하게 해결책이 있지만 지금은 모르겠습니다.
Zoredache

unetbootin과 같은 작업을 수행 할 수 있지만 문제는 내가 만든 것과 동일한 디렉토리 구조가 아니라는 것입니다 .. ( youtube.com/watch?v=MH-khdiXqYs )
pr.nizar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.