Multiboot sur USB avec syslinux


9

J'essaie de créer une clé USB multiboot avec Ubuntu, Backtrack et Mantra-OS (tout ubuntu comme vous pouvez le voir). Ce sont les étapes que j'ai faites:

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

Après cela, j'ai monté et copié des fichiers dans les ISO respectifs dans des dossiers que j'ai créés:

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/

Après que je remplissais sur le fichier de configuration syslinux.cfgdans /media/diqus/syslinuxce:

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 8 bits dans / media / disqus / syslinux /)

Maintenant tout va bien et je peux démarrer, j'ai le menu syslinux et même charger vmlinuz et initrd! Le système d'exploitation se charge en fait (j'ai l'écran de démarrage) mais j'ai ensuite l'erreur (quelque chose à propos de Busybox):

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

Je ne sais pas vraiment quel est le problème, mais je pense qu'il s'agit de chemins relatifs et de la "chose" du CD-ROM. J'en ai testé beaucoup (même relatif et absolu) mais rien ne fonctionne.

La réponse ne doit pas concerner MultiBootUSB, MultiSystem, Yummi ou tout autre outil; il ne doit pas s'agir également de grub ou grub2 ou de tout autre chargeur de démarrage. Je veux que mon approche fonctionne.


Pourquoi pas Grub2? Ce serait plus facile car cela ne vous oblige pas à extraire les ISO.
Zoredache

@Zoredache J'ai déjà fait avec grub2 mais je le veux avec syslinux et sans memdisk.
pr.nizar

1
PenDriveLinux Multiboot fera tout ce que vous devez faire. C'est pourquoi j'ai dit que c'était dupe.
James Mertz

Réponses:


1

J'ai résolu cela et ça fonctionne! J'ai trouvé un code de triche appelé: live-media-path = chemin / vers / casper / dossier avec ignore_uuid. Donc, le code de travail modifié:

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

Merci beaucoup!

PS: Pour d'autres distributions, vous pouvez rechercher des fichiers de configuration syslinux dans le référentiel de Yumi sur GitHub: https://github.com/bwnickle/YUMI/blob/master/src/menu/


Bien joué. pr.nizar. Pour mémoire, le ignore_uuidpeut être omis; aussi, pour tous ceux qui souhaitent copier l'ensemble minimal de fichiers à partir du CD, consultez sfxpt.wordpress.com/2014/02/18/… . -À- dire, rsync -vuaR .disk casper /mnt/usbpen/boot/lub1310.
xpt

0

Ok, puisque vous n'êtes pas intéressé par d'autres solutions, vous devrez prendre plus de temps pour comprendre le fonctionnement du processus de réservation.

Le chargeur de démarrage charge le noyau et initrd en mémoire , puis passe l'exécution au noyau. Après ce point, toute exécution est transmise au processus init / upstart dans l'initrd et à tous les scripts que le premier processus appelle. Les scripts de l'initrd ne savent vraiment rien du système de fichiers, ni du pathos relatif d'où il a été chargé. Ils ne peuvent pas simplement référencer un gros système de fichiers caspar dans ce répertoire.

L'initrd des livecds contient des scripts qui leur permettent de localiser le système de fichiers. Pour le système Ubuntu, il recherche un fichier particulier dans un dossier particulier à la racine de chaque système de fichiers connu sur chaque lecteur qu'il peut voir. S'il ne trouve rien, vous obtenez l'erreur que vous avez mentionnée.

Vous pouvez transmettre l' ISO-SCANoption à dans le cadre de votre ligne d'ajout. Cet argument indiquera au script qu'au lieu d'analyser les systèmes de fichiers, il effectuera un bouclage pour monter une image ISO et lire les fichiers à l'intérieur.

La simple suppression de fichiers dans un répertoire aléatoire que vous définissez n'est probablement pas prise en charge. Je n'ai pas regardé les scripts initrd livecd récemment, mais je ne connais pas d'options qui vous permettent de spécifier un répertoire arbitraire pour les fichiers extraits.

Si vous voulez un comportement qui n'a pas déjà été conçu par les développeurs, vous devrez recompiler vos initrds avec vos propres scripts et outils pour charger le système de fichiers racine. Laisser l'ISO sur le système de fichiers, puis utiliser l' iso-scan/filename=$isofileoption est la méthode que vous pouvez utiliser sans avoir à reconstruire votre initrd.


Le problème est que BT5R3 ne prend toujours pas en charge le paramètre iso-scan / filename ... Je dois patcher le fichier casper / initrd.gz. this.is.thoughtcrime.org.nz/multi-boot-bt5-from-usb-with-grub2 Y a-t-il d'autres solutions à mon problème?
pr.nizar

Si vous aviez ajouté ce détail à votre question d'origine, vous auriez obtenu beaucoup moins de critiques sur le fait que votre question était un doublon. Il existe presque certainement une solution, mais je ne la connais pas pour le moment.
Zoredache

Je peux faire les mêmes choses que Unetbootin mais le problème est que ce ne sera pas la même structure de répertoires que je l'ai fait. ( Youtube.com/watch?v=MH-khdiXqYs )
pr.nizar
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.