# [Kernel] Mise a jour de noyau et Grub. [Resolu]

## yolcu

Bonjour,

J'ai installer la Gentoo a partir d'une CD de ''install-86-minimal-20131029.iso''. 

Après installation de systeme de base Gentoo j'ai installer Xorg et Xfce. 

J'ai fait un mise a jour de l'arbre de portage avec ''#emerge –sync'' et/ou ''emerge-webrsync'' et j'ai fait un mise a jour complète de système entier avec ''#emerge –update –deep –with-bdeps=y –newuse world''et j'ai continuer par un ''#emerge --depclean'' et ''#revdep-rebuild'' .  

Le noyau utiliser par le CD d'installation c’était ''Linux-3.10.7-gentoo-r1'', mais pendent un mise a jour j'ai vue que il y a un nouveau noyau ''Linux-3.10.17-gentoo'',  j'ai vue ''emerge'' a installer le nouveau noyau et désinstaller ancienne, mais au démarrage de PC j'ai que ancienne noyau dans Grub, en plus au démarrage de PC, Grub bascule vers une autre fenêtre de Grub et encore vers une autre fenêtre sans Grub qui ressemble a un démarrage de Grub  mais dans cette fenêtre aussi c'est l'ancienne noyau qui apparais.  

Voici le comportement de système et grub au démarrage:   

Fenetre 1:

GNU GRUB version 2.00

Gentoo GNU/Linux

*Options avancée pour Gentoo GNU/Linux

Basculement vers une nouvel fenêtre

Fenetre 2:

GNU GRUB version 2.00

*Gentoo GNU/Linux, avec Linux x86-3.10.7-gentoo-r1

 Gentoo GNU/Linux, avec Linux x86-3.10.7-gentoo-r1 (mode de dépannage)

Basculement vers une nouvel fenêtre

Fenetre 3:

Démareage de <<Gentoo GNU/Linux>>

Chargement de Linux x86-3.10.7-gentoo-r1...

Chargement du disque mémoire initial...

....

....

Mais la plus par de temps la fenêtre 2 n'apparais pas. Elle apparais que au démarrage a froid (si on peut dire).

Dans /usr/src j'ai un dossier de /linux un dossier de /linux-3.10.7-gentoo-r1 un dossier de /Linux-3.10.17-gentoo et un fichier de .keep qui est vide. Ce que ce trouve a l’intérieur de dossier /linux et /linux-3.10.7-gentoo-r1 sont identique. 

Dans le répertoire /boot j'ai absolument rien, il est vide ? Et pour tant a l’étape d'installation de grub2 j'ai bien lancer ces commandes:

#emerge sys-boot/grub:2 (pour installer Grub2)

#grub2-install /dev/sda (pour installons des fichiers de Grub2 dans MBR)

#grub2-mkconfig -o /boot/grub/grub.cfg (pour générer le fichier ''grub.cfg'' sous /boot/grub/).

Je ne comprend pas pourquoi le répertoire /boot est vide, pourquoi ils n'y a pas un dossier /grub, ni un fichier ''grub.conf'', ou ils se trouve les fichier de configuration du au Grub ?

A l’installation de Gentoo, a l’étape d'installation et configuration d'un noyau j'ai fait : 

#emerge gentoo-sources

#emerge genkernel

#genkernel all

Je me demande, puisque je passe par genkernel, est ce que installation de noyau gentoo-sources est il nécessaire, ou gengernel est suffisant?

Mon système fonctionne plus au moins correctement, mais comment résoudre ce problème de nouveau noyaux qui n'est pas pris en charge et inexistence de répertoire /grub et son fichier de configuration grub.conf dans /boot et ce démarrage anormale de Grub au démarrage de PC ?

CordialementLast edited by yolcu on Fri Nov 08, 2013 11:05 pm; edited 2 times in total

----------

## nutsi

Bonjour,

Pour ton /boot vide, peut-être est-il sur une autre partition qui ne serait pas monté? En tout cas, si ton /boot n'est pas sur une partition séparée... il ne devrait pas être vide.

 *Quote:*   

> Dans /usr/src j'ai un dossier de /linux un dossier de /linux-3.10.7-gentoo-r1 un dossier de /Linux-3.10.17-gentoo et un fichier de .keep qui est vide. Ce que ce trouve a l’intérieur de dossier /linux et /linux-3.10.7-gentoo-r1 sont identique. 

 

Si tu fais un ls -l dans /usr/src, tu devrais voir que /usr/src/linux n'est qu'un simple lien symbolique vers /usr/src/linux-3.10.7-gentoo-r1. C'est donc on ne peut plus normal que les 2 répertoires soient identiques.

Lorsque tu fais un 

```
emerge gentoo-sources
```

, tu vas juste installer les sources d'un nouveau kernel si nécessaire. Tu auras donc un nouveau répertoire dans /usr/src. Pour changer le lien symbolique dont je te parlais plus haut, tu peux utilisé eselect (eselect kernel), et c'est seulement à partir de ce moment là que tu pourras utilisé genkernel sur ton nouveau noyau.

Par contre, ton problème de /boot vide et de grub je n'ai pas trop d'idée sur le coup.

Cordialement,

----------

## ayame99

Pour la syntaxe de eselect je te conseille de lire http://www.gentoo.org/proj/fr/eselect/user-guide.xml

dans ton cas ca donne 

```
eselect kernel list
```

dans mon cas ca me retourne:

```
Available kernel symlink targets:

  [1]   linux-3.2.12-gentoo

  [2]   linux-3.6.11-gentoo

  [3]   linux-3.8.13-gentoo *

  [4]   linux-3.10.7-gentoo-r1

```

l étoile te signale vers quel kernel le lien symbolique pointe.Pour choisir ton kernel il suffit de faire 

```
eselect kernel set 4
```

 à adapter a ta configuration exemple set 1

Une autre option pour eviter de faire cette sélection à chaque fois est de travailler avec la variable  "symlink" du paquet gentoo-sources pour se faire rajoute dans ton fichier package.use (/etc/portage/package.use) la ligne

```
sys-kernel/gentoo-sources symlink
```

SI tu veus des info pour genkernel

http://wiki.gentoo.org/wiki/Genkernel/fr

 *Quote:*   

> Bonjour,
> 
> Pour ton /boot vide, peut-être est-il sur une autre partition qui ne serait pas monté? En tout cas, si ton /boot n'est pas sur une partition séparée... il ne devrait pas être vide. 

 

Pour vérifier ca regarde dans ton fichier fstab (/etc/fstab)

exemple:

```
/dev/sda1                                       /boot           ext2            noauto,noatime  1 2
```

on remarque que la partition est est sur une partition séparée (/dev/sda1   /boot) et qu il n est pas monté par défaut ( noauto)

si tu as le même genre de ligne monte ton /boot 

```
mount /boot
```

 avant de lancer genkernel et grub2-mkconfig -o /boot/grub/grub.cfg

je ne sais pas si le script genkernel (jamais utilisé genkernel) et grub2-mkconfig vérifie si /boot est monté.

Par contre méfie toi si tu utilise les drivers nvidia :chaque recompilation, mise à jour du kernel doit se suivre par la recompilation du drivers nvidia.

----------

## xaviermiller

Tip of the day: après chaque compilation/installation du kernel, ne pas oublier un petit

```
emerge @module-rebuild
```

  :Wink: 

----------

## yolcu

 *Quote:*   

> nutsi dit:
> 
> Pour ton /boot vide, peut-être est-il sur une autre partition qui ne serait pas monté? En tout cas, si ton /boot n'est pas sur une partition séparée... il ne devrait pas être vide.

 

Effectivement j'ai une partition /sda1 pour /boot qui n'est pas été monter automatiquement, j'ai modifier ''fstab'', depuis /boot/grub est présent.

 *Quote:*   

> nutsi dit:
> 
> Lorsque tu fais un ''emerge gentoo-sources'' tu vas juste installer les sources d'un nouveau kernel si nécessaire. Tu auras donc un nouveau répertoire dans /usr/src. Pour changer le lien symbolique dont je te parlais plus haut, tu peux utilisé eselect (eselect kernel), et c'est seulement à partir de ce moment là que tu pourras utilisé genkernel sur ton nouveau noyau.

 

J'ai pas fait ''emerge gentoo-source'', le seul ''emerge gentoo-source'' que j'ai fait, c’était pendent installation de Gentoo. Mais la il s'agit d'un mise a jour. Mais si je comprend bien, même après une mise a jour de kernel (fait automatiquement) par ''#emerge –sync'' ou par ''#emerge –update –deep –with-bdeps=y –newuse world'', utilisateur doit intervenir pour la compilation/installation de kernel et modules, et relancer un ''grub2-mkconfig -o /boot/grub/grub.cfg'' pour que le nouveau kernel soit pris en charge par grub2 ? 

Mais alors pourquoi a chez moi un ''[b]#eselect kernel list[/b]'' dit ''[1]  linux-3.10.17-gentoo*'', est rien d'autre ? Ou est ''linux-3.10.7-gentoo-r1'' ? Si il est  désinstaller pendent la mise a jour alors pourquoi c'est toujours lui qui apparais au démarrage ?

Merci pour tes remarque, ça été utile.

@ayame99, merci beaucoup pour ton message précis, détaillé est avec des exemples. J'ai ajouter ''sys-kernel/gentoo-sources symlink'' dans ''/etc/portage/package.use''. 

 *Quote:*   

> ayame99 dit:
> 
> Par contre méfie toi si tu utilise les drivers nvidia :chaque recompilation, mise à jour du kernel doit se suivre par la recompilation du drivers nvidia.

 

J'utilise le pilote "nouveau"pour la carte graphique. Mais j’ai du faire quelle que modifications dans kernel quoi même.

 *Quote:*   

> ayame99 dit:
> 
> je ne sais pas si le script genkernel (jamais utilisé genkernel) et grub2-mkconfig vérifie si /boot est monté. 

 

Comme je disais a @nutsi, je ne savais pas que après une mise a jour de kernel (fait automatiquement) par ''#emerge –sync'' ou par ''#emerge –update –deep –with-bdeps=y –newuse world'', utilisateur doit intervenir pour la compilation/installation de kernel et modules, et relancer un ''grub2-mkconfig -o /boot/grub/grub.cfg'' pour que le nouveau kernel soit pris en charge par grub2 ? 

Moi j'utilise genkernel, dans mon cas doit je me placer dans "/usr/src/linux-3.10.17-gentoo" et faire "#genkernel --menuconfig all" une fois dans menuconfig, vérifier et faire quelle que modifications si nécessaire, sortir et continuer a l’installation de kernel et modules? 

@XavierMiller, merci pour astuce.

----------

## nutsi

Tu peux utilisé 

```
uname -a
```

 pour savoir quel kernel est utilisé. Il est possible que l'entrée du GRUB ne soit pas modifié, mais qu'il n'y ait que l'image kernel de remplacée.

----------

## ayame99

 *Quote:*   

> Effectivement j'ai une partition /sda1 pour /boot qui n'est pas été monter automatiquement, j'ai modifier ''fstab'', depuis /boot/grub est présent. 

 

personnellement je préfère laisser la partition /boot non montée en effet si tu fais une mauvaise manip avec un fichier sur cette partition tu ne pourra plus démarrer.

 *Quote:*   

> emerge –update –deep –with-bdeps=y –newuse world

 

 *Quote:*   

> 'ai pas fait ''emerge gentoo-source'', le seul ''emerge gentoo-source'' que j'ai fait, c’était pendent installation de Gentoo. Mais la il s'agit d'un mise a jour.

 

en fait  le paquet gentoo-source se comporte pas comme tous les autres paquets 

exemple :

si tu fais un 

```
emerge vlc
```

 vlc sera mis a jour et au prochain lancement du logiciel il utilisera la nouvelle version dans le cas de gentoo-source c est different les sources du kernel seront installées et prete a etre compiler mais le système ne sais pas si tu veus utiliser genkernel ou compiler à la main, donc il a installé les sources.

 *Quote:*   

> Si il est désinstaller pendent la mise a jour alors pourquoi c'est toujours lui qui apparais au démarrage ? 

 

en fait c est pas le noyau compilé qui est désinstallé  mais les sources du noyau.Quand tu utilise genkernel il te copie tous seul le noyau compilé dans /boot. Ceci te donne un gros  avantage imagine tu as compilé ton kernel mais il marche pas (exemple tu as oublié le support de ton systeme de fichier) tu auras toujours la possibilité de démarrer sur l ancien kernel.

 *Quote:*   

> Mais alors pourquoi a chez moi un ''#eselect kernel list'' dit ''[1] linux-3.10.17-gentoo*'', est rien d'autre ? Ou est ''linux-3.10.7-gentoo-r1'' ?

 

En faite il faut bien comprendre la difference entre les sources du noyau et le noyau compilé.Eselect te permet de choisir le lien vers les sources du noyau

voici dans mon cas le resultat de eselect et le lien vers les sources

```
ayame@shibusen ~ $ eselect kernel list

Available kernel symlink targets:

  [1]   linux-3.2.12-gentoo

  [2]   linux-3.6.11-gentoo

  [3]   linux-3.8.13-gentoo *

  [4]   linux-3.10.7-gentoo-r1

ayame@shibusen ~ $ ls -l /usr/src/linux

lrwxrwxrwx 1 root root 19 29 juil. 18:48 /usr/src/linux -> linux-3.8.13-gentoo

```

maintenant je vais changer de sources par exemple pour utiliser le nouveau kernel

```
shibusen ~ # eselect kernel set 4

ayame@shibusen ~ $ eselect kernel list

Available kernel symlink targets:

  [1]   linux-3.2.12-gentoo

  [2]   linux-3.6.11-gentoo

  [3]   linux-3.8.13-gentoo

  [4]   linux-3.10.7-gentoo-r1 *

ayame@shibusen ~ $ ls -l /usr/src/linux

lrwxrwxrwx 1 root root 22  8 nov.  13:47 /usr/src/linux -> linux-3.10.7-gentoo-r1

```

En fait a partir de la le nouveau noyau n est pas utiliser il est pret a etre compiler

 *Quote:*   

> Moi j'utilise genkernel, dans mon cas doit je me placer dans "/usr/src/linux-3.10.17-gentoo" et faire "#genkernel --menuconfig all" une fois dans menuconfig, vérifier et faire quelle que modifications si nécessaire, sortir et continuer a l’installation de kernel et modules?
> 
> 

 

en fait tu peut le faire depuis /usr/src/linux  vu que soit par eselect ou par la variable USE symlink ton lien symbolique vers les sources du noyau est à jour.

Rien a voir avec ton problème/question mais un conseil quand tu installes un paquet ou quand tu fais une mise à jour si tu as 

```
* IMPORTANT: 4 news items need reading for repository 'gentoo'.

 * Use eselect news to read news items.
```

lit les bien, des informations très très très importantes s y trouve.Par exemple lors du passage a udev 200 ou supérieur les cartes réseaux ne sont plus nommé eth0 

Pour ce faire eselect est notre ami

```

ayame@shibusen ~ $ eselect news list

News items:

  [1]   N  2009-04-18  Generation 1 Java Setup Deprecated

  [2]      2010-08-01  (2010-08-01-as-needed-default - removed?)

  [3]      2011-04-27  Upgrade to GLIB 2.28

  [4]      2011-08-28  Mesa r600 driver now defaults to gallium

  [5]      2011-11-26  Unmasking of and Upgrade to GNOME 3.2

  [6]      2012-03-16  (2012-03-16-udev-181-unmasking - removed?)

  [7]      2012-05-21  Portage config-protect-if-modified default

  [8]      2012-09-09  make.conf and make.profile move

  [9]      2012-11-06  PYTHON_TARGETS deployment

  [10]     2013-01-23  (2013-01-23-udev-upgrade - removed?)

  [11]     2013-02-10  New 13.0 profiles and deprecation of 10.0 profiles

  [12]     2013-03-29  Upgrading udev to version >=200

  [13]     2013-06-07  Portage preserve-libs default

  [14]  N  2013-06-30  Printer browsing in net-print/cups-1.6

  [15]     2013-08-23  Language of messages in emerge logs and output

  [16]  N  2013-09-27  Separate /usr on Linux requires initramfs

  [17]  N  2013-10-14  GRUB2 migration

```

et pour lire une news 

```

ayame@shibusen ~ $ eselect news read 17

2013-10-14-grub2-migration

  Title                     GRUB2 migration

  Author                    Mike Gilbert <floppym@gentoo.org>

  Posted                    2013-10-14

  Revision                  1

A newer version of GRUB (sys-boot/grub) is now stable. There are now

two available slots:

sys-boot/grub:0 - Known as "GRUB Legacy"

sys-boot/grub:2 - Known as "GRUB2"

GRUB2 uses a different configuration format, and requires a manual

migration before your system will actually use it. A guide [1] is

available on the gentoo.org website, and the Gentoo wiki [2][3] has

additional information.

If you would prefer not to migrate at this time, you do not need to

take any action: GRUB Legacy will remain functional in /boot. To

prevent any associated files (documentation) from being removed, add

sys-boot/grub:0 to your world file. For example:

emerge --noreplace sys-boot/grub:0

References:

[1] http://www.gentoo.org/doc/en/grub2-migration.xml

[2] https://wiki.gentoo.org/wiki/GRUB2_Quick_Start

[3] https://wiki.gentoo.org/wiki/GRUB2

```

----------

## yolcu

J'ai compiler le nouveau noyau (3.10.17-gentoo) avec ''#genkernel --menuconfig all'', plus un ''#emerge @module-rebuild'', un ''#emerge --update --deep --with-bdeps=y  --newuse world'', un ''#emerge --depclean'', un ''#revdep-rebuild'' et un ''#grub2-mkconfig -o /boot/grub/grub.cfg'', et au redémarrage le nouveau noyau est pris en charge.  

Maintenant je sais que, si il y a un mise a jour de noyau, il faut intervenir soit même.

Merci pour votre aide et pour vos conseilles.

Sujet noyau et grub2 résolu.

----------

