Comment personnaliser et recompiler votre noyau sous FreeBSD 10.1

introduction

Le système d’exploitation FreeBSD utilise le noyau + GENERIC + par défaut. Il s’agit d’une configuration par défaut utilisée pour prendre en charge une grande variété de matériel prêt à l’emploi. Cependant, la compilation d’un noyau personnalisé a de nombreuses raisons différentes, notamment la sécurité, des fonctionnalités améliorées ou de meilleures performances.

FreeBSD utilise deux branches de code pour son système d’exploitation: stable et à jour. Stable est la version actuelle du code qui est prête pour la production. Current est la dernière version de code de l’équipe de développement et présente certaines des dernières fonctionnalités de pointe, mais il est plus sujet aux bogues et à l’instabilité du système. Ce guide utilisera la branche stable.

Dans ce tutoriel, nous recompilerons un noyau FreeBSD avec une configuration personnalisée.

Conditions préalables

Pour suivre ce tutoriel, tout ce dont vous aurez besoin est:

  • Une gouttelette FreeBSD 10.1.

Si vous débutez avec FreeBSD, vous pouvez consulter la série de didacticiels Comment démarrer avec FreeBSD.

Étape 1 - Obtention du code source

Dans cette étape, nous allons extraire le code source du système d’exploitation.

FreeBSD, comme beaucoup d’autres versions d’UNIX, fournit le code source de son système d’exploitation pour le téléchargement et la modification publics. Pour recompiler le noyau, vous devez d’abord extraire ce code source du système de contrôle de version de FreeBSD.

La fondation FreeBSD utilise Subversion pour ses référentiels de code, commençons donc par installer le port binaire de Subversion.

sudo pkg install subversion

Le shell par défaut de FreeBSD est tcsh, qui utilise une table de hachage interne pour les commandes dans + $ PATH +. Après l’installation de Subversion, vous devez réorganiser les tables de répertoires.

rehash

Enfin, récupérez une copie de la dernière branche stable dans le répertoire + / usr / src +.

sudo svn co https://svn0.us-east.FreeBSD.org/base/stable/10 /usr/src

Vous pouvez être invité à accepter un certificat de serveur. Entrez * p * pour l’accepter après avoir vérifié que l’empreinte digitale correspond à celle située au bas de cette page.

Étape 2 - Création de votre configuration personnalisée

Dans cette étape, nous allons personnaliser notre nouvelle configuration de noyau.

La convention de dénomination standard pour les fichiers de configuration du noyau est le nom du noyau en majuscules. La configuration de ce tutoriel s’appellera + EXAMPLE +. Les fichiers de configuration du noyau résident dans le répertoire + / usr / src / sys // conf +; L’architecture utilisée chez DigitalOcean est AMD64.

Passez au répertoire de configuration.

cd /usr/src/sys/amd64/conf

Créez et ouvrez le fichier + EXAMPLE + pour le modifier en utilisant ee ou votre éditeur de texte préféré.

sudo ee

Vous pouvez trouver l’exemple de configuration à l’adresse here. Copiez et collez le contenu dans + EXAMPLE +, puis enregistrez et fermez le fichier.

Cet exemple de configuration de noyau concerne une construction de noyau minimale adaptée à un droplet DigitalOcean. Plus précisément, la prise en charge de la configuration du noyau + GENERIC + est activée pour de nombreux matériels différents; + EXAMPLE + a supprimé tous les périphériques hérités et inutiles, ne laissant que les pilotes de périphérique requis pour exécuter Droplet. La prise en charge est également activée pour le pare-feu de filtrage de paquets (pf), la mise en forme du trafic (altq), le cryptage du système de fichiers (geom_eli) et la sécurité IP (IPsec).

Cependant, vous pouvez en savoir plus sur les options de configuration dans la FreeBSD documentation et expérimenter vous-même. !

Étape 3 - Construire et installer votre nouveau noyau

Dans cette étape, nous allons commencer la recompilation du noyau.

Revenez dans le répertoire + / usr / src + et lancez un + make buildkernel + en utilisant votre nouveau fichier de configuration.

cd /usr/src
sudo make buildkernel KERNCONF=

Cela peut prendre un certain temps en fonction de la quantité de ressources que vous utilisez pour votre Droplet. La durée moyenne d’une gouttelette de 1 Go est d’environ 90 minutes.

Une fois la recompilation du noyau terminée, il est temps de commencer l’installation.

sudo make installkernel KERNCONF=

Lorsque cela est terminé, redémarrez votre système.

sudo shutdown -r now

Votre serveur doit maintenant commencer à arrêter ses services en cours d’exécution, à synchroniser ses disques et à redémarrer dans votre nouveau noyau. Vous pouvez vous connecter à la console de Droplet pour suivre le processus de démarrage.

Une fois votre serveur redémarré, reconnectez-vous. Vous pouvez vérifier que votre nouvelle configuration de noyau est utilisée avec la commande suivante:

sysctl kern.conftxt | grep ident

Le résultat devrait être:

ident

Conclusion

Toutes nos félicitations! Vous avez reconfiguré et recompilé votre noyau avec succès.