Configuration supplémentaire – FreeBSD

Voici quelques manips qui peuvent être utiles lors de l’utilisation au quotidien d’une machine sous FreeBSD.

Mise à jour du système

Les mises à jour de la base du système et des ports se font de façon séparée. La mise à jour du système de base se fait avec les commandes :

# freebsd-update fetch
# freebsd-update install

Pour les ports installés sur le système (comme samba, par exemple) le plus simple est d’installer portmaster :

# cd /usr/ports/ports-mgmt/portmaster
# make
# make install

On peut ainsi lancer la mise à jour des ports installés avec :

# portsnap fetch && portsnap update
# portmaster -Da

L’installation de ports peut maintenant se faire avec les options par défaut :

# portmaster /usr/ports/port/to/install

Et pour réinstaller un port avec de nouvelles options de compilation :

# portmaster --force-config /usr/ports/port/to/install

Consommation électrique

Pour diminuer (un peu) la consommation de la machine, on peut activer powerd, qui adapte la fréquence du processeur à la charge du système. Il suffit d’ajouter dans le fichier /etc/rc.conf :

powerd_enable="YES"

Et pour privilégier la consommation, ajouter :

powerd_flags="-b min"

La fréquence du processeur ainsi que sa consommation peuvent être affichés avec la commande : powerd -v.

Pour la mise en veille les disques, on peut passer par atacontrol, installé par défaut :

  • atacontrol_enable="YES" dans le fichier /etc/rc.conf.
  • Créer un script de démarrage correspondant : /usr/local/etc/rc.d/atacontol (ici, mise en veille des disques ad4, ad6, ad8 et ad10 après 30 minutes d’inactivité).

Pour des réglages plus fins que ceux fournis par atacontrol (de la même façon que la commande hdparm sous Linux), ataidle est disponible via le port sysutils/ataidle.
Pour passer les disques en mode idle, puis en veille après trente minutes d’inactivité, les paramètres suivants sont ajoutés dans le rc.conf :

ataidle_enable="YES"
ataidle_devices="ad4 ad6 ad8 ad10"
ataidle_ad4="-I 30"
ataidle_ad6="-I 30"
ataidle_ad8="-I 30"
ataidle_ad10="-I 30"

Pour empêcher le réveil intempestif des disques, il peut être nécessaire de modifier le /etc/crontab. J’ai modifié l’entrée concernant save-entropy :

#*/11    *    *    *    *    operator /usr/libexec/save-entropy
0       20    *    *    *    operator /usr/libexec/save-entropy

Ainsi que celle lançant newsyslog :

#0    *    *    *    *    root    newsyslog
0    20    *    *    *    root    newsyslog

Vérification du statut des disques

Dans mon cas, ma machine étant principalement utilisée en tant que NAS, j’ai jugé utile de vérifier de temps en temps l’état de santé des disques via S.M.A.R.T.

J’ai donc installé le port /usr/ports/sysutils/smartmontools, permettant la vérification des disques (ici /dev/ad4) avec la commande smartcrl :

# smartctl -H /dev/ad4
smartctl 5.41 2011-06-09 r3365 [FreeBSD 8.2-RELEASE amd64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

Pour des informations plus détaillées :

# smartctl -a /dev/ad4

Cette vérification peut se faire de façon automatique avec le démon smartd, configurable dans le fichier /usr/local/etc/smartd.conf :

/dev/ad4 -H -m nico@localhost -n standby,q
/dev/ad6 -H -m nico@localhost -n standby,q
/dev/ad8 -H -m nico@localhost -n standby,q
/dev/ad10 -H -m nico@localhost -n standby,q

Ici le test vérifie l’état S.M.A.R.T. des disques (-H) et envoie un message à l’adresse passée en paramètre (-m nico@localhost) uniquement si un problème est détecté.
Pour vérifier que l’envoi de mail fonctionne correctement, l’option -M test permet d’envoyer un message au lancement de la commande.
Mais smartd a la mauvaise habitude de sortir mes disques de veille, même avec l’option magique “-n standby,q“. J’ai donc ajouté au crontab une vérification journalière quand les disques sont actifs :

1    20    *    *    *    root    /usr/local/etc/rc.d/smartd onestart && sleep 60 && /usr/local/etc/rc.d/smartd stop

Gestion de la machine

Pour autoriser un compte utilisateur à arrêter ou redémarrer la machine (via shutdown -p/-r now), il suffit de l’affecter au groupe operator :

# pw groupmod operator -m username

Back to basics

Enfin, pour les puristes qui veulent voir Beastie au démarrage de leur machine au lieu du logo aseptisé (ou pour les fans de Toy Story et Cars), penser à ajouter au /boot/loader.conf :

loader_logo="beastiebw"