GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Compiler et installer un noyau Kernel.org sur un volume personnalisé sur disque ?

Je souhaite compiler et installer un noyau kernel.org sur un volume de disque dur personnalisé, par exemple /dev/sda5 , au lieu d'être fusionnés avec mes répertoires Ubuntu actuels.

Je peux trouver des informations sur la configuration et le processus de compilation partout sur le Web, mais il n'y a aucune trace de la façon de mettre le noyau sur un volume personnalisé (différent de la distribution démarrée que vous utilisez au moment de la compilation). Ce que je demande, c'est comment installer 2 distributions différentes sur 2 volumes différents sur 1 disque dur, pensez maintenant à mon noyau personnalisé comme une autre distribution.

Réponse acceptée :

Vous pouvez compiler un noyau où vous voulez, y compris votre répertoire personnel. La seule fois où les répertoires en dehors de l'arborescence de construction sont modifiés, c'est lorsque vous effectuez l'un des install* cibles. Donc, pour installer un noyau, vous feriez l'évidence :

cd $SOME_DIRECTORY
tar -xjvf linux-$VERSION.tar.bz2
cd linux-$VERSION
make mrproper menuconfig
# Configure the kernel here.
# Now build it using all your CPU threads in parallel.
make -j$(grep -c processor /proc/cpuinfo) bzImage modules

Après avoir configuré le noyau, il sera construit. À ce stade, vous aurez un noyau binaire (vmlinux) et une image de noyau amorçable sous arch/$YOUR_ARCHITECTURE/boot/bzImage.

Si vous construisez un noyau monolithique, vous avez terminé. Copiez le fichier non compressé (vmlinux ) ou fichier compressé (bzImage ) au volume prévu, configurez le gestionnaire de démarrage si nécessaire, et c'est parti.

Si vous avez besoin d'installer des modules, et en supposant que vous avez monté votre volume cible sur /mnt, vous pouvez dire :

INSTALL_MOD_PATH=/mnt \
INSTALL_PATH=/mnt/boot \
make modules_install

Cela copiera l'image du noyau dans /mnt/boot et les modules de /mnt/lib/modules/$VERSION .

Attention, je simplifie à l'excès. Si vous avez besoin d'aide pour construire le noyau manuellement, vous devriez lire certains des documents dans la Documentation/ de l'arborescence des sources du noyau. sous-répertoire. Le README vous indique également comment le construire et l'installer en détail.

Cependant, démarrer le noyau est une autre histoire. La plupart des distributions modernes utilisent une image RAMdisk initiale qui contient une tonne de pilotes pour le matériel nécessaire pour faire apparaître le reste du noyau (périphériques en mode bloc, systèmes de fichiers, réseau, etc.). Ce processus ne créera pas cette image. En fonction de ce que vous devez faire (ce que faites devez-vous faire ?), vous pouvez en utiliser un existant ou en créer un nouveau à l'aide de la chaîne d'outils de votre distribution. Vous devriez vérifier la documentation sur update-initramfs .

Il y a aussi d'autres problèmes. En utilisant la chaîne d'outils standard, vous ne pouvez pas compiler un noyau pour une architecture ou une sous-architecture différente. Notez que dans certains cas, même les noyaux compilés sur un type particulier de boîtier x86 ne fonctionneront pas sur certains autres types de boîtiers x86. Tout dépend de la combinaison des sous-architectures et de la configuration du noyau. La compilation sur plusieurs architectures (par exemple, la construction d'un noyau ARM sur une machine x86) est totalement hors de question, sauf si vous installez une chaîne d'outils de compilation croisée appropriée.

Connexe :Linux - perdre des fichiers si je vide le cache (echo 3> /proc/sys/vm/drop_caches) ?

Cependant, si vous essayez de sauver une autre installation ou un autre ordinateur, un disque de secours peut s'avérer plus pratique que de créer un noyau personnalisé comme celui-ci.

Encore une chose :si vous essayez de construire un noyau pour un autre ordinateur qui démarre, est la même architecture que celui sur lequel vous compilez, et exécute un système d'exploitation Debian ou de type Debian (Ubuntu compte), vous pouvez installer le kernel-package package (sudo aptitude install kernel-package ). Décompressez ensuite le noyau, cd à la racine de l'arborescence des sources et dites :

CONCURRENCY_LEVEL=$(grep -c processor /proc/cpuinfo) \
sudo make-kpkg --initrd binary-arch

Cela appliquera les correctifs nécessaires, configurera le noyau, le compilera et le conditionnera en tant que package .deb (quelques packages, en fait). Tout ce que vous avez à faire est de l'installer sur votre système cible et le tour est joué.


Linux
  1. Comment installer et tester Ansible sur Linux

  2. Comment installer et utiliser Flatpak sous Linux

  3. Linux - Configurer, compiler et installer un noyau Linux personnalisé ?

  4. Que faire après l'installation d'Arch Linux ?

  5. Ukuu Kernel Manager - Installer et mettre à niveau les noyaux Linux dans Ubuntu

Installer le noyau Linux 4.15 dans les systèmes basés sur RPM et DEB

Installer et configurer Ansible sous Linux

Installer et configurer Jenkins sous Linux

Comment installer et utiliser phpMyAdmin sous Linux

Comment installer et utiliser la commande fd sous Linux

Comment installer et utiliser Nu Shell sous Linux