3 votes

Comment utiliser Syslinux pour charger en chaîne une installation Ubuntu ?

Je fais de mon mieux pour détailler ma question. Si votre patience s'épuise, passez au dernier paragraphe.

J'ai téléchargé Ubuntu 13.04 depuis son site officiel et extrait les fichiers dans un dossier ubuntu\ sur la clé USB ( Z : par exemple). Les fichiers sont donc maintenant dans Z:\ubuntu\

Avant cela, J'ai téléchargé Syslinux 5.10( 6.00 a des bugs) et l'ai utilisé pour installer le code de démarrage sur une clé USB avec cette commande :

syslinux.exe --mbr --active --directory /boot/syslinux/ --install Z :

Ensuite, j'ai copié chain.c32 et les librairies nécessaires dans le répertoire Z:\boot\syslinux et ajouté à syslinux.cfg (la partie non importante est ignorée) :

Chaîne COM32.c32

APPEND isolinux=/ubuntu/isolinux/isolinux.cfg

Syslinux a démarré avec succès mais n'a pas réussi à démarrer Ubuntu, en disant :

Err : l'option 'maps' nécessite un secteur'', mais je ne savais pas ce que cela signifiait.

Puis j'ai essayé de charger le configure isolinux d'Ubuntu en utilisant :

config /ubuntu/isolinux/isolinux.cfg /ubuntu

Mais je n'ai reçu qu'un message disant :

Chargement de gfxboot... Échec : Aucun fichier ou répertoire de ce type

J'ai réessayé avec :

config /ubuntu/isolinux/isolinux.cfg /ubuntu/isolinux/

Et il a dit :

Échec du chargement du fichier COM32 gfxboot.c32

Mais j'ai pu voir des étiquettes avec [TAB] Clé :

botte :

live-installation check memtest hd mainmenu help

J'ai donc essayé de démarrer Ubuntu via la ligne de commande :

boot : live

Et ça l'a montré :

Le chargement de /casper/vmlinuz a échoué : Aucun fichier ou répertoire de ce type

Je pense que Syslinux reconnaît Z:\ comme répertoire racine / pas Z:\ubuntu\ donc il n'a pas réussi à charger vmlinz. J'ai donc déplacé les fichiers vers Z:\ et redémarrer. Bien que syslinux n'ait toujours pas réussi à charger gfxboot, j'ai démarré Ubuntu avec succès avec

config /isolinux/isolinux.cfg /isolinux/

boot : live

Je ne comprends pas pourquoi il n'a pas pu charger gfxboot.c32 alors qu'il a lu correctement la configuration d'isolinux. Peut-être que syslinux que j'utilise et isolinux qu'Ubuntu utilise ne sont pas les mêmes, et que le bootcode et gfxboot ne sont pas compatibles. compatibles.

Syslinux Wiki mentionne que CONFIG peut redémarrer le boot loader en utilisant un fichier de configuration différent et définir un nouveau répertoire d'accueil en utilisant :

CONFIG /path/to/cfg/file/configfile.cfg /path/to/new/base/dir

J'ai suivi le guide mais j'ai déposé pour laisser Syslinux régler Z:\ubuntu\ comme répertoire racine. Peut-être ai-je mal compris ce guide.

Ma question est donc la suivante : comment mettre Ubuntu ou un autre système d'exploitation dans un dossier autonome et configurer correctement syslinux pour définir le répertoire où Ubuntu ou l'autre système d'exploitation se trouve en tant que répertoire racine afin que je puisse démarrer le système d'exploitation avec succès ?

1voto

Peter Pajchl Points 1688

Je ne sais pas si c'est encore pertinent, mais j'ai les mêmes problèmes et je continue à jouer avec. J'ai eu quelques succès, que je souhaite partager.

Tout d'abord, comme j'essaie de réaliser la même chose, j'ai tout de suite su ce qu'il essayait de faire. Il essaie de fabriquer une clé usb multi-boot pour installer plusieurs distributions Linux.

Pour intégrer chaque OS et faciliter les mises à jour, il est donc logique d'essayer de charger le boot loader de chaque distro, comme s'il était seul sur le système de fichiers. Ainsi, il a essayé de charger en chaîne leur configuration isolinux (qui vient avec le .iso). J'ai aussi essayé cela, mais je n'ai pas encore eu de chance.

La seule solution que j'ai trouvée (testée uniquement avec l'iso netboot) est d'utiliser la méthode consistant à charger la nouvelle configuration (dans ce cas /path/to/distro/isolinux.cfg), en utilisant l'instruction CONFIG. Seulement, dans ce cas, cela a donné lieu à des erreurs, alors j'ai essayé sa configuration enfant "menu.cfg". Cela a évité le menu de démarrage d'Ubuntu, mais a chargé l'installateur Ubuntu avec succès.

N'oubliez pas que vous devez également spécifier le nouveau domicile, soit sur la ligne CONFIG, soit en utilisant APPEND ci-dessous.

Enfin quelques commentaires sur la question. Lorsqu'il s'agit de PATH (Z :), ce n'est pas pertinent ici, car lorsque vous exécutez à partir de la clé USB, vous n'utilisez pas Windows et les règles UNIX s'appliquent. Donc, entrez seulement le chemin de la manière UNIX /xxx/zzz. Par exemple, "Je pense que Syslinux reconnaît Z:\ comme répertoire racine /" n'a aucun sens, car /=racine, dans Windows (lettre de lecteur+)\ (\=racine).

Puisque vous avez exactement le même objectif et les mêmes problèmes que moi, je partagerai tous mes progrès à l'avenir.

EDIT : Voici la réponse qui va très probablement tout résoudre.

Le simple fait que vous devez vous rappeler est que les fichiers COM32 sont incompatibles entre les différentes versions de SYSLINUX/ISOLINUX. SYSLINUX et ISOLINUX sont eux-mêmes compatibles entre eux.

Sur l'Ubuntu Netboot.iso, un seul fichier COM32 est utilisé, vesamenu.c32. Je l'ai simplement remplacé par celui de mon installation principale de syslinux sur l'usb (/boot/syslinux/vesamenu.c32).

Ensuite, il suffit de faire pointer votre menu de démarrage vers le fichier qui lancerait autrement l'installation du système d'exploitation (/boot/ubuntu/isolinux.cfg). Utilisez CONFIG pour cela et cela fonctionnera comme par magie. Plus de "Could not load vesamenu.c32".

-1voto

Szymon Szydełko Points 458

Ok, après avoir rassemblé les faits et relu la question et notre discussion : Vous ne pouvez pas installer un système d'exploitation dans un "dossier" (c'est à dire, vous ne pouvez pas installer Linux dans un dossier tel que /ubuntu/, you need to install it to / folder). Linuxes want a full featured partition: they need to put /usr , /var`, à la racine de ce qu'ils considèrent comme un système de fichiers. (le chrootage mis à part)

De plus, Linux ne peut pas être installé sur FAT-32. Ce système de fichiers est dépourvu de liens symboliques et de certaines autres fonctionnalités qui sont le fondement du fonctionnement de Linux.

Vous avez besoin de ext3/4, xfs ou d'un autre système de fichiers réel supporté. Cependant, vous pouvez simplement installer ubuntu sur l'USB comme sur n'importe quel disque dur normal - il suffit de configurer : une partition fat32 ou ext2 pour le gestionnaire de démarrage et l'image du noyau, et ext4 pour le système d'exploitation. Vous serez en mesure de apt-get des programmes, sauvegarder des documents et tout le reste.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X