Comment ajouter une nouvelle entrée de noyau dans grub2? [dupliquer]

0

Cette question a déjà une réponse ici:

S'il vous plaît, aidez-moi!

Je construis le noyau à partir du code source téléchargé à partir de http://kernel.org . Je l'ai construit et installé avec succès. Maintenant, je veux que mon option de noyau vienne au démarrage et je veux la sélectionner. Après avoir fait des recherches sur google

i copyed bzImage in /boot folder.
i copyed System.map file in /boot folder

Maintenant, je veux faire une entrée pour le noyau au démarrage. Je sais que je dois faire des changements dans "/etc/grub.d/" et "/ etc / default / grub" après cela, je devrai exécuter "update-grub" mais le problème est que comment je vais définir les champs.

  1. set root = '(hd0, msdos6)'
  2. recherche --no-floppy --fs-uuid --set = root c291827c-6678-4067-ad09-01481681a9f9
  3. echo 'Chargement de Linux 3.5.0-45-generic ...'
  4. linux /boot/vmlinuz-3.5.0-45-generic root = UUID = c291827c-6678-4067-ad09-01481681a9f9 Nomodeset de récupération de ro
  5. echo 'Chargement du disque virtuel initial ...'
  6. initrd /boot/initrd.img-3.5.0-45-generic

Ce sont quelques-uns des champs mais je ne sais pas comment obtenir la valeur de uuid, que définir en tant que root (comme hd0, msdos6), quel est son sens, comment obtenir une image de disque RAM initiale?

S'il vous plaît ne dites pas que cette question est similaire à telle ou telle question. J'ai déjà effectué une recherche sur Google et le débordement de pile, mais rien n'a résolu mon problème. Tout ce que j'ai, c'est des centaines d'onglets ouverts dans mon navigateur.

Mes exigences: -

How to get uuid for new kernel image?
what is (hd0,msdos6)? how to get this value for new kernel image?

Plesae aidez-moi!

nitine
la source

Réponses:

2

Expliquons un peu de vers, puis expliquons ce qui se passe avec ce que vous faites. Il y a 4 parties pour démarrer un système Linux:

  1. L’enregistrement Master-Boot. Ceci est très petit et doit se situer dans un secteur très spécifique du disque. Le BIOS est codé en dur pour chercher cela et commencer l'exécution là.
  2. Le Bootlaoder lui-même. Cela peut être grub, lilo, syslinux ou une variété d’autres choses. Dans ce cas, c'est la bouffe. Fréquemment, le MBR (Master Boot Record) et le chargeur de démarrage sont le même fichier situé stratégiquement sur le support de démarrage. (commençant généralement par les tous premiers octets du disque). Ce n'est pas toujours le cas, car un chargeur de démarrage peut charger un deuxième chargeur de démarrage.
  3. Le noyau lui-même. Malheureusement, le noyau lui-même ne fait pas grand chose sans bits supplémentaires. Pensez-y comme un cerveau. En soi, cela ne peut pas faire grand chose. Ajoutez à cela des parties du corps (yeux, jambes, système circulatoire, etc.) des scripts, des modules du noyau, et vous avez les prémices d'un système adéquat.
  4. L'image initiale du disque virtuel. C'est une image assez petite pour que tout le système d'exploitation démarre. Il est chargé dans la RAM et monté en tant que système de fichiers racine. Il contient généralement tout ce dont le noyau a besoin pour démarrer. (Modules du noyau, scripts d'initialisation, etc.). À un moment donné, le disque virtuel initial remontera le système de fichiers racine à sa place et transférera toute exécution ultérieure aux scripts d'initialisation situés sur cette racine. Vous n'avez pas toujours besoin d'un disque virtuel initial ... mais vous êtes limité par ce que vous pouvez insérer dans bzImage.

Maintenant, une explication des valeurs "UUID". Personnellement, je déteste les UUID. Je comprends pourquoi ils sont utilisés aujourd'hui ... mais cela ne me fait pas moins les détester. Dans le passé, nous définissions simplement les disques comme "/ dev / hda1" ou "(hd0,1)", ce qui nous indiquait qu'il s'agissait du premier disque physique (hda ou hd0) et de la première partition de ce disque. Si vous décidiez d'ajouter un deuxième disque, l'ancien disque deviendrait-il hdb ou hd1? ou resterait-il le même? Pour lutter contre cette ambiguïté, quelqu'un a eu l'idée de créer un "identificateur unique universel" qui attribuerait une valeur unique à chaque disque, qui persisterait lors des redémarrages et ne tiendrait pas compte de l'ordre dans lequel les disques sont détectés. L'UUID est écrit sur le disque ... et reste généralement intact. L'inconvénient est que, si vous clonez le système de fichiers sur un autre disque ... l'UUID ne correspond pas et le système ne démarre pas. Si vous voulez vous en tenir aux UUID ... démarrez simplement le système dans un disque live classique ... et cherchez dans / dev / disk / by-uuid celui qui pointe vers le lecteur / la partition en question.

La bonne nouvelle est que vous n'êtes pas obligé d'utiliser des UUID. Vous pouvez supprimer la commande "search" et laisser la racine = être le facteur déterminant de la racine. Vous pouvez également utiliser --label au lieu de --fs-uuid et spécifier le libellé du disque (si vous en avez défini un).

TheCompWiz
la source
Merci TheCompWiz.Pouvez-vous s'il vous plaît me suggérer n'importe quelle ressource de là où je peux étudier à ce sujet dans un détail, théoriquement aussi bien que pratiquement. En voici une belle!
nitin
La documentation de grub2 existe ... mais malheureusement ... je n'ai pas encore trouvé de guide simple à suivre: "voilà comment ça marche". Une bonne partie de celle-ci, il vous suffit simplement de la manipuler et de la résoudre. Si vous avez des questions spécifiques ... je serais heureux de vous aider à vous orienter dans la bonne direction.
TheCompWiz
J'utilise Debian 6.0.4 (Squeeze), noyau Linux 2.6.32-5-686. Je construis le noyau Linux 2.6.32.61 manuellement. Maintenant, pour créer une image de disque ram initiale, j’ai utilisé "initrd -o / boot/intrd.imag-version" et "initramfs -o /bot/initrd.imag-version", mais lorsque j’exécute ces commandes, la commande est erronée. pas trouvé. J'ai installé le paquet requis via le gestionnaire de paquets synaptic, mais le problème persiste. J'ai utilisé laquelle, commande, mais ces commandes montrant cela, il n'y a pas un tel programme. Maintenant, que puis-je faire d'autre que ces options?
nitin
1

Que diriez-vous de renommer votre bzImageen kernel-${version}ou vmlinuz-${version}alors grub2-mkconfigdevriez le reprendre automatiquement.

Pour ce qui est des autres choses, si vous voulez créer une entrée personnalisée, vous devriez probablement regarder les fichiers en /etc/grub.d/particulier leXX_custom

Vous pouvez réutiliser l'UUID qui appartient à la partition et non au noyau. Identique à: root(hd0,msdos6)il s'agit d'une notation pour désigner à grub d'où charger le noyau, et vous ajoutez simplement un noyau pour qu'il puisse être réutilisé

Le disque virtuel initial est créé via des outils appropriés, le plus simple étant probablement la distribution, vous devrez vous reporter à la documentation Ubuntu à ce sujet.

r_ahlskog
la source
Je vous en prie. Je l'ai tiré du guide de migration Gentoo GRUB2 .
VL-80