View previous topic :: View next topic |
Author |
Message |
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
Posted: Sat May 27, 2006 8:18 pm Post subject: [TIP] Boot USB |
|
|
Comment démarrer Gentoo sur un disk USB :
Tout d'abord il faut installer Gentoo sur ce disque pour cela suivre la documentation, que l'installation se fasse sur un disque USB ou ide ou même sata ne change pas chose.
Les seul prériquis sont :
1. Compilation du noyau avec genkernel. Il a ses détracteurs mais je le trouve très efficace et en plus on peut le modifier facilement.
2. Utiliser GRUB comme chargeur de démarrage.
Personnellement, je me suis installer une Gentoo sur un disque USB avec un noyau assez généraliste ce qui me permet de booter sur à peu près n'importe quel PC. De plus, j'ai ajouter x11-misc/mkxf86config afin de générer un xorg.conf adapter à la machine sur laquelle je vais travailler. Pour information, vous pouvez modifier /etc/X11/xorg.in pour ajouter ou supprimer des options à xorg. Ensuite, udev suffit pour la détection de matériel.
Une Gentoo sur USB est très pratique pour remplacer un LiveCD, soit pour faire des démonstrations soit pour réparer ou même installer un système, on y met ce que l'on veut
Maintenant, pour booter sur un disque USB il y a deux possibilités soit la carte mère accepte le boot sur USB donc la aucun problème.
Il suffit de configurer et d'installer grub sur le disque USB
Pour configurer grub ajouter cette ligne à grub.conf
Code: |
title Gentoo-2.6.16-gentoo-r5
root (hd1,0)
kernel /boot/kernel-genkernel-x86-2.6.16-gentoo-r5 ro root=/dev/ram0 udev nodevfs real_root=/dev/sda1 init=/linuxrc splash=verbose,fadein,theme:emergence quiet CONSOLE=/dev/tty1
initrd /boot/initramfs-genkernel-x86-2.6.16-gentoo-r5
|
C'est l'option real_root= qui est importante et qui permet d'indiquer où se trouve réellement le système.
Pour l'installation
Code: |
# grub-install /dev/sda1
|
/dev/sda1 représente la clé ou le disque USB
Et voila.
Alors maintenant, dans le cas ou le boot sur USB n'est pas possible il suffit de se préparer un petit cd qui permettra juste de booter, puis celui-ci pointera vers le disque USB :
Copier le contenu de /boot dans /tmp/lanceur
Code: |
# mkdir /tmp/lanceur
# cp -a /boot /tmp/lanceur
|
Dans /tmp/lanceur/boot/grub/ supprimer grub.conf et menu.lst. Les liens symboliques ne fonctionne pas avec grub en mode LiveCD.
Créer dans /boot/grub un fichier menu.lst afin qu'il ressemble à cela :
Code: |
title Gentoo-2.6.16-gentoo-r5
root (cd)
kernel (cd)/boot/kernel-genkernel-x86-2.6.16-gentoo-r5 ro root=/dev/ram0 udev nodevfs real_root=/dev/sda1 init=/linuxrc splash=verbose,fadein,theme:emergence quiet CONSOLE=/dev/tty1 scandelay
initrd (cd)/boot/initramfs-genkernel-x86-2.6.16-gentoo-r5
|
L'option "scandelay" permet d'attendre 10 secondes ce qui laisse le temps de monter la clé ou le disque USB.
Créer l'image iso :
Code: |
# cd /tmp/lanceur
# mkisofs -J -R -l -V "Lanceur" -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c livecd -o /tmp/live.iso /tmp/lanceur
|
Maintenant, vous pouvez emmener votre Gentoo Move partout.
Pour une version détaillée cf ==> https://forums.gentoo.org/viewtopic-t-466611.html _________________ L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php
Last edited by bouleetbil on Sat Sep 15, 2007 9:14 pm; edited 1 time in total |
|
Back to top |
|
|
geekounet Bodhisattva
Joined: 11 Oct 2004 Posts: 3772 Location: Wellington, Aotearoa
|
Posted: Sat May 27, 2006 8:29 pm Post subject: |
|
|
Intéressant
J'ai toutefois une petite question : l'option real_root=/dev/sda1 ne risque t'elle pas de poser problème si d'autres disques usb sont branchés et sont détectés par le kernel avant celle sur laquelle on boot ? |
|
Back to top |
|
|
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
Posted: Sat May 27, 2006 8:44 pm Post subject: |
|
|
pierreg wrote: | Intéressant
J'ai toutefois une petite question : l'option real_root=/dev/sda1 ne risque t'elle pas de poser problème si d'autres disques usb sont branchés et sont détectés par le kernel avant celle sur laquelle on boot ? |
Si en effet, il vaut mieux éviter de brancher deux disques USB au boot.
En fait, je n'y avais jamais pensé j'ai jamais eu le cas. _________________ L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php |
|
Back to top |
|
|
geekounet Bodhisattva
Joined: 11 Oct 2004 Posts: 3772 Location: Wellington, Aotearoa
|
Posted: Sun May 28, 2006 9:25 am Post subject: |
|
|
Et le pb se pose aussi si ya des disques SATA, et là c'est moins facile à contourner ... |
|
Back to top |
|
|
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Sun May 28, 2006 11:00 am Post subject: |
|
|
Super astuce, vraiment !
Je n'avais jamais pris le temps de m'y pencher, et j'avais toujours opté pour des LiveCD "clefs-en-main". Merci beaucoup pour cette astuce !
D'ailleurs, si tu as un peu de temps pour développer la phase de création, avec des détails sur les fichiers de conf, etc, je pense que ça peut intéresser pas mal de monde ici, et du même coup un [TIP] deviandra un [HOWTO] très conséquent !
Merci encore ! _________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres. |
|
Back to top |
|
|
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
Posted: Sun May 28, 2006 8:11 pm Post subject: |
|
|
Pour le problème des disques Sata ou d'autres USB présent, on peux se baser sur la méthode de détection du LiveCD officiel qui cherche un fichier livecd à la racine.
1. Créer un fichier GentooMove
Code: |
# touch /GentooMove
|
2. Modifier linuxrc
Editer /usr/share/genkernel/generic/linuxrc afin de rajouter une option bootusb à genkernel.
A la ligne 73 ajouter :
Code: |
bootusb)
#création point de montage temporaire
mkdir /cle
for a in `find /dev/ -name sd??`
do
mount $a /cle
#attente de 10 secondes pour avoir le temps de monter la clé
sleep 10
#vérification si on trouve le fichier GentooMove
if [ -e /cle/GentooMove ]
then
REAL_ROOT="${a}"
umount ${a}
break
fi
umount ${a}
done
;;
|
3. Ajouter l'option bootusb à grub.
Et voila, plus de problème (enfin j'espère )
Je vais voir pour faire un howto plus complet. _________________ L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php |
|
Back to top |
|
|
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
Posted: Sun May 28, 2006 9:19 pm Post subject: |
|
|
J'ai posté un peu vite, désolé
En faite, le test doit être fait plus tard sinon les modules ne sont pas chargés et donc pas de périphériques
Pour la modification de linuxrc
Ajouter à la ligne 74
Code: |
bootusb)
BOOTUSB=1
;;
|
Ajouter à la ligne 244 avant
Code: |
# Run debug shell if requested
rundebugshell
|
Code: |
if [ "${BOOTUSB}" -eq '1' ] ; then
#création point de montage temporaire
mkdir /cle
for a in `find /dev/ -name sd??`
do
mount $a /cle
#attente de 10 secondes pour avoir le temps de monter la clé
sleep 10
#vérification si on trouve le fichier GentooMove
if [ -e /cle/GentooMove ]
then
REAL_ROOT="${a}"
umount ${a}
break
fi
umount ${a}
done
fi
|
_________________ L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php |
|
Back to top |
|
|
TrizoLakai Apprentice
Joined: 09 Jun 2006 Posts: 231 Location: Nantes (FRANCE)
|
Posted: Mon Jun 12, 2006 12:24 pm Post subject: |
|
|
Merci pour ce [TIP],
init=linuxrc, CONSOLE=, ne servent à rien chez moi.
Et je me demander pourquoi il faut à tout pris compiler avec genkernel ?
J'ai essayé sans genkernel, en mettant tout les modules genre ehci_usb, usbcore, usbstorage, ...
Et bien j'ai un kernel panic, même si j'utilise l'option scandelay. En fait je pense que le plus important dans ce que fais genkernel est l'initrd. Alors j'ai aussi essayé de mettre tout les modules relatif à l'usb de mon disque dur externe dans l'intrd. Et j'ai aussi un kernel panic. Alors voila je ne sais pas si c'est impossible ou si c'est moi qui oublis des modules, ou même si je ne sais pas faire un initrd .
Mais j'aimerais bien des éclaircissement la dessus. Merci beaucoup,
note : mon bios ne gère pas le boot sur usb, alors je boot sur mon DD interne qui a grub et le noyau, ansi que l'initrd compilé par genkernel, pour ensuite booter sur mon DD - Externe.
Merci, |
|
Back to top |
|
|
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
Posted: Mon Jun 12, 2006 7:27 pm Post subject: |
|
|
Bonsoir,
J'ai la même configuration sur un portable
TrizoLakai wrote: |
note : mon bios ne gère pas le boot sur usb, alors je boot sur mon DD interne qui a grub et le noyau, ansi que l'initrd compilé par genkernel, pour ensuite booter sur mon DD - Externe. |
Chez moi cela fonctionne, en faite dans ce cas, il faut utiliser genkernel pour utiliser "linuxrc" et indiquer le "real_root".
J'aurrais quelques questions :
Pourrais-tu envoyer ton grub.conf ?
Quel est le système de fichier sur le disque USB ?
Quel est le message exact du kernel panic ?
Les disques durs internes sont sata ?
(Je préfère demander pleins de renseignements, j'ai toujours peur de manquer ) _________________ L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php |
|
Back to top |
|
|
TrizoLakai Apprentice
Joined: 09 Jun 2006 Posts: 231 Location: Nantes (FRANCE)
|
Posted: Mon Jun 19, 2006 11:59 am Post subject: |
|
|
Je me suis mal exprimé. Ton tuto fonctionne chez moi si j'utilise genkernel.
MAIS, si j'essais de faire un initrd à la main ou un kernel avec toute en dur, à la main également ça ne fonctionne pas.
Si tu avais compris ça :
reiserfs partout.
pas de disque en sata.
kernel panic : system de fichier en 0,0 non trouvé. Bad link etc. |
|
Back to top |
|
|
TrizoLakai Apprentice
Joined: 09 Jun 2006 Posts: 231 Location: Nantes (FRANCE)
|
Posted: Mon Jun 19, 2006 5:08 pm Post subject: |
|
|
En fait j'amerais faire mon propre inintrd pour adpater tout ce la à n'importe quelle distribution |
|
Back to top |
|
|
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
Posted: Wed Jun 21, 2006 9:20 pm Post subject: |
|
|
Bonsoir,
J'avais pas compris.
Pour créer un initrd assez générique :
Soit modifier /usr/share/genkernel/gen_initramfs.sh afin de créer un ramfs et utiliser le linuxrc de genkernel
Soit installer et utiliser genkernel sur la distribution choisie.
Le problème est que tu risques de te heurter à des problèmes spécifiques à chaque distribution, comme certaines utilise le bootsplash et d'autre le gensplash.
Sinon le plus simple, faire des recherches sur les distributions que tu comptes essayer afin de regarder comment est générer l'initrd et modifier le linuxrc existant afin de rajouter l'option real_root et un temps mort pour laisser le temps de monter les disques USB. (mais à mon avis déjà intégré à certaines distrib)
Voila, après si tu as une idée précise sur une distribution je peux essayer de t'aider _________________ L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php |
|
Back to top |
|
|
TrizoLakai Apprentice
Joined: 09 Jun 2006 Posts: 231 Location: Nantes (FRANCE)
|
Posted: Sun Jun 25, 2006 2:03 pm Post subject: |
|
|
Et bien je voulais faire la même chose pour une archlinux.
J'ai essayé de prendre le même noyau que gentoo-EXT et le même initrd, mais il me demande les modules d'un noyau que je n'ai pas au démarrage, enfin un truc bizarre quand même.
Alors j'aimerais faire un noyau utilisable pour tout les distributions. |
|
Back to top |
|
|
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
Posted: Sun Jun 25, 2006 8:18 pm Post subject: |
|
|
Bonsoir,
Pour utiliser un noyau déjà compilé, il faut récuperer /boot/initramfs-genkernel-x86-version du noyau, /boot/kernel-genkernel-x86-version du noyau et /lib/modules/version du noyau
Il doit manquer /lib/modules/version du noyau _________________ L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php |
|
Back to top |
|
|
TrizoLakai Apprentice
Joined: 09 Jun 2006 Posts: 231 Location: Nantes (FRANCE)
|
Posted: Mon Jun 26, 2006 10:26 am Post subject: |
|
|
Et bien justement, il ne trouvé pas les libs dans /lib/modules/2.6.16.16/, alors que mon noyau a ce nom 2.6.16-gentoo-r1, mais je lui met quand même dans le repertoire demandé. Ensuite il ne trouve pas les modules dans /lib/modules/2.6.16-gentoo-r1, alors je copie aussi.
Je reboote, invalid format *.ko, blablabla. |
|
Back to top |
|
|
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
Posted: Tue Jun 27, 2006 7:36 pm Post subject: |
|
|
Bonsoir,
Apres quelques recherches il est possible que cela vienne de la version de GCC qui a été utilisé.
Le mieux serais quand même de compiler le noyau sous arch plutôt que d'utiliser celui compilé sous Gentoo. _________________ L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php |
|
Back to top |
|
|
alpha_one_x86 Guru
Joined: 29 Oct 2006 Posts: 544
|
Posted: Wed Feb 28, 2007 7:25 pm Post subject: |
|
|
Je voudrai ajouter une correction, qui a été obligatoire chez moi et chez d'autre personne, car certain on pu le remarquer, on ne peu pas démonter la partition par le périphérique du style /dev/sdaX mais seulement par sont point de montage, ici /cle, voici une solution possible (j'y ai ajouter le suport des disk dur ide, et la mise a jour automatique du fstab):
Code: | bootusb)
#création point de montage temporaire
mkdir /cle
for a in `find /dev/ -name [sh]d??`
do
mount $a /cle
#vérification si on trouve le fichier GentooMove
if [ -e /cle/GentooMove ]
then
REAL_ROOT="${a}"
rm -f /cle/etc/fstab 2> /dev/null
cp /cle/etc/fstab.in /cle/etc/fstab
echo "${a} / auto defaults 1 1" >> /cle/etc/fstab
umount /cle
break
fi
umount /cle
done
;; |
|
|
Back to top |
|
|
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
|
Back to top |
|
|
|