Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[TIP] Boot USB
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Sat May 27, 2006 8:18 pm    Post subject: [TIP] Boot USB Reply with quote

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. :lol:

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
View user's profile Send private message
geekounet
Bodhisattva
Bodhisattva


Joined: 11 Oct 2004
Posts: 3755
Location: Lyon, France

PostPosted: Sat May 27, 2006 8:29 pm    Post subject: Reply with quote

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 ?
_________________
Google+ | Twitter
Back to top
View user's profile Send private message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Sat May 27, 2006 8:44 pm    Post subject: Reply with quote

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. :wink:
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
View user's profile Send private message
geekounet
Bodhisattva
Bodhisattva


Joined: 11 Oct 2004
Posts: 3755
Location: Lyon, France

PostPosted: Sun May 28, 2006 9:25 am    Post subject: Reply with quote

Et le pb se pose aussi si ya des disques SATA, et là c'est moins facile à contourner ... :?
_________________
Google+ | Twitter
Back to top
View user's profile Send private message
anigel
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 1880
Location: Un petit bled pas loin de Limoges ;-)

PostPosted: Sun May 28, 2006 11:00 am    Post subject: Reply with quote

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
View user's profile Send private message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Sun May 28, 2006 8:11 pm    Post subject: Reply with quote

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 :lol: )
Je vais voir pour faire un howto plus complet. :wink:
_________________
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
View user's profile Send private message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Sun May 28, 2006 9:19 pm    Post subject: Reply with quote

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 :oops:

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
View user's profile Send private message
TrizoLakai
Apprentice
Apprentice


Joined: 09 Jun 2006
Posts: 231
Location: Nantes (FRANCE)

PostPosted: Mon Jun 12, 2006 12:24 pm    Post subject: Reply with quote

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 :roll: .

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
View user's profile Send private message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Mon Jun 12, 2006 7:27 pm    Post subject: Reply with quote

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 :wink: )
_________________
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
View user's profile Send private message
TrizoLakai
Apprentice
Apprentice


Joined: 09 Jun 2006
Posts: 231
Location: Nantes (FRANCE)

PostPosted: Mon Jun 19, 2006 11:59 am    Post subject: Reply with quote

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
View user's profile Send private message
TrizoLakai
Apprentice
Apprentice


Joined: 09 Jun 2006
Posts: 231
Location: Nantes (FRANCE)

PostPosted: Mon Jun 19, 2006 5:08 pm    Post subject: Reply with quote

En fait j'amerais faire mon propre inintrd pour adpater tout ce la à n'importe quelle distribution
Back to top
View user's profile Send private message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Wed Jun 21, 2006 9:20 pm    Post subject: Reply with quote

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
View user's profile Send private message
TrizoLakai
Apprentice
Apprentice


Joined: 09 Jun 2006
Posts: 231
Location: Nantes (FRANCE)

PostPosted: Sun Jun 25, 2006 2:03 pm    Post subject: Reply with quote

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. :roll:

Alors j'aimerais faire un noyau utilisable pour tout les distributions.
Back to top
View user's profile Send private message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Sun Jun 25, 2006 8:18 pm    Post subject: Reply with quote

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
View user's profile Send private message
TrizoLakai
Apprentice
Apprentice


Joined: 09 Jun 2006
Posts: 231
Location: Nantes (FRANCE)

PostPosted: Mon Jun 26, 2006 10:26 am    Post subject: Reply with quote

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
View user's profile Send private message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Tue Jun 27, 2006 7:36 pm    Post subject: Reply with quote

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
View user's profile Send private message
alpha_one_x86
Guru
Guru


Joined: 29 Oct 2006
Posts: 544

PostPosted: Wed Feb 28, 2007 7:25 pm    Post subject: Reply with quote

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
View user's profile Send private message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Wed Feb 28, 2007 9:49 pm    Post subject: Reply with quote

Bonsoir,
Merci pour cette correction j'en ai profité pour ajouter
Code:
for a in `find /dev/ -name [sh]d??`

au topic gentoomove qui est plus complet et la suite de celui-ci :
https://forums.gentoo.org/viewtopic-p-3346620.html

En effet j'avais eu ce problème de démontage mais j'avais corrigé que le topic gentoomove, j'avais oublié celui-ci.
_________________
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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum