Comment ajouter un nouveau noyau à grub2

24

Comment ajouter un noyau à grub2? je savais ce que nous pouvions faire avec les anciennes versions, mais cela semble avoir changé. Quels fichiers devrions-nous modifier?

Amir Zadeh
la source

Réponses:

11

Pour ajouter un nouveau noyau à grub2:

  1. Déplacez votre noyau vers / boot /
  2. Exécutez sudo update-grub

update-grub analysera votre ordinateur pour les noyaux et créera une liste des noyaux disponibles au démarrage.

Pour que vous puissiez sélectionner le noyau à démarrer au moment du démarrage, vous devrez peut-être maintenir le bouton SHIFT enfoncé juste après la publication de votre BIOS.

Vous pouvez modifier / etc / default / grub pour modifier les options de démarrage par défaut et les paramètres dont vous pourriez avoir besoin.

Linux non Debian

Voir les notes de grub pour votre distribution, telles que ces documents Fedora GRUB 2 .

  • grub2-mkconfig -o /boot/grub2/grub.cfg
EarthmeLon
la source
Et si vous avez 2 distributions Linux sans partition séparée / boot? Devez-vous copier le noyau des rootfs secondaires vers le primaire? Ou est-ce que 'grub-update' vérifie également les autres partitions pour les nouveaux noyaux?
jiggunjer
Il s'agit d'une question distincte, mais l'un des exécutables utilisés doit être lu /boot/et généré correctement. Le fichier de configuration grub (ex:) /etc/default/grubpeut être différent selon le système d'exploitation, alors assurez-vous de les synchroniser. Cependant, la meilleure pratique pourrait être qu'un seul système d'exploitation génère des entrées grub pour vous.
earthmeLon
Ce n'est pas vraiment une question distincte, OP n'a pas précisé sa configuration, et les doubles bottes a sont courantes. J'ai pensé que cela pourrait ajouter de la valeur à votre réponse, ce qui est déjà bon. En d'autres termes, le système d'exploitation secondaire n'a même pas besoin de son propre grub, le grub du système principal recherchera les dossiers / boot sur toutes les partitions et trouvera les noyaux.
jiggunjer
1
Comment déplacer un noyau vers / boot? mv kernel /boot? Où puis-je trouver un noyau qui pourrait être déplacé vers / boot?
Thomas Weller
3

J'utilise Fedora 20 et la commande pour mettre à jour grub2 est grub2-mkconfig. De plus, tout le processus peut être accompli avec la construction du noyau make:

make xconfig (make config, etc)
make bzImage
make modules
sudo make modules_install
sudu make install

Cette (dernière étape) copiera le noyau dans / boot et mettra à jour le chargeur de démarrage grub2. Très facile, et cela a fonctionné correctement dans mon cas. Mon seul problème est que vous n'apprenez pas vraiment les détails importants du processus, tout est automatisé. Si vous avez des problèmes et devez comprendre ce qui ne va pas, vous pourriez vous retrouver coincé.

philbrooksjazz
la source
sudo make installme dit: Cannot find LILO.
René Nyffenegger
Vous construisez peut-être une version beaucoup plus ancienne du noyau? LILO a été utilisé sur une version du noyau antérieure à 3.x (version pas sûre) Avec quelle distribution travaillez-vous?
philbrooksjazz
C'était sur Arch Linux, avec le plus récent rc (4.6.0-rc5) que j'ai git cloné depuis le dépôt Linux Torvalds.
René Nyffenegger
0

/boot/grub/grub.cfgest le fichier qui a remplacé menu.lstgrub1

Dans les systèmes Debian / Ubuntu, cela est généré par update-grub, qui exécute les scripts en /etc/grub.dutilisant quelque chose de similaire à run-parts.

Flexo
la source
0

Si le nouveau noyau est installé avec dpkg (comme s'il était compilé avec make-kpkg), update-grub2 suffit (il ne supprime plus les noyaux existants)

M. Shunz
la source
0

Vous ne "modifiez" plus pour ajouter des noyaux. Il les numérise et les ajoute dynamiquement. Si vous DEVEZ en ajouter un, un scan ne le trouve pas, vous devriez regarder dans /etc/grub.d et le modifier ou le copier et le custom40 (il est ajouté en dernier donc c'est un excellent endroit pour tester votre config avant de le mettre en haut de votre liste).

RobotHumains
la source
0

Essayez update-grubou update-grub2selon votre version grub. Vous devrez exécuter ces en tant que root, sudo. Cela a fonctionné pour moi lorsque j'ai installé une deuxième distribution Linux sans réinstaller grub.

beatgammit
la source
J'ai réalisé que ma réponse est similaire à la réponse d'Alan, mais j'ai ajouté la commande grub2.
beatgammit