TrucsEtAstuces
Un article de Projet de documentation fug-fr .
[modifier] Administration globale
[modifier] Listes les caractéristiques des disques durs
La commande diskinfo permet de lister efficacement les caractéristiques d'un périphérique de type disque. Elle permet avec les option -c et -c d'effectuer un test de performance 'naïf' du taux de transfert et du coût global d'un opération de lecture d'une E/S.
#diskinfo -tc /dev/ad0
/dev/ad0
512 # sectorsize
10005037056 # mediasize in bytes (9.3G)
19541088 # mediasize in sectors
19386 # Cylinders according to firmware.
16 # Heads according to firmware.
63 # Sectors according to firmware.
I/O command overhead:
time to read 10MB block 0.358893 sec = 0.018 msec/sector
time to read 20480 sectors 2.079735 sec = 0.102 msec/sector
calculated command overhead = 0.084 msec/sector
Seek times:
Full stroke: 250 iter in 3.781256 sec = 15.125 msec
Half stroke: 250 iter in 3.195948 sec = 12.784 msec
Quarter stroke: 500 iter in 5.574879 sec = 11.150 msec
Short forward: 400 iter in 2.818600 sec = 7.046 msec
Short backward: 400 iter in 2.379533 sec = 5.949 msec
Seq outer: 2048 iter in 0.236226 sec = 0.115 msec
Seq inner: 2048 iter in 0.237618 sec = 0.116 msec
Transfer rates:
outside: 102400 kbytes in 3.190040 sec = 32100 kbytes/sec
middle: 102400 kbytes in 3.447594 sec = 29702 kbytes/sec
inside: 102400 kbytes in 3.687734 sec = 27768 kbytes/sec
[modifier] Lister les péripheriques installés
# pciconf -lv
[modifier] Réinstaller un gestionnaire de démarrage (MBR)
Si vous jouez avec plusieurs systèmes d'exploitation et/ou plusieurs disques et/ou testez différents gestionnaires de démarrage il est assez probable, qu'un jour ou l'autre, vous ne parviendrez plus à démarrer quoi que ce soit.
Réinstaller lilo ou grub à partir d'un liveCD ou équivalent n'est pas toujours facile, peut-être même parfois quasi impossible. Par contre réinstaller le chargeur de FreeBSD ne pose pas de difficulté particulière. Au plus simple, après avoir démarré avec le liveCD il suffit d'entrer une ligne du type:
# boot0cfg -B "device"
Où "device" représente le disque où vous souhaitez réinstaller le chargeur, ainsi par exemple pour deux disques IDE:
# boot0cfg -B /dev/ad0 # boot0cfg -B /dev/ad1
Voilà, il ne vous reste plus qu'à redémarrer pour pouvoir choisir de nouveaux disques et partitions à l'aide des touches de fonction. Ouf!
[modifier] Récupération partitions
Attention, récupération partitions en cours de rédaction Lors d'un crash disque, vous pouvez perdre vos partitions. Si cela arrive, comment corriger ce problème ?
Pour ce faire, vous allez avoir besoins d'informations concernant vos partitions pour les refaire à l'identique. Vous allez diriger les informations recueillies dans des fichiers texte que vous pourrez sauvegarder sur une clé USB. Vous pourrez ensuite imprimer ces fichiers ultérieurement. L'installation de votre FreeBSD est considérée comme simple.
Attention à ne pas les laisser uniquement sur le PC !
On commence par les informations sur la slice 1 du disque 0 :
bsdlabel ad0s1 > bsdlabel_ad0s1.txt
On sauvegarde la table du système de fichier de cette slice :
cat /etc/fstab > fstab_ad0s1.txt
NB : Si votre configuration est plus complexe (plusieurs slices ou disques), ces deux manipulations sont à effectuer pour chaque slice et chaque disque.
Et pour finir, les messages que nous donnent le démarrage :
dmesg > dmesg.txt
Lors du problème, essayer de monter la partition root du premier disque (ex : mount /dev/da0a/mnt).
Si le bsdlabel est endommagé, utiliser bsdlabel pour partitionner et recréer à l'identique le label de votre disque dont vous avez sauvegardé les données.
Attention, Récupération partitions en cours de rédaction
[modifier] Fichier /etc/fstab : dump et fsck
Le fichier /etc/fstab comporte des lignes contenant chacune 6 champs ; les deux derniers étant les moins connus, c'est principalement d'eux dont nous parlerons ici :
- périphérique à monter (Device ; /dev/...)
- point de montage (Mountpoint ; /...)
- système de fichier utilisé (FStype ; ufs ...)
- options de montage (Options ; r w...)
- niveau de sauvegarde (Dump ; dump)
- ordre de vérification (Pass# ; fsck).
Un fichier fstab classique se présente plus ou moins ainsi:
# Device Mountpoint FStype Options Dump Pass# /dev/ad0s1a / ufs rw 1 1 /dev/ad0s1d /tmp ufs rw 2 2 /dev/ad0s1e /var ufs rw 2 2 /dev/ad0s1f /usr ufs rw 2 2
Ici, le système de fichier est toujours ufs (celui de FreeBSD) ; des sauvegardes ainsi que des vérifications peuvent être effectuées. Pour la partition racine du système, les valeurs indiquées pour dump et fsck sont égales à 1 ("prioritaires") alors que pour les autres partitions elles sont égales à 2 ("secondaires").
Un fichier fstab peut aussi contenir d'autres lignes telles que:
# une partition de swap /dev/ad0s1b none swap sw 0 0 # une partition linux /dev/ad1s2a /mnt/linux ext2fs rw 0 0 # un lecteur de cdrom /dev/acd0 /cdrom cd9660 ro,noauto 0 0 # une clé usb /dev/da0s1 /mnt/usb msdos rw,noauto 0 0
Cette fois le système de fichier n'est plus ufs ; aucune sauvegarde ni vérification n'est envisagée et les valeurs pour dump et fsck sont égales à 0. Notez que cette valeur 0 est celle par défaut et que donc ces champs pourraient en théorie être vides.
[modifier] Activer l'APM
Sur un ancien (nouveau ?) PC ne supportant pas l'ACPI, vous souhaiterez peut-être activer l'APM. Pour cela il vous faudra
- modifier le fichier /boot/device.hints et changer la ligne
hint.apm.0.disabled="1"
en
hint.apm.0.disabled="0"
- ajouter dans le fichier /etc/rc.conf une ligne
apm_enable="YES"
- ajouter dans le fichier de configuration du noyau (ou décommenter dans le fichier GENERIC) une ligne
device apm
Ensuite vous devez bien sûr recompiler votre noyau et redémarrer. Maintenant si vous entrez apm dans une console, vous devriez obtenir un résultat similaire à celui-ci (ici avec un PC de bureau donc sans batterie)
pocket marck % apm APM version: 1.2 APM Management: Enabled AC Line status: on-line Battery Status: unknown Remaining battery life: unknown Remaining battery time: unknown Number of batteries: 0 APM Capabilities: global standby state global suspend state resume timer from suspend RI resume from standby RI resume from suspend
Si cela ne fonctionnait pas, regardez dans les options possibles de device.hints et de rc.conf.
[modifier] cron et crontab
Lors de son installation, FreeBSD programme certaines tâches administratives à l'aide du programme cron et du fichier /etc/crontab. Les réglages choisis par défaut conviennent sans doute bien pour un serveur mais non pour un PC à usage personnel ; voyons un extrait du fichier /etc/crontab.
# Perform daily/weekly/monthly maintenance. 1 3 * * * root periodic daily 15 4 * * 6 root periodic weekly 30 5 1 * * root periodic monthly
Autrement dit, les tâches d'administrations quotidiennes ont lieu vers 3 heures (du matin) ; les tâches hebdomadaires vers 4 heures 15 le samedi et les tâches mensuelles vers 5 heures 30 (le premier jour du mois). Si ceci vous convient, c'est parfait, sinon choisissez des heures et des jours où généralement votre PC fonctionne. Ci-dessous 3, 4 et 5 heures sont remplacées par 10, 11 et 12 heures et le samedi est remplacé par le lundi.
# Perform daily/weekly/monthly maintenance. 1 10 * * * root periodic daily 15 11 * * 1 root periodic weekly 30 12 1 * * root periodic monthly
Pour plus d'informations sur les réglages possibles, n'hésitez pas à consulter les pages man de cron et crontab, notamment: man 5 crontab.
Note OpenBSD: sous OpenBSD, le fichier équivalent est /var/cron/tabs/root pour les crontab de l'administrateur.
[modifier] pkg_add ; liste des binaires disponibles
Lorsque l'on utilise les paquets précompilés (binaires) on ne dispose pas après l'installation d'une liste de ceux disponibles et donc installables avec la commande pkg_add. Pourtant une telle liste se révèle au quotidien bien pratique. Pour l'obtenir, commençons par demander à pkg_add sur quel serveur FTP il va télécharger les paquets. Pour ce faire demandons lui par exemple d'installer un paquet imaginaire abcxyz.
% pkg_add -r abcxyz Error: FTP Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.1-release/Latest/abcxyz.tbz : File unavailable (e.g., file not found, no access) pkg_add: unable to fetch 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.1-release/Latest/abcxyz.tbz' by URL
Voilà nous savons maintenant que pour la version de FreeBSD que nous utilisons, pkg_add cherche les paquets en:
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.1-release/Latest/
Dès lors, dans le répertoire père de ce répertoire, nous allons pouvoir récupérer la liste des paquets disponibles, le fichier INDEX.
% fetch ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.1-release/INDEX
Nous disposons maintenant du fichier INDEX dans le répertoire d'où nous avons lancé cette commande. Il ne nous reste plus qu'à l'interroger. Pour ce faire, le séparateur à utiliser est |, le premier champ contenant les noms des paquets et le quatrième leurs définitions. Donc pour afficher les noms de tous les paquets disponibles
% cut -d"|" -f1 < INDEX | less
et avec leurs définitions
% cut -d"|" -f1,4 < INDEX | less
Si un thème particulier vous intéresse, il suffit de remplacer less par grep (ou bien de faire vos recherches avec less). Ainsi pour tous les noms de paquets concernant fluxbox:
% cut -d"|" -f1 < INDEX | grep fluxbox
en incluant une recherche dans les définitions
% cut -d"|" -f1,4 < INDEX | grep fluxbox
Voilà, bonnes recherches et bonnes installations.
[modifier] Consoles et shells
[modifier] Régler le volume de sa carte son
Voici un moyen simple et facile de gérer le volume de sa carte son depuis la console. Pour consulter l'état il suffit de taper la commande suivant mixer.
% mixer Mixer vol is currently set to 100:100 Mixer pcm is currently set to 85:85 Mixer line is currently set to 75:75 Mixer mic is currently set to 0:0 Mixer rec is currently set to 0:0
Pour augmenter le volume p.ex à 20% à gauche et 80% à droite on tapes simplement :
% mixer vol 20:80
[modifier] L'auto-complétion
Pour activer l'auto-complétion avec csh
#set autolist // Active l'auto-complétion avec la touche de tabulation
#set filec // Active l'auto-complétion avec la touche d'échappement (ESC)
[modifier] Retrouver les dernières applications installées
Si après l'installation d'un port ou un package, disons dosunix, vous cherchez à exécuter la commande et que le shell (normalement csh ou tcsh) vous retourne immanquablement :
% can't find dosunix
L'execution de la commande
% rehash
vous permet de retrouver les nouvelles applications.
[modifier] login et /etc/issue
Le fichier texte /etc/motd (Message Of The Day) est utilisé par FreeBSD et permet d'afficher un message après le login. Si vous souhaitez afficher un message avant le login, la seule chose que vous ayez à faire est de créer un fichier texte /etc/issue contenant ce message.
[modifier] Fontes ascii art et /etc/motd
Si vous avez envie de changer de motd mais n'êtes pas très doué en fontes ASCII Art, figlet vous intéressera peut-être. Installez-le par les ports ou avec pkg_add et, pour bénéficier de toutes ses possibilités, n'oubliez pas d'installer aussi ses fontes, figlet-fonts.
Vous pourrez ensuite l'utiliser de diverses façons, soit à travers son prompt en entrant simplement figlet, soit en ligne de commande, en utilisant ou non un fichier de configuration ou un fichier source. Un petit exemple.
% cat > ftexte FreeBSD SPOUTNIK ^D
Ici nous avons créé un fichier ftexte, nous allons maintenant l'utiliser comme source pour figlet.
% figlet -f slant -c < ftexte
______ ____ _____ ____
/ ____/_______ ___ / __ ) ___// __ \
/ /_ / ___/ _ \/ _ \/ __ \__ \/ / / /
/ __/ / / / __/ __/ /_/ /__/ / /_/ /
/_/ /_/ \___/\___/_____/____/_____/
_____ ____ ____ __ _________ ________ __
/ ___// __ \/ __ \/ / / /_ __/ | / / _/ //_/
\__ \/ /_/ / / / / / / / / / / |/ // // ,<
___/ / ____/ /_/ / /_/ / / / / /| // // /| |
/____/_/ \____/\____/ /_/ /_/ |_/___/_/ |_|
L'option -f nous a permis de choisir une fonte et l'option -c de centrer horizontalement le texte. Notez enfin que le fichier /etc/rc.conf peut-être configuré avec l'option update_motd="NO" mais qu'il ne vous sera pas forcément nécessaire de l'utiliser... à vous de voir.
[modifier] Préserver une console
Vous vous absentez trois minutes et aimeriez bien retrouver votre console telle quelle sans voir le résultat du test de votre clavier par votre félin adoré... Vous pouvez utiliser pour cela la ligne de commandes
% clear ; bash -n
La commande clear ne sert qu'à faire propre et à cacher la commande bash -n. Avec cette dernière le shell acceptera les commandes mais ne les exécutera pas ; statu quo donc. Le blocage, s'il peut être suffisant, n'est cependant guère solide puisqu'il suffit pour en sortir d'utiliser la combinaison de touches Ctrl+D.
Pour un verrouillage plus sérieux vous devez utiliser la commande lock qui permet de verrouiller une console avec un mot de passe ou clé.
[modifier] ccrypt, le cryptage pour tous
Vous souhaiteriez parfois pouvoir crypter (puis décrypter) quelques fichiers mais vous n'avez jamais rien compris à tout ce qui est cryptage, alors ccrypt est peut-être le programme qu'il vous faut. Installez-le avec pkg_add ou par les ports pour disposer de la commande ccrypt et de trois liens bien pratiques ccencrypt, ccat et ccdecrypt.
Pour cryter un fichier
% ccencrypt nom_du_fichier
Pour consulter ce fichier crypté
% ccat nom_fichier.cpt
Pour le décrypter
% ccdecrypt nom_fichier.cpt
Bien sûr à chaque fois ccrypt vous demandera un mot de passe, et même par deux fois pour ccencrypt à moins que vous n'utilisiez l'option -b. Par défaut ccencrypt remplacera l'ancien fichier par le nouveau crypté en lui ajoutant l'extension .cpt à moins que vous n'utilisiez l'option -S... Notez donc que ccrypt possède bien d'autres options, fort bien documentées dans sa page man!
[modifier] chflags et fichiers ineffaçables
Même en étant root il peut arriver que le système vous interdise la suppression de certains fichiers sur lesquels il a placé un drapeau (flag) signalant leur immuabilité (schg). Ceci ne m'est arrivé que lors de la construction de liveCD et n'est donc sans doute pas très fréquent. Ces drapeaux sont affichables avec la commande ls -lo et doivent être supprimés avec la commande chflags afin de pouvoir effacer le fichier.
Un petit exemple où nous créons un fichier flagfich, lui donnons un drapeau d'immuabilité, l'affichons puis essayons de le supprimer.
# touch flagfich # chflags schg flagfich # ls -lo ... drwxr-xr-x 2 root wheel - 512 Jun 6 10:16 bin -rw-r--r-- 1 root wheel schg 0 Nov 2 15:39 flagfich drwx------ 2 root wheel - 512 Aug 10 18:21 mail -rw------- 1 root wheel - 61856 Nov 2 15:22 mbox ... # rm flagfich override rw-r--r-- root/wheel schg for flagfich? y rm: flagfich: Operation not permitted
Bien que nous soyons root et ayons répondu y c'est un échec et pour pouvoir supprimer le fichier nous devons d'abord en changer le drapeau.
# chflags noschg flagfich # rm flagfich
Cette fois il est bien supprimé. Si vous souhaitez effacer un répertoire il vous suffit d'utiliser l'option -R de la commande chflags: chflags -R noschg REPERTOIRE/. Notez enfin que cette dernière commande est généralement utilisée pour faire le ménage en /usr/obj/usr avant de lancer un make buildworld.
[modifier] mdconfig, monter une image iso
Pour monter une image iso vous devez utiliser la commande mdconfig qui crée et configure un disque mémoire.
# mdconfig -a -t vnode -f ./image.iso md0
La commande mdconfig vous ayant retourné le disque mémoire utilisé, ici md0, il faut maintenant le monter.
# mount_cd9660 /dev/md0 /mnt/disk/
Une fois que vous avez terminé vous pouvez démonter le disque mémoire puis le supprimer (le 0 correspondant au numéro du disque mémoire md0).
# umount /mnt/disk/ # mdconfig -d -u 0
[modifier] Interfaces graphiques X
[modifier] Installer un xorg minimal (FreeBSD 7.0)
Pour avoir un xorg minimal, vous pouvez n'installer que les six paquets suivants (et leurs dépendances) avec pkg_add ou via les ports ; /usr/ports/ :
- x11-servers/xorg-server
- x11/xorg-libraries
- x11-drivers/xorg-drivers
- x11-fonts/xorg-fonts-miscbitmaps
- x11-fonts/font-alias
- x11/xinit
Vous aurez ainsi un xorg configurable (X -configure...) et exécutable (startx) mais minimal et ne bénéficiant d'aucun gestionnaire de fenêtre ni d'aucune application graphique. A vous maintenant de le compléter selon vos besoins et envies.
[modifier] Activer la molette de la souris
Au sortir d'un Xorg -configure la molette de votre souris ne fonctionnera peut-être pas. Pour remédier à cela vous devez ajouter à votre fichier de configuration de X (normalement /etc/X11/xorg.conf) les lignes
Option "ZAxisMapping" "4 5" Option "Buttons" "5"
La section concernée de ce fichier ressemblera donc maintenant à ceci
Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" Option "ZAxisMapping" "4 5" Option "Buttons" "5" EndSection
[modifier] Configurer un clavier azerty
Après un Xorg -configure votre fichier de configuration de xorg (normalement /etc/X11/xorg.conf) ne sera pas adapté à un clavier azerty. Si vous avez un tel clavier, il vous faudra donc l'éditer afin d'y faire figurer des lignes similaires à celles-ci:
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "fr"
Option "XkbVariant" "latin9"
Option "XkbOptions" "compose:menu"
EndSection
Ceci correspondant par exemple à un clavier azerty français.
[modifier] Enclencher automatiquement le pavé numérique
Au démarrage de X le pavé numérique n'est pas activé par défaut. Certains environnements graphiques comme KDE possèdent une option de configuration pour remédier à cela... mais pas tous. Dans ce cas vous devez d'abord installer le paquet numlockx soit avec pkg_add soit via les ports. Ensuite il vous suffit d'ajouter à votre fichier ~/.xinitrc une petite ligne
numlockx &
C'est tout.
[modifier] Relier firefox et thunderbird
Voici comment configurer firefox et thunderbird pour que le premier ouvre un mailto avec le second, et pour que le second ouvre une URL avec le premier. Ceci n'est pas vraiment propre au BSD, mais peut tout de même être bien pratique.
Configuration de firefox
- Dans la barre d'URL de firefox entrez : about:config
- Clic droit dans la fenêtre, choisissez alors new, puis string.
- Dans la première fenêtre entrez la chaîne : network.protocol-handler.app.mailto
- Dans la seconde entrez sa valeur : /usr/local/bin/thunderbird
Notez que ce qui précède revient au même que d'écrire la ligne:
user_pref("network.protocol-handler.app.mailto", "/usr/local/bin/thunderbird");
dans le fichier prefs.js de firefox ; vous pouvez donc procéder ainsi si vous le préférez.
Configuration de thunderbird
- Dans le menu Edit, Preferences, Advanced cliquez sur Config Editor.
- Clic droit dans la fenêtre, choisissez alors new, puis string.
- Dans la première fenêtre entrez la chaîne : network.protocol-handler.app.http
- Dans la seconde entrez sa valeur : /usr/local/bin/firefox
- Faites de même pour network.protocol-handler.app.https et network.protocol-handler.app.ftp
Notez que ce qui précède revient au même que d'écrire les lignes:
user_pref("network.protocol-handler.app.ftp", "/usr/local/bin/firefox");
user_pref("network.protocol-handler.app.http", "/usr/local/bin/firefox");
user_pref("network.protocol-handler.app.https", "/usr/local/bin/firefox");
dans le fichier prefs.js de thunderbird ; vous pouvez donc procéder ainsi si vous le préférez.
Petite remarque
Bien sûr vous n'êtes pas obligés de lier firefox à thunderbird et réciproquement...
[modifier] Fichiers winmail.dat (Microsoft Outlook)
Vous recevez un email avec une pièce jointe: winmail.dat... et ne savez qu'en faire. Un rapide file sur ce fichier ne vous apprend qu'une chose:
% file winmail.dat winmail.dat: TNEF
TNEF est un format de mail utilisé par Microsoft Outlook ou encore Microsoft exchange. C'est sûrement très intéressant pour les utilisateurs de ces logiciels mais pas pour les autres dont les lecteurs de mails ne savent que faire de ce fichier. Heureusement au moins deux programmes (installables en binaires ou ports) peuvent venir à votre secours: tnef2txt et tnef.
tnef2txt ne posséde pas de page man ; il n'a il est vrai que quatre options:
-v: Verbose output -d: Dump hex contents -h: This information -s: Save any attached files in the TNEF stream to disk
Un simple tnef2txt winmail.dat affichera de nombreuses informations sur le fichier, l'ajout de l'option -s sauvegarde les pièces jointes tout en affichant leurs noms.
tnef possède une page man (vous avez compris) et de plus nombreuses options. tnef winmail.dat n'affiche aucun message mais sauvegarde les pièces jointes ce qui est un peu déconcertant à la première utilisation. Avec l'option -v il affiche les noms des pièces jointes extraites ; l'option -t permet d'en afficher les noms sans les sauvegarder. Avec l'option -w il vous demande pour chaque pièce jointe s'il doit ou non l'extraire... et d'autres options commentées dans le man.

