diff --git a/fr_FR.ISO8859-1/books/handbook/config/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/config/chapter.sgml index 50ca6c79e7..7c6988da2c 100644 --- a/fr_FR.ISO8859-1/books/handbook/config/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/config/chapter.sgml @@ -1,3641 +1,3935 @@ Chern Lee Ecrit par Mike Smith Basé sur un guide rédigé par Matt Dillon Egalement basé sur la page de manuel tuning(7) écrite par Configuration et optimisation &trans.a.fonvieille; Synopsis configuration du système optimisation du système La configuration correcte d'un système peut sensiblement réduire la quantité de travail impliquée dans la maintenance et la mise à jour. Ce chapitre décrit certains des aspects de la configuration des systèmes FreeBSD. Ce chapitre décrira également certains paramètres qui peuvent être modifiés pour configurer un système FreeBSD pour des performances optimales. Après la lecture de ce chapitre, vous saurez: Pourquoi et comment dimensionner, organiser, et positionner efficacement les partitions des systèmes de fichiers et de pagination sur votre disque dur. Les bases de la configuration du fichier rc.conf et des fichiers de démarrage /usr/local/etc/rc.d. Comment configurer et tester une carte réseau. Comment configurer des hôtes virtuels sur vos périphériques réseau. Comment utiliser les divers fichiers de configuration du répertoire /etc. Comment optimiser FreeBSD en utilisant les variables sysctl. Comment optimiser les performances des disques et modifier les limitations du noyau. Avant de lire ce chapitre, vous devrez: Comprendre les fondements d'&unix; et de FreeBSD (). Etre familier avec la configuration et la compilation du noyau (). Configuration initiale Organisation des partitions organisation des partitions /etc /var /usr Partitions de base Quand vous organisez votre système de fichiers à - l'aide de &man.disklabel.8; ou &man.sysinstall.8;, il est + l'aide de &man.bsdlabel.8; ou &man.sysinstall.8;, il est important de se rappeler que les disques durs peuvent transférer des données plus rapidement depuis les pistes externes que depuis celles à l'intérieur. En sachant cela, vous devriez placer vos systèmes de fichiers les plus petits, auxquels on accède le plus souvent, comme la racine et l'espace de pagination, proche de la partie externe du disque, alors que les grandes partitions, comme /usr, devraient être plus à l'intérieur. Pour faire cela, c'est une bonne idée de créer les partitions dans l'ordre suivant: racine, pagination, /var, /usr. La taille de votre partition /var reflète l'utilisation prévue de votre machine. /var est principalement utilisée pour héberger les boîtes aux lettres, les fichiers journaux, les queues d'impression. Les boîtes aux lettres et les fichiers journaux, en particulier, peuvent croître vers des tailles inattendues en fonction du nombre d'utilisateurs de votre système et de combien de temps sont conservés ces fichiers. Si vous avez l'intention de faire fonctionner un serveur de courrier électronique, une partition La plupart des utilisateurs n'auront jamais besoin de plus d'un gigaoctet, mais rappelez-vous que /var/tmp doit être assez grand pour contenir tout logiciel pré-compilé que vous pourrez vouloir ajouter. La partition /usr contient la majeure partie des fichiers nécessaires au système, le catalogue des logiciels portés (recommandé) et le code source du système (optionnel). Les deux étant optionnels à l'installation. Utiliser au moins 2 gigaoctets pour cette partition est recommandé. Quand vous dimensionnez vos partitions, gardez à l'esprit les besoins en espace pour permettre à votre système de se développer. Manquer d'espace sur une partition alors qu'il y en a plein sur les autres peut être très frustrant. Certains utilisateurs qui ont employé l'option Auto-defaults de l'outil de partitionnement de &man.sysinstall.8; ont trouvé plus tard que leurs partitions racine et /var étaient trop petites. Partitionnez généreusement et avec sagesse. Partition de pagination dimensionnement de l'espace de pagination partition de pagination Par principe, votre espace de pagination devrait typiquement avoir une taille double de la quantité de mémoire principale. Par exemple, si la machine possède 128 mégaoctets de mémoire, le fichier de pagination devrait être de 256 mégaoctets. Les systèmes avec peu de mémoire pourront avoir de meilleures performances avec beaucoup plus d'espace de pagination. Il n'est pas recommandé d'avoir moins de 256 mégaoctets d'espace de pagination sur un système et vous devriez garder à l'esprit les futures extensions de mémoire quand vous dimensionnez votre partition de pagination. Les algorithmes de pagination du noyau sont optimisés pour une meilleure efficacité avec une partition de pagination d'au moins deux fois la taille de la mémoire principale. Configurer trop peu d'espace de pagination peut conduire à une certaine inefficacité du code de pagination de la mémoire virtuelle comme à l'apparition de problèmes ultérieurement si vous ajoutez plus de mémoire à votre machine. Et enfin, sur des systèmes importants avec de multiples disques SCSI (ou de multiples disques IDE fonctionnant sur différents contrôleurs), il est vivement recommandé que vous configuriez un espace de pagination sur chaque disque (jusqu'à quatre disques). Les partitions de pagination sur les différents disques devront avoir approximativement la même taille. Le noyau peut gérer des tailles arbitraires mais les structures de données internes sont dimensionnées pour 4 fois la taille de la plus grande partition de pagination. Garder la taille des partitions de pagination proche permettra au noyau de répartir de manière optimale l'espace de pagination entre les disques. Ne vous inquiétez pas trop si vous les surdimensionnez, l'espace de pagination est un des avantages d'Unix. Même si vous n'utilisez normalement pas beaucoup de cet espace, il peut vous permettre d'avoir plus temps pour récupérer face à programme incontrôlable avant d'être forcé à relancer la machine. Pourquoi des Partitions? Pourquoi des partitions? Pourquoi ne pas créer une seule grande partition racine? Ainsi je n'aurais pas à me soucier d'avoir sous-dimensionné certaines choses! Pour plusieurs raisons cela n'est pas une bonne idée. Tout d'abord, chaque partition a différentes caractéristiques d'utilisation et les séparer autorise le système de fichiers à s'optimiser lui-même pour ces caractéristiques. Par exemple, les partitions racine et /usr sont surtout lues, et rarement utilisées en écriture, alors que de nombreuses opérations de lecture et écriture pourront avoir lieu sur /var et /var/tmp. En partitionnant correctement votre système, la fragmentation introduite sur les partitions plus petites et plus chargées en écriture ne s'étendra pas sur les partitions principalement utilisées en lecture. De plus, avoir les partitions principalement utilisées en écriture proche du bord du disque, par exemple avant la grande partition au lieu qu'après dans la table des partitions, augmentera les performances d'E/S sur les partitions qui le demandent le plus. Maintenant il est également vrai que vous avez besoin de performances d'E/S sur les grandes partitions, mais elles sont si grandes que les déplacer plus vers l'extérieur du disque ne donnera pas lieu à une augmentation significative des performances alors que le déplacement de /var vers le bord peut avoir un sérieux impact. Et enfin, il y a également des raisons de sécurité. Avoir une partition racine petite et ordonnée qui est essentiellement en lecture seule lui donne plus de chance de rester intacte après un crash sévère. Configuration principale fichiers rc rc.conf L'emplacement principal pour les données de configuration du système est le fichier /etc/rc.conf. Ce fichier contient une large gamme d'informations de configuration, principalement utilisées au démarrage du système pour configurer ce dernier. Son nom le sous-entend; c'est l'information de configuration pour les fichiers rc*. Un administrateur devrait ajouter des entrées dans le fichier rc.conf pour remplacer les valeurs par défaut du fichier /etc/defaults/rc.conf. Les fichiers de valeurs par défaut ne devraient pas être copiés directement tels quels dans /etc - ils contiennent des valeurs par défaut, et non pas des exemples. Tout changement spécifique au système devrait être fait dans le fichier rc.conf. Un certain nombre de stratégies peuvent être appliquées dans le cas d'applications en grappe pour séparer la configuration d'un site de celle d'un système afin de réduire le travail d'administration. L'approche recommandée est de placer la configuration propre au site dans un autre fichier comme /etc/rc.conf.site, puis ensuite inclure ce fichier dans /etc/rc.conf, qui ne contiendra seulement que les informations spécifiques au système. Comme rc.conf est lu par &man.sh.1; il est assez trivial d'effectuer cela. Par exemple: rc.conf: - . rc.conf.site + . /etc/rc.conf.site hostname="node15.example.com" network_interfaces="fxp0 lo0" ifconfig_fxp0="inet 10.1.1.1" rc.conf.site: defaultrouter="10.1.1.254" saver="daemon" blanktime="100" Le fichier rc.conf.site peut être distribué à l'ensemble des systèmes en utilisant rsync ou un programme semblable, tandis que le fichier rc.conf reste unique. Mettre à jour le système en employant &man.sysinstall.8; ou make world n'écrasera pas le fichier rc.conf, les informations de configuration du système ne seront donc pas perdues. Configuration des applications Généralement, les applications installées ont leurs propres fichiers de configuration, avec leur propre syntaxe, etc... Il est important que ces fichiers soient séparés du système de base, de sorte qu'ils soient facilement localisables et gérables par les outils de gestion des logiciels installés. /usr/local/etc Ces fichiers sont généralement installés dans le répertoire /usr/local/etc. Dans le cas où une application possède un grand nombre de fichiers de configuration, un sous-répertoire sera créé pour les héberger. Normalement, quand un logiciel porté ou pré-compilé est installé, des exemples de fichiers de configuration sont également installés. Ces derniers sont généralement identifiés par un suffixe “.default”. Si aucun fichier de configuration n'existe pour l'application, on les créera en copiant les fichiers .default. Par exemple, considérez le contenu du répertoire /usr/local/etc/apache: -rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf -rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default -rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf -rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf.default -rw-r--r-- 1 root wheel 12205 May 20 1998 magic -rw-r--r-- 1 root wheel 12205 May 20 1998 magic.default -rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types -rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types.default -rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf -rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.default Les tailles des fichiers indiquent que seul le fichier srm.conf a été modifié. Une mise à jour, plus tard, du logiciel Apache ne devrait pas écraser le fichier modifié. Tom Rhodes Contribution de Démarrer des services services Nombreux sont les utilisateurs qui choisissent d'installer des logiciels tierce partie sous &os; à partir du catalogue des logiciels portés. Dans de nombreuses situations, il peut être nécessaire de configurer le logiciel de manière à ce qu'il soit lancé au démarrage du système. Des services comme mail/postfix ou www/apache13 sont deux exemples de logiciels parmi tant d'autres qui peuvent être lancés à l'initialisation du système. Cette section explique les procédures disponibles pour démarrer certains logiciels tierce partie. Sous &os;, la plupart des services offerts, comme &man.cron.8;, sont lancés par l'intermédiaire des procédures de démarrage du système. Ces procédures peuvent varier en fonction de la version de &os,; ou du fournisseur; cependant, l'aspect le plus important à considérer est que leur configuration de démarrage peut être gérée à l'aide de procédures de démarrage simples. - Avant l'avènement du système rcNG, les + Avant l'avènement du système rc.d, les applications plaçaient une procédure simple de lancement dans le répertoire /usr/local/etc/rc.d qui était lue par les scripts d'initialisation du système. Ces procédures étant alors exécutées lors des dernières étapes du démarrage du système. Bien que de nombreuses personnes aient passé des heures à tenter de fusionner l'ancien mode de configuration avec le nouveau, il reste que certains utilitaires tierce partie ont toujours besoin d'un script placé dans le répertoire précédemment évoqué. Les différences subtiles dans les - scripts dépend de si le système rcNG est + scripts dépend de si le système rc.d est utilisé ou non. Avant &os; 5.1 l'ancien style de configuration était utilisé et dans presque tous les cas la nouvelle procédure fonctionnera sans problème. Bien que chaque procédure doit remplir certains pré-requis minimum, la plupart du temps ils seront indépendants de la version de &os;. Chaque procédure doit avoir une extension .sh et doit être exécutable par le système. Ce dernier point peut être réalisé en utilisant la commande chmod et en fixant les permissions à 755. Il doit y avoir, au minimum, une option pour démarrer (start) l'application et une autre pour l'arrêter (stop). La procédure de démarrage la plus simple ressemblera à celle-ci: #!/bin/sh echo -n ' utility' case "$1" in start) /usr/local/bin/utility ;; stop) kill -9 `cat /var/run/utility.pid` ;; *) - echo "Usage: `basename $0` {start|stop}" >&2 + echo "Usage: `basename $0` {start|stop}" >&2 exit 64 ;; esac exit 0 Cette procédure offre des options stop et start pour une - application appelée ici utility. - Cette application pourra alors avoir la ligne suivante la - concernant dans le fichier - /etc/rc.conf: - - utility_enable="YES" + application appelée ici utility. L'application pourra être lancée manuellement avec: &prompt.root; /usr/local/etc/rc.d/utility.sh start Bien que toutes les applications tierce partie ne nécessitent pas de ligne dans le fichier rc.conf, chaque jour un nouveau logiciel porté sera modifié pour accepter cette configuration. Contrôlez l'affichage final lors de l'installation de l'application pour plus d'information à ce sujet. Certains logiciels fourniront des procédures qui permettrons à l'application d'être - utilisée avec le système rcNG, cela sera + utilisée avec le système rc.d, cela sera abordé dans la section suivante. Configuration étendue des applications - Maintenant que &os; dispose du système rcNG, la + Maintenant que &os; dispose du système rc.d, la configuration du démarrage des applications est plus - aboutie, en effet elle propose plus de possibilités. + simple, et propose plus de possibilités. En utilisant les mots clés présentés dans la section sur le système rcNG, les applications + linkend="configtuning-rcd">rc.d, les applications peuvent désormais être paramétrées pour démarrer après certains services, par exemple le DNS, des paramètres supplémentaires peuvent être passés par l'intermédiaire de rc.conf au lieu d'utiliser des paramètres fixes dans les procédures de démarrage, etc. Une procédure de base pourra ressembler à ce qui suit: #!/bin/sh # # PROVIDE: utility # REQUIRE: DAEMON -# BEFORE: LOGIN -# KEYWORD: FreeBSD shutdown +# KEYWORD: shutdown # # DO NOT CHANGE THESE DEFAULT VALUES HERE # SET THEM IN THE /etc/rc.conf FILE # utility_enable=${utility_enable-"NO"} utility_flags=${utility_flags-""} utility_pidfile=${utility_pidfile-"/var/run/utility.pid"} . /etc/rc.subr name="utility" rcvar=`set_rcvar` command="/usr/local/sbin/utility" load_rc_config $name pidfile="${utility_pidfile}" start_cmd="echo \"Starting ${name}.\"; /usr/bin/nice -5 ${command} ${utility_flags} ${command_args}" run_rc_command "$1" Cette procédure s'assurera que l'application - utility sera lancée avant le - service login mais après le service + utility sera lancée après le + le service daemon. Elle fournie également une méthode de suivi du PID, ou encore ID (identifiant) de processus. + Cette application pourra alors avoir la ligne suivante la + concernant dans le fichier + /etc/rc.conf: + + utility_enable="YES" + Cette nouvelle méthode permet également une manipulation plus aisée des arguments en ligne de commande, l'inclusion des fonctions offertes par défaut dans /etc/rc.subr, offre une compatibilité avec l'utilitaire &man.rcorder.8; et fournie une configuration plus aisée par l'intermédiaire du fichier - rc.conf. Dans l'état actuel, - cette procédure pourrait même être - placée dans le répertoire /etc/rc.d. Cependant, cela pourra - déranger l'utilitaire &man.mergemaster.8; lors de mise - à jour logicielles. + rc.conf. Utiliser des services pour démarrer d'autres services Certains services, comme les serveurs POP3, IMAP, etc., peuvent être démarrés en utilisant &man.inetd.8;. Cela implique d'installer le service à partir du catalogue des logiciels portés et avec une ligne de configuration ajoutée au fichier /etc/inetd.conf, ou en décommentant une des lignes de configuration déjà présentes. L'utilisation d'inetd et sa configuration sont décrits en profondeur dans la section concernant inetd. Dans certains cas, il peut être plus approprié d'utiliser le daemon &man.cron.8; pour démarrer des services. Cette approche présente un certain nombre d'avantages parce que cron exécute ces processus sous les privilèges du propriétaire de la table crontab. Cela permet aux utilisateurs normaux de lancer et maintenir certaines applications. L'utilitaire cron offre une fonction unique, @reboot, qui peut être utilisée en remplacement de la date d'exécution. Cela provoquera l'exécution de la tâche quand &man.cron.8; est lancé, normalement lors de l'initialisation du système. Tom Rhodes Contribution de Configuration de l'utilitaire <command>cron</command> cron configuration Un des utilitaires les plus importants de &os; est &man.cron.8;. L'utilitaire cron tourne en arrière plan et contrôle constamment le fichier /etc/crontab. L'utilitaire cron consulte également le répertoire /var/cron/tabs, à la recherche de nouveaux fichiers crontab. Ces fichiers crontab conservent les informations sur les tâches que cron est censé exécuter à des moments donnés. L'utilitaire cron utilise deux types différents de fichiers de configuration, le fichier crontab système et les crontabs des utilisateurs. La seule différence entre ces deux formats est le sixième champ. Dans le fichier crontab système, le sixième champ est le nom de l'utilisateur sous lequel doit être exécutée la commande. Cela donne la possibilité au fichier crontab système d'exécuter les commandes sous n'importe quel utilisateur. Dans le fichier crontab d'un utilisateur, le sixième champ est la commande a exécuter et toutes les commandes sont exécutées sous l'utilisateur qui a créé le fichier crontab; c'est un aspect sécurité important. Les fichiers crontab utilisateur permettent aux utilisateurs de planifier l'exécution de tâches sans avoir besoin des privilèges du super-utilisateur root. Les commandes contenues dans le fichier crontab d'un utilisateur s'exécutent avec les privilèges de l'utilisateur auquel appartient ce fichier. Le super-utilisateur root peut posséder un fichier crontab utilisateur comme tout autre utilisateur. Ce fichier est différent de /etc/crontab (le crontab système). En raison de l'existence du fichier crontab système, il n'y a généralement pas besoin d'un fichier crontab utilisateur pour root. Examinons le fichier /etc/crontab (fichier crontab système): # /etc/crontab - root's crontab for &os; # # $&os;: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $ # # SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/var/log # # #minute heure date mois jour utilisateur commande # # */5 * * * * root /usr/libexec/atrun Comme pour la plupart des fichiers de configuration de &os;, le caractère # indique un commentaire. Un commentaire peut être ajouté dans le fichier comme rappel de ce que fait une action bien précise et pourquoi elle est effectuée. Les commentaires ne peuvent être situés sur la même ligne qu'une commande ou sinon ils seront interprétés comme faisant partie de la commande; ils doivent se trouver sur une nouvelle ligne. Les lignes vides sont ignorées. Tout d'abord, les variables d'environnement doivent être définies. Le caractère égal (=) est utilisé pour définir tout paramètre concernant l'environnement, comme dans notre exemple où il a été utilisé pour les variables SHELL, PATH, et HOME. Si la ligne concernant l'interpréteur de commande est omise, cron utilisera celui par défaut, qui est sh. Si la variable PATH est omise, il n'y aura pas de valeur par défaut utilisée et l'emplacement des fichiers devra être absolu. Si HOME est omise, cron utilisera le répertoire personnel de l'utilisateur qui l'invoque. Cette ligne définie un total de sept champs. Sont listés ici les valeurs minute, heure, date, mois, jour, utilisateur, et commande. Ces champs sont relativement explicites. minute représente l'heure en minute à laquelle la commande sera exécutée. L'option heure est semblable à l'option minute, mais en heures. Le champ date précise le jour dans le mois. mois est similaire à heure et minute mais désigne le mois. L'option jour représente le jour de la semaine. Tous ces champs doivent être des valeurs numériques, et respecter un format horaire de vingt quatre heures. Le champ utilisateur est spécial, et n'existe que dans le fichier /etc/crontab. Ce champ précise sous quel utilisateur sera exécutée la commande. Quand un utilisateur installe son fichier crontab, il n'aura pas cette option. Pour finir, l'option commande est listée. C'est le dernier champ, qui naturellement devrait désigner la commande à exécuter. Cette dernière ligne définie les valeurs discutées ci-dessus. Nous avons ici */5 suivi de plusieurs caractères *. Ces caractères * signifient “premier-dernier”, et peuvent être interprétés comme voulant dire à chaque instance. Aussi, d'après cette ligne, il apparaît que la commande atrun sera invoquée par l'utilisateur root toutes les cinq minutes indépendemment du jour ou du mois. Pour plus d'informations sur la commande atrun, consultez la page de manuel de &man.atrun.8;. N'importe quel nombre d'indicateur peut être passé à ces commandes; cependant, les commandes qui s'étendent sur de multiples lignes doivent être “cassées” avec le caractère, contre-oblique \, de continuation de lignes. Ceci est la configuration de base pour chaque fichier crontab, bien qu'il y ait une différence dans celui présenté ici. Le sixième champ, où est précisé le nom d'utilisateur, n'existe que dans le fichier système /etc/crontab. Ce champ devrait être omis pour les fichiers crontab d'utilisateur. Installer un fichier crontab Vous ne devez pas utiliser la procédure décrite ci-dessous pour éditer/installer le fichier crontab système. Utilisez directement votre éditeur: l'utilitaire cron remarquera le changement au niveau de ce fichier et utilisera immédiatement la nouvelle version. Consultez cette entrée de la FAQ pour plus d'information. Pour installer un fichier crontab utilisateur fraichement rédigé, tout d'abord utilisez votre éditeur favori pour créer un fichier dans le bon format, ensuite utilisez l'utilitaire crontab. L'usage le plus typique est: &prompt.root; crontab fichier-crontab Dans cet exemple, fichier-crontab est le nom d'un fichier crontab qui a été précédemment créé. Il existe également une option pour afficher les fichiers crontab installés, passez simplement le paramètre à crontab et lisez ce qui est affiché. Pour les utilisateurs désirant créer leur fichier crontab à partir de zéro, sans utiliser de modèle, l'option crontab -e est disponible. Cela invoquera l'éditeur par défaut avec un fichier vide. Quand le fichier est sauvegardé, il sera automatiquement installé par la commande crontab. Si vous désirez plus tard effacer votre crontab utilisateur complètement, utilisez la commande crontab avec l'option . - + Tom Rhodes Contribution de - Utilisation du système rc sous &os; 5.X - - rcNG + Utilisation du système rc sous &os - Le système rc.d de NetBSD pour - l'initialisation du système a récemment + En 2002, le système rc.d de NetBSD pour + l'initialisation du système a été intégré à &os;. Les utilisateurs noteront les fichiers présents dans le répertoire /etc/rc.d. Plusieurs de ces fichiers sont destinés aux services de base qui peuvent être contrôlés avec les options , , et . Par exemple, &man.sshd.8; peut être relancé avec la commande suivante: &prompt.root; /etc/rc.d/sshd restart Cette procédure est similaire pour d'autres services. Bien sûr, les services sont généralement - lancés automatiquement dès qu'ils sont + lancés automatiquement au démarrage dès qu'ils sont spécifiés dans le fichier &man.rc.conf.5;. Par exemple, activer le “daemon” de translation d'adresses au démarrage est aussi simple que d'ajouter la ligne suivante au fichier /etc/rc.conf: natd_enable="YES" Si une ligne est déjà présente, modifiez alors le par . Les procédures rc chargeront automatiquement les autres services dépendants lors du prochain redémarrage comme décrit ci-dessous. Comme le système rc.d est à l'origine destiné pour lancer/arrêter les services au démarrage/à l'arrêt du système, les options standards , et ne seront effectives que si les variables appropriées sont positionnées dans le fichier /etc/rc.conf. Par exemple, la commande sshd restart ci-dessus ne fonctionnera que si sshd_enable est fixée à dans /etc/rc.conf. Pour lancer, arrêter ou redémarrer un service indépendemment des paramétrages du fichier /etc/rc.conf, les commandes doivent être précédées par - “force”. Par exemple pour redémarrer + one. Par exemple pour redémarrer sshd indépendemment du paramétrage du fichier /etc/rc.conf, exécutez la commande suivante: - &prompt.root; /etc/rc.d/sshd forcerestart + &prompt.root; /etc/rc.d/sshd onerestart Il est facile de contrôler si un service est activé dans le fichier /etc/rc.conf en exécutant la procédure rc.d appropriée avec l'option . Ainsi, un administrateur peut contrôler que sshd est réellement activé dans /etc/rc.conf en exécutant: &prompt.root; /etc/rc.d/sshd rcvar # sshd $sshd_enable=YES La seconde ligne (# sshd) est la sortie de la commande sshd et non pas une console root. Pour déterminer si un service est actif, une option appelée est disponible. Par exemple pour vérifier que sshd a réellement été lancé: &prompt.root; /etc/rc.d/sshd status sshd is running as pid 433. - Il est également possible de recharger un service + Dans certains cas, il est également possible de recharger un service avec l'option . Le système tentera d'envoyer un signal à un service individuel, le forçant à recharger ses fichiers de configuration. Dans la plupart des cas cela signifie envoyer un signal - SIGHUP au service. + SIGHUP au service. Le support de cette + fonctionnalité n'est pas disponible pour chaque + service. - La structure rcNG n'est pas + Le système rc.d n'est pas uniquement utilisée pour les services réseaux, elle participe à la majeure partie de l'initialisation du système. Prenez par exemple le fichier bgfsck. Quand cette procédure est exécutée, il affichera le message suivant: Starting background file system checks in 60 seconds. Donc ce fichier est utilisé pour les vérifications du système de fichiers en arrière plan, qui sont uniquement effectuées lors de l'initialisation du système. De nombreux services système dépendent d'autres services pour fonctionner correctement. Par exemple, NIS et les autres services basés sur les RPCs peuvent échouer s'ils sont lancés après le lancement du service rpcbind (portmapper). Pour résoudre ce problème, l'information concernant les dépendances et autres méta-données est inclue dans les commentaires au début de chaque procédure de démarrage. Le programme &man.rcorder.8; est alors utilisé pour analyser ces commentaires lors de l'initialisation du système en vue de déterminer l'ordre dans lequel les services système seront invoqués pour satisfaire les dépendances. Les mots suivants peuvent être présents en tête de chaque fichier de démarrage: PROVIDE: indique les services que fournit ce fichier. REQUIRE: liste les fichiers dont dépend ce service. Ce fichier sera exécuté après les services indiqués. BEFORE: liste les services qui dépendent du service présent. Ce fichier sera exécuté avant les services indiqués. - - - KEYWORD: &os; ou NetBSD. Ceci est - utilisé pour des fonctionnalités propres au - système d'exploitation. - En utilisant ce système, un administrateur peut facilement contrôler les services du système sans avoir à se battre avec les “runlevels” comme sur d'autres systèmes d'exploitation &unix;. Des informations supplémentaires concernant le - système rc.d de &os; 5.X + système rc.d peuvent être trouvées dans les pages de manuel - &man.rc.8; et &man.rc.subr.8;. + &man.rc.8; et &man.rc.subr.8;. Si vous êtes + intéressé par l'écriture de vos propres + procédures rc.d ou pour + l'amélioration des procédures existantes, vous + trouverez cette + article utile. Marc Fonvieille Contribution de Configuration des cartes réseaux - configuration des cartes réseaux + + cartes réseaux + pilote + De nos jours il est impossible de penser à un ordinateur sans penser connexion à un réseau. Installer et configurer une carte réseau est une tâche classique pour tout administrateur FreeBSD. Déterminer le bon pilote de périphérique configuration des cartes réseaux déterminer le pilote de périphérique Avant de commencer, vous devez connaître le modèle de la carte dont vous disposez, le circuit qu'elle utilise, et si c'est une carte PCI ou ISA. FreeBSD supporte une large variété de cartes PCI et ISA. Consultez la liste de compatibilité matérielle pour votre version de FreeBSD afin de voir si votre carte est supportée. Une fois que vous êtes sûrs que votre carte est supportée, vous devez déterminer le bon pilote de - périphérique pour la carte. Le fichier - /usr/src/sys/i386/conf/LINT vous donnera + périphérique pour la carte. Les fichiers + /usr/src/sys/conf/NOTES et + /usr/src/sys/arch/conf/NOTES + vous donneront la liste des pilotes de périphériques pour cartes réseaux avec des informations sur les cartes/circuits supportés. Si vous avez des doutes au sujet du bon pilote, lisez la page de manuel du pilote. La page de manuel vous donnera plus d'information sur le matériel supporté et même les éventuels problèmes qui pourront apparaître. Si vous possédez une carte courante, la plupart du temps vous n'aurez pas à chercher trop loin pour trouver un pilote. Les pilotes pour les cartes réseaux courantes sont présents dans le noyau GENERIC, aussi votre carte devrait apparaître au démarrage, comme suit: dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38 000ff irq 15 at device 11.0 on pci0 dc0: Ethernet address: 00:a0:cc:da:da:da miibus0: <MII bus> on dc0 ukphy0: <Generic IEEE 802.3u media interface> on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30 000ff irq 11 at device 12.0 on pci0 dc1: Ethernet address: 00:a0:cc:da:da:db miibus1: <MII bus> on dc1 ukphy1: <Generic IEEE 802.3u media interface> on miibus1 ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto Dans cet exemple, nous voyons que deux cartes utilisant le pilote de périphérique &man.dc.4; sont présentes sur le système. - Pour utiliser votre carte réseau, vous devrez charger - le pilote de périphérique correct. Cela peut - être accompli de deux façons. La plus simple est de charger - le module pour votre carte réseau avec &man.kldload.8;. - Un module n'est pas disponible pour toutes les cartes réseaux - (les cartes ISA ou celles utilisant le pilote &man.ed.4;, par - exemple). Alternativement, vous pouvez compiler en statique - le support pour votre carte dans votre noyau. Consultez - /usr/src/sys/i386/conf/LINT et la page - de manuel du pilote de périphérique pour savoir ce qu'il - faut ajouter à votre fichier de configuration de votre noyau. - Pour plus d'information sur la recompilation de votre noyau, - veuillez lire le . Si votre - carte a été détectée au démarrage par - votre noyau (GENERIC) vous n'avez pas - à compiler un nouveau noyau. + Si le pilote de votre carte n'est pas présent dans + le noyau GENERIC, vous devrez charger le + module approprié pour pouvoir utiliser votre carte. Cela + peut être effectué de deux manières + différentes: + + + + La méthode la plus simple est de charger le + module pour votre carte réseau avec + &man.kldload.8;, ou automatiquement au démarrage du + système en ajoutant la ligne appropriée au + fichier /boot/loader.conf. Tous les + pilotes de cartes réseau ne sont pas disponibles + sous forme de modules; les cartes ISA sont un bon exemple + de périphériques pour lesquels les modules + n'existent pas. + + + + Alternativement, vous pouvez compiler en statique + le support pour votre carte dans votre noyau. Consultez + /usr/src/sys/conf/NOTES, + /usr/src/sys/arch/conf/NOTES + et la page de manuel du pilote de + périphérique pour savoir ce qu'il faut + ajouter au fichier de configuration de votre noyau. Pour + plus d'information sur la recompilation de votre noyau, + veuillez lire le . Si votre + carte a été détectée au + démarrage par votre noyau + (GENERIC) vous n'avez pas à + compiler un nouveau noyau. + + + + + Utilisation des pilotes NDIS de &windows; + + NDIS + NDISulator + pilotes &windows; + Microsoft Windows + Microsoft Windows + pilotes de périphériques + KLD (module noyau chargeable) + + + Malheureusement il y a toujours de nombreux fabricants + qui ne fournissent pas à la communauté des + logiciels libres les informations concernant les pilotes + pour leurs cartes considérant de telles + informations comme des secrets industriels. Par + conséquent, il ne reste aux développeurs de + &os; et d'autres systèmes d'exploitation libres que + deux choix: développer les pilotes en passant par + un long et pénible processus de reverse + engineering ou utiliser les pilotes binaires + existants disponibles pour la plateforme + µsoft.windows;. La plupart des développeurs, + y compris ceux impliqués dans &os;, ont choisi + cette dernière approche. + + Grâce aux contributions de Bill Paul (wpaul), + depuis &os; 5.3-RELEASE, il existe un support + natif pour la spécification + d'interface des pilotes de périphérique + réseau (Network Driver Interface + Specification—NDIS). Le NDISulator &os; (connu + également sous le nom de Project Evil) prend un + pilote binaire réseau &windows; et lui fait penser + qu'il est en train de tourner sous &windows;. Etant + donné que le pilote &man.ndis.4; utilise un binaire + &windows;, il n'est utilisable que sur les systèmes + &i386; et amd64. + + + Le pilote &man.ndis.4; est conçu pour supporter + principalement les périphériques PCI, + CardBus et PCMCIA, les périphériques USB ne + sont pas encore supportés. + + + Pour utiliser le NDISulator, vous avez besoin de trois + choses: + + + + les sources du noyau; + + + le pilote binaire &windowsxp; (extension + .SYS); + + + le fichier de configuration du pilote &windowsxp; + (extension .INF). + + + + Recherchez les fichiers spécifiques à + votre carte. Généralement, ils peuvent + être trouvés sur les CDs livrés avec la + carte ou sur le site du fabricant. Dans les exemples qui + suivent nous utiliseront les fichiers + W32DRIVER.SYS et + W32DRIVER.INF. + + + Vous ne pouvez pas utiliser un pilote &windows;/i386 + avec &os;/amd64, vous devez récupérer un + pilote &windows;/amd64 pour que cela fonctionne + correctement. + + + L'étape suivante est de compiler le pilote + binaire dans un module chargeable du noyau. Pour effectuer + cela, en tant que root, utilisez + &man.ndisgen.8;: + + &prompt.root; ndisgen /path/to/W32DRIVER.INF /path/to/W32DRIVER.SYS + + L'utilitaire &man.ndisgen.8; est interactif et vous + sollicitera pour d'éventuelles informations + complémentaires si nécessaire; il produira un + module noyau dans le répertoire courant qui pourra + être chargé de cette manière: + + &prompt.root; kldload ./W32DRIVER.ko + + Avec le module généré, vous devez également charger les + modules ndis.ko et + if_ndis.ko. Cela devrait être fait + automatiquement quand vous chargez un module qui dépend de + &man.ndis.4;. Si vous désirez les charger manuellement, + utilisez les commandes suivantes: + + &prompt.root; kldload ndis +&prompt.root; kldload if_ndis + + La première commande charge le pilote d'interface + NDIS, la seconde charge l'interface réseau. + + Contrôlez maintenant la sortie de &man.dmesg.8; + à la recherche d'une quelconque erreur au chargement. + Si tout s'est bien passé, vous devriez obtenir une + sortie ressemblant à ce qui suit: + + ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1 +ndis0: NDIS API version: 5.0 +ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5 +ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps +ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps + + A partir de là vous pouvez traiter le + périphérique ndis0 + comme n'importe quelle interface réseau (par exemple + dc0). + + Vous pouvez configurer le système pour charger + les modules NDIS au démarrage du système de la + même manière que pour n'importe quel autre + module. Tout d'abord, copiez le module + généré, + W32DRIVER.ko, dans le répertoire + /boot/modules. + Ajoutez ensuite la ligne suivante au fichier + /boot/loader.conf: + + W32DRIVER_load="YES" + Configuration de la carte réseau - configuration des cartes réseaux + cartes réseaux configuration Une fois que le bon pilote de périphérique pour la carte réseau est chargé, la carte doit être configurée. Comme beaucoup d'autres choses, la carte aura pu être configurée à l'installation par sysinstall. Pour afficher la configuration des interfaces réseaux de votre système, entrer la commande suivante: &prompt.user; ifconfig dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255 ether 00:a0:cc:da:da:da media: Ethernet autoselect (100baseTX <full-duplex>) status: active dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 ether 00:a0:cc:da:da:db media: Ethernet 10baseT/UTP status: no carrier lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet 127.0.0.1 netmask 0xff000000 tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 D'anciennes versions de FreeBSD pourront nécessiter l'option après &man.ifconfig.8;, pour plus de détails au sujet de la syntaxe d'&man.ifconfig.8;, veuillez vous référer à la page de manuel. Notez également que les entrées concernant l'IPv6 (inet6 etc...) ont été omises dans cet exemple. Dans cet exemple, les périphériques suivants ont été affichés: dc0: La première interface Ethernet dc1: La seconde interface Ethernet lp0: L'interface du port parallèle lo0: L'interface “en boucle” (“loopback”) tun0: L'interface “tunnel” utilisée par ppp FreeBSD utilise le nom du pilote de périphérique suivi par un chiffre représentant l'ordre dans lequel la carte est détectée au démarrage du noyau pour nommer la carte. Par exemple sis2 serait la troisième carte sur le système utilisant le pilote de périphérique &man.sis.4;. Dans cet exemple, le périphérique dc0 est actif et en fonctionnement. Les indicateurs importants sont: UP signifie que la carte est configurée et prête. La carte possède une adresse Internet (inet) (dans ce cas-ci 192.168.1.3). Elle a un masque de sous-réseau valide (netmask; 0xffffff00 est équivalent à 255.255.255.0). Elle a une adresse de diffusion valide (dans ce cas-ci 192.168.1.255). L'adresse MAC de la carte (ether) est 00:a0:cc:da:da:da La sélection du média est sur le mode d'autosélection (media: Ethernet autoselect (100baseTX <full-duplex>)). Nous voyons que dc1 a été configurée pour utiliser un matériel de type 10baseT/UTP. Pour plus d'information sur le type de matériel disponible pour un pilote de périphérique, référez-vous à sa page de manuel. La liaison (status) est active, i.e. la porteuse est détectée. Pour dc1, nous lisons status: no carrier. Cela est normal lorsqu'aucun câble n'est branché à la carte. Si le résultat de la commande &man.ifconfig.8; est similaire à: dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 ether 00:a0:cc:da:da:da cela indiquerait que la carte n'a pas été configurée. Pour configurer votre carte, vous avez besoin des privilèges de l'utilisateur root. La configuration de la carte réseau peut être faite à partir de la ligne de commande avec &man.ifconfig.8; mais vous aurez à répéter cette opération à chaque redémarrage du système. Le fichier /etc/rc.conf est l'endroit où ajouter la configuration de la carte réseau. Ouvrez le fichier /etc/rc.conf dans votre éditeur favori. Vous devez ajouter une ligne pour chaque carte réseau présente sur le système, par exemple dans notre cas, nous avons ajouté ces lignes: ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0" ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP" Vous devez remplacer dc0, dc1, et ainsi de suite, avec le périphérique correspondant pour vos cartes, et les adresses avec celles désirées. Vous devriez lire les pages de manuel du pilote de périphérique et d'&man.ifconfig.8; pour plus de détails sur les options autorisées et également la page de manuel de &man.rc.conf.5; pour plus d'information sur la syntaxe de /etc/rc.conf. Si vous avez configuré le réseau à l'installation, des lignes concernant la/les carte(s) réseau pourront être déjà présentes. Contrôler à deux fois le fichier /etc/rc.conf avant d'y ajouter des lignes. Vous devrez également éditer le fichier /etc/hosts pour ajouter les noms et les adresses IP des diverses machines du réseau local, si elles ne sont pas déjà présentes. Pour plus d'information référez-vous à la page de manuel &man.hosts.5; et au fichier /usr/share/examples/etc/hosts. Test et dépannage Une fois les modifications nécessaires du fichier /etc/rc.conf effectuées, vous devrez redémarrer votre système. Cela permettra la prise en compte de la ou les modifications au niveau des interfaces, et permettra de vérifier que le système redémarre sans erreur de configuration. Une fois que le système a été redémarré, vous devrez tester les interfaces réseau. Tester la carte Ethernet - configuration des cartes réseaux - test de la carte + cartes réseaux + tests Pour vérifier qu'une carte Ethernet est configurée correctement, vous devez essayer deux choses. Premièrement, “pinguer” l'interface, puis une autre machine sur le réseau local. Tout d'abord testons l'interface: &prompt.user; ping -c5 192.168.1.3 PING 192.168.1.3 (192.168.1.3): 56 data bytes 64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms 64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms 64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms 64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms 64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms --- 192.168.1.3 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms Nous devons maintenant “pinguer” une autre machine sur le réseau: &prompt.user; ping -c5 192.168.1.2 PING 192.168.1.2 (192.168.1.2): 56 data bytes 64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms 64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms 64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms 64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms 64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms --- 192.168.1.2 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms Vous pourrez utiliser le noms de la machine à la place de 192.168.1.2 si vous avez configuré le fichier /etc/hosts. Dépannage - configuration des cartes réseaux + cartes réseaux dépannage Le dépannage de matériels ou de logiciels est toujours une tâche relativement pénible, mais qui peut être rendue plus aisée en vérifiant en premier lieu certaines choses élémentaires. Votre câble réseau est-il branché? Avez-vous correctement configuré les services réseau? Le coupe-feu est-il bien configuré? Est-ce que la carte réseau est supportée par &os;? Consultez toujours les notes concernant le matériel avant d'envoyer un rapport de bogue. Mettez à jour votre version de &os; vers la dernière version STABLE. Consultez les archives des listes de diffusion, et faites même des recherches sur l'Internet. Si la carte fonctionne mais les performances sont mauvaises, une lecture de la page de manuel &man.tuning.7; peut valoir la peine. Vous pouvez également vérifier la configuration du réseau puisque des paramétres réseau incorrects peuvent donner lieu à des connexions lentes. Certains utilisateurs peuvent voir apparaître un ou deux messages device timeout, ce qui est normal pour certaines cartes. Si ces messages se multiplient, assurez-vous que la carte n'est pas en conflit avec un autre périphérique. Contrôlez à deux fois les câbles de connexion. Peut-être que vous avez juste besoin d'une autre carte. Parfois, des utilisateurs sont confrontés à des messages d'erreur watchdog timeout. La première chose à faire dans ce cas est de vérifier votre câble réseau. De nombreuses cartes demandent un slot PCI supportant le Bus Mastering. Sur certaines cartes mère anciennes, seul un slot PCI le permet (la plupart du temps le slot 0). Consultez la documentation de la carte réseau et de la carte mère pour déterminer si cela peut être à l'origine du problème. Les messages No route to host surviennent si le système est incapable de router un paquet vers la machine de destination. Cela peut arriver s'il n'y a pas de route par défaut de définie, ou si le câble réseau est débranché. Vérifiez la sortie de la commande netstat -nr et assurez-vous qu'il y a une route valide en direction de la machine que vous essayez d'atteindre. Si ce n'est pas le cas, lisez la . Les messages d'erreur ping: sendto: Permission denied sont souvent dus à un coupe-feu mal configuré. Si ipfw est activé dans le noyau mais qu'aucune règle n'a été définie, alors la politique par défaut est de refuser tout trafic, même les requêtes ping! Lisez pour plus d'informations. Parfois les performances de la carte ne sont pas bonnes, ou en dessous de la moyenne. Dans ce cas il est recommandé de passer la sélection du média du mode autoselect au mode adéquat. Alors que cela fonctionne généralement pour la plupart du matériel, il se peut que cela ne résolve pas le problème pour tout de monde. Encore une fois, contrôlez les paramétrages réseau et consultez la page de manuel &man.tuning.7;. Hôtes virtuels hôtes virtuels alias IP Une utilisation très courante de FreeBSD est l'hébergement de sites virtuels, où un serveur apparaît pour le réseau comme étant plusieurs serveurs différents. Ceci est possible en assignant plusieurs adresses réseau à une interface. Une interface réseau donnée possède une adresse “réelle”, et peut avoir n'importe quel nombre d'adresses “alias”. Ces alias sont normalement ajoutés en plaçant les entrées correspondantes dans le fichier /etc/rc.conf. Une entrée d'alias pour l'interface fxp0 ressemble à: ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx" Notez que les entrées d'alias doivent commencer avec alias0 et continuer en ordre croissant, (par exemple, _alias1, _alias2, et ainsi de suite). Le processus de configuration s'arrêtera au premier nombre absent. Le calcul des masques de réseau est important, mais heureusement assez simple. Pour une interface donnée, il doit y avoir une adresse qui représente correctement le masque de réseau de votre réseau. Tout autre adresse appartenant à ce réseau devra avoir un masque de réseau avec chaque bit à 1 (exprimé soit sous la forme 255.255.255.255 soit 0xffffffff). Par exemple, considérez le cas où l'interface fxp0 est connectée à deux réseaux, le réseau 10.1.1.0 avec un masque de réseau de 255.255.255.0 et le réseau 202.0.75.16 avec un masque de 255.255.255.240. Nous voulons que le système apparaisse de 10.1.1.1 jusqu'à 10.1.1.5 et à 202.0.75.17 jusqu'à 202.0.75.20. Comme noté plus haut, seule la première adresse dans un intervalle réseau donné (dans ce cas, 10.0.1.1 et 202.0.75.17) devrait avoir un masque de sous-réseau réel; toutes les autres adresses (10.1.1.2 à 10.1.1.5 et 202.0.75.18 jusqu'à 202.0.75.20) doivent être configurées avec un masque de sous-réseau de 255.255.255.255. - Les entrées suivantes configurent la carte + Les entrées suivantes du fichier + /etc/rc.conf configurent la carte correctement pour cet arrangement: - ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0" - ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255" - ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255" - ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255" - ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255" - ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240" - ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255" - ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255" - ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255" +ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0" +ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255" +ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255" +ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255" +ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255" +ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240" +ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255" +ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255" +ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255" Fichiers de configuration Organisation du répertoire <filename>/etc</filename> Il existe un certain nombre de répertoires dans lesquels se trouvent les informations de configuration. Ceux-ci incluent: /etc Information de configuration générique du système; les données ici sont spécifiques au système. /etc/defaults Version par défaut des fichiers de configuration du système. /etc/mail Configuration de &man.sendmail.8;, et autres fichiers de configuration d'agent de transmission du courrier électronique. /etc/ppp Configuration pour les programmes PPP utilisateur et intégré au noyau. /etc/namedb Emplacement par défaut pour les données de &man.named.8;. Normalement named.conf et les fichiers de zone sont stockés dans ce répertoire. /usr/local/etc Fichiers de configuration pour les applications installées. Peut contenir des sous-répertoires pour chaque application. /usr/local/etc/rc.d Procédures de lancement/d'arrêt pour les applications installées. /var/db Fichiers de bases de données automatiquement générés, spécifiques au système, comme la base de données des logiciels installés, la base de données de localisation des fichiers, et ainsi de suite. Nom d'hôtes nom d'hôte DNS <filename>/etc/resolv.conf</filename> resolv.conf /etc/resolv.conf gère comment le résolveur de FreeBSD accède au système de nom de domaine d'Internet (DNS). Les entrées la plus classiques du fichier resolv.conf sont: nameserver L'adresse IP du serveur de noms auquel le résolveur devrait envoyer ses requêtes. Les serveurs sont sollicités dans l'ordre listé avec un maximum de trois. search Liste de recherche pour la résolution de nom de machine. Ceci est normalement déterminé par le domaine de l'hôte local. domain Le nom du domaine local. Un fichier resolv.conf typique: search example.com nameserver 147.11.1.11 nameserver 147.11.100.30 Seule une des options search et domain devrait être utilisée. Si vous utilisez DHCP, &man.dhclient.8; réécrit habituellement resolv.conf avec l'information reçue du serveur DHCP. <filename>/etc/hosts</filename> hosts /etc/hosts est une simple base de données texte, une réminiscence des débuts d'Internet. Il travaille en conjonction avec les serveurs DNS et NIS pour fournir les correspondances nom vers adresse IP. Les ordinateurs locaux reliés par l'intermédiaire d'un réseau local peuvent être ajoutés dans ce fichier pour une résolution de noms simple plutôt que de configurer un serveur &man.named.8;. De plus /etc/hosts peut être utilisé pour fournir un enregistrement local de correspondances de nom, réduisant ainsi le besoin de requêtes vers l'extérieur pour les noms auxquels on accède couramment. # $FreeBSD$ # # Host Database # This file should contain the addresses and aliases # for local hosts that share this file. # In the presence of the domain name service or NIS, this file may # not be consulted at all; see /etc/nsswitch.conf for the resolution order. # # ::1 localhost localhost.my.domain myname.my.domain 127.0.0.1 localhost localhost.my.domain myname.my.domain # # Imaginary network. #10.0.0.2 myname.my.domain myname #10.0.0.3 myfriend.my.domain myfriend # # According to RFC 1918, you can use the following IP networks for # private nets which will never be connected to the Internet: # # 10.0.0.0 - 10.255.255.255 # 172.16.0.0 - 172.31.255.255 # 192.168.0.0 - 192.168.255.255 # # In case you want to be able to connect to the Internet, you need # real official assigned numbers. PLEASE PLEASE PLEASE do not try # to invent your own network numbers but instead get one from your # network provider (if any) or from the Internet Registry (ftp to # rs.internic.net, directory `/templates'). # /etc/hosts suit le format simple suivant: [Internet address] [official hostname] [alias1] [alias2] ... Par exemple: 10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2 Consultez la page de manuel &man.hosts.5; pour plus d'informations. Configuration des fichiers de trace fichiers de trace <filename>syslog.conf</filename> syslog.conf syslog.conf est le fichier de configuration du programme &man.syslogd.8;. Il indique quel type de messages syslog sera enregistré dans des fichiers de traces particuliers. # $FreeBSD$ # # Spaces ARE valid field separators in this file. However, # other *nix-like systems still insist on using tabs as field # separators. If you are sharing this file between systems, you # may want to use only tabs as field separators here. # Consult the syslog.conf(5) manual page. *.err;kern.debug;auth.notice;mail.crit /dev/console *.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages security.* /var/log/security mail.info /var/log/maillog lpr.info /var/log/lpd-errs cron.* /var/log/cron *.err root *.notice;news.err root *.alert root *.emerg * # uncomment this to log all writes to /dev/console to /var/log/console.log #console.info /var/log/console.log # uncomment this to enable logging of all log messages to /var/log/all.log #*.* /var/log/all.log # uncomment this to enable logging to a remote log host named loghost #*.* @loghost # uncomment these if you're running inn # news.crit /var/log/news/news.crit # news.err /var/log/news/news.err # news.notice /var/log/news/news.notice !startslip *.* /var/log/slip.log !ppp *.* /var/log/ppp.log Consultez la page de manuel &man.syslog.conf.5; pour plus d'informations. <filename>newsyslog.conf</filename> newsyslog.conf newsyslog.conf est le fichier de configuration de &man.newsyslog.8;, un programme qui est normalement programmé &man.cron.8; pour s'exécuter périodiquement. &man.newsyslog.8; détermine quand les fichiers de traces doivent être archivés ou réorganisés. logfile devient logfile.0, logfile.0 devient à son tour logfile.1, et ainsi de suite. D'autre part, les fichiers de traces peuvent être archivés dans le format &man.gzip.1;, ils se nommeront alors: logfile.0.gz, logfile.1.gz, et ainsi de suite. newsyslog.conf indique quels fichiers de traces doivent être gérés, combien doivent être conservés, et quand ils doivent être modifiés. Les fichiers de traces peuvent être réorganisés et/ou archivés quand ils ont soit atteint une certaine taille, soit à une certaine période/date. # configuration file for newsyslog # $FreeBSD$ # # filename [owner:group] mode count size when [ZB] [/pid_file] [sig_num] /var/log/cron 600 3 100 * Z /var/log/amd.log 644 7 100 * Z /var/log/kerberos.log 644 7 100 * Z /var/log/lpd-errs 644 7 100 * Z /var/log/maillog 644 7 * @T00 Z /var/log/sendmail.st 644 10 * 168 B /var/log/messages 644 5 100 * Z /var/log/all.log 600 7 * @T00 Z /var/log/slip.log 600 3 100 * Z /var/log/ppp.log 600 3 100 * Z /var/log/security 600 10 100 * Z /var/log/wtmp 644 3 * @01T05 B /var/log/daily.log 640 7 * @T00 Z /var/log/weekly.log 640 5 1 $W6D0 Z /var/log/monthly.log 640 12 * $M1D0 Z /var/log/console.log 640 5 100 * Z Consultez la page de manuel &man.newsyslog.8; pour plus d'informations. <filename>sysctl.conf</filename> sysctl.conf sysctl sysctl.conf ressemble à rc.conf. Les valeurs sont fixées sous la forme variable=value. Les valeurs spécifiées sont positionnées après que le système soit passé dans le mode multi-utilisateurs. Toutes les variables ne sont pas paramétrables dans ce mode. - Un exemple de sysctl.conf désactivant - la trace signaux fatals de fin de processus et faisant savoir - aux programmes Linux qu'ils tournent sous FreeBSD. + Pour désactiver l'enregistrement des signaux fatals + de fin de processus et empêcher les utilisateurs de voir + les processus lancés par les autres, les variables + suivantes peuvent être paramétrées dans + sysctl.conf: - kern.logsigexit=0 # Do not log fatal signal exits (e.g. sig 11) -compat.linux.osname=FreeBSD -compat.linux.osrelease=4.3-STABLE + # Do not log fatal signal exits (e.g. sig 11) +kern.logsigexit=0 + +# Prevent users from seeing information about processes that +# are being run under another UID. +security.bsd.see_other_uids=0 Optimisation avec sysctl sysctl optimisation avec sysctl &man.sysctl.8; est une interface qui vous permet d'effectuer des changements de paramétrage sur un système FreeBSD en fonctionnement. Cela comprend de nombreuses options avancées de la pile TCP/IP et du système de mémoire virtuelle qui peuvent améliorer dramatiquement les performances pour un administrateur système expérimenté. Plus de cinq cent variables système peuvent être lues et modifiées grâce à &man.sysctl.8;. &man.sysctl.8; remplit deux fonctions: lire et modifier les paramétrages du système. Pour afficher toutes les variables lisibles: &prompt.user; sysctl -a Pour lire une variable particulière, par exemple, kern.maxproc: &prompt.user; sysctl kern.maxproc kern.maxproc: 1044 Pour fixer une variable particulière, utilisez la syntaxe intuitive variable=valeur : &prompt.root; sysctl kern.maxfiles=5000 -kern.maxfiles: 2088 -> 5000 +kern.maxfiles: 2088 -> 5000 Les valeurs des variables sysctl sont généralement des chaînes de caractères, des nombres, ou des booléens (un variable booléenne étant 1 pour oui ou un 0 pour non). Si vous voulez fixer automatiquement certaines variables à chaque démarrage de la machine, ajoutez-les au fichier /etc/sysctl.conf. Pour plus d'information consultez la page de manuel &man.sysctl.conf.5; et la . Tom Rhodes Contribution de Variables &man.sysctl.8; en lecture seule Dans certains cas, il peut être nécessaire de modifier des variables &man.sysctl.8; en lecture seule. Bien - que cela n'est pas recommandé, c'est parfois - inévitable. + que cela soit parfois inévitable, cela ne peut être + fait qu'au (re)démarrage de la machine. Par exemple sur certains modèles d'ordinateurs portables le périphérique &man.cardbus.4; ne sondera pas le système à la recherche des zones mémoires, et échouera avec des erreurs du type: cbb0: Could not map register memory device_probe_and_attach: cbb0 attach returned 12 Des cas comme le précédent demandent généralement la modification de paramètres &man.sysctl.8; par défaut qui sont en lecture seule. Pour palier à ces situations un utilisateur peut placer un paramétrage (“OID”—Object IDentifier) &man.sysctl.8; dans le fichier local /boot/loader.conf.local. Les paramétrages par défaut se trouvent dans le fichier /boot/defaults/loader.conf. Pour corriger le problème précédent, il faudrait que l'utilisateur ajoute la ligne dans le fichier précédemment indiqué. Désormais le périphérique &man.cardbus.4; devrait fonctionner normalement. Optimiser les disques Les variables sysctl <varname>vfs.vmiodirenable</varname> vfs.vmiodirenable La variable sysctl vfs.vmiodirenable peut être positionnée soit à 0 (désactivée) soit à 1 (activée); elle est a 1 par défaut. Cette variable spécifie comment les répertoires sont cachés par le système. La plupart des répertoires sont petits, utilisant juste un simple fragment du système de fichiers (typiquement 1KO) et moins dans le cache en mémoire (typiquement 512 octets). Avec cette variable désactivée (à 0), le cache en mémoire ne cachera qu'un nombre fixe de répertoires même si vous disposez d'une grande quantité de mémoire. Activée (à 1), cette variable sysctl permet au cache en mémoire d'utiliser le cache des pages de mémoire virtuelle pour cacher les répertoires, rendant toute la mémoire disponible pour cacher les répertoires. Cependant, la taille minimale de l'élément mémoire utilisé pour cacher un répertoire est une page physique (typiquement 4KO) plutôt que 512 octets. Nous recommandons de conserver de cette option activée si vous faites fonctionner des services qui manipulent un grand nombre de fichiers. De tels services peuvent être des caches web, d'importants systèmes de courrier électronique, et des systèmes serveurs de groupe de discussion. Conserver cette option activée ne réduira généralement pas les performances même avec la mémoire gaspillée mais vous devriez faire des expériences pour le déterminer. <varname>vfs.write_behind</varname> vfs.write_behind La variable sysctl vfs.write_behind est positionnée par défaut à 1 (activée). Elle demande au système de fichiers d'effectuer les écritures lorsque des grappes complètes de données ont été collectées, ce qui se produit généralement lors de l'écriture séquentielle de gros fichiers. L'idée est d'éviter de saturer le cache tampon avec des tampons sales quand cela n'améliorera pas les performances d'E/S. Cependant, cela peut bloquer les processus et dans certaines conditions vous pouvez vouloir désactiver cette fonction. <varname>vfs.hirunningspace</varname> vfs.hirunningspace La variable sysctl vfs.hirunningspace détermine combien d'opérations d'écriture peuvent être mises en attente à tout moment au niveau des contrôleurs disques du système. La valeur par défaut est normalement suffisante mais sur les machines avec de nombreux disques, vous pouvez vouloir l'augmenter jusqu'à quatre ou cinq méga-octets. Notez que fixer une valeur trop élevée (dépassant la limite d'écriture du cache tampon) peut donner lieu à de très mauvaises performances. Ne fixez pas cette valeur à une valeur élevée arbitraire! Des valeurs d'écriture élevées peuvent ajouter des temps de latence aux opérations d'écriture survenant au même moment. Il existent d'autres variables sysctl relatives aux caches tampons et aux pages VM. Nous ne recommandons pas de modifier - ces valeurs. Depuis &os; 4.3, le système VM + ces valeurs, le système VM effectue un très bon travail d'auto-optimisation. <varname>vm.swap_idle_enabled</varname> vm.swap_idle_enabled La variable vm.swap_idle_enabled est utile dans le cas de systèmes multi-utilisateurs importants où il y a beaucoup d'utilisateurs s'attachant et quittant le système et de nombreux processus inactifs. De tels systèmes tendent à générer une pression assez importante et continue sur les réserves de mémoire libres. Activer cette fonction et régler l'hystéresis de libération de l'espace de pagination (en secondes d'inactivité) par l'intermédiaire des variables vm.swap_idle_threshold1 et vm.swap_idle_threshold2, vous permet de diminuer la priorité des pages mémoire associées avec les processus inactifs plus rapidement qu'avec l'algorithme normal de libération. Cela aide le daemon de libération des pages. N'activez cette option que si vous en besoin, parce que la concession que vous faites est d'utiliser l'espace de pagination pour les pages mémoire plus tôt qu'à l'accoutumé, consommant par conséquent plus d'espace de pagination et de bande passante disque. Sur un petit système, cette option aura un effet limité mais dans le cas d'un système important qui fait appel à l'espace de pagination de façon modérée, cette option permettra au système VM de transférer l'ensemble des processus de et vers la mémoire aisément. <varname>hw.ata.wc</varname> hw.ata.wc FreeBSD 4.3 a flirté avec la désactivation du cache en écriture des disques IDE. Cela réduisit la bande passante en écriture des disques IDE mais fut considéré comme nécessaire en raison de sérieux problèmes de cohérence de données introduits par les fabricants de disques durs. Le problème est que les disques IDE mentent sur le moment où une écriture est réellement terminée. Avec le cache en écriture IDE activé, les disques durs IDE non seulement n'écriront pas les données dans l'ordre, mais parfois retarderont l'écriture de certains blocs indéfiniment sous une charge disque importante. Un crash ou une coupure secteur pourra être à l'origine de sérieuses corruptions du système de fichiers. Par précaution le paramétrage par défaut de FreeBSD fut modifié. Malheureusement, le résultat fut une telle perte de performances que nous avons réactivé le cache en écriture après cette version de FreeBSD. Vous devriez contrôler la valeur par défaut sur votre système en examinant la variable sysctl hw.ata.wc. Si le cache en écriture des disques IDE est désactivé, vous pouvez le réactiver en positionnant la variable à 1. Cela doit être fait à partir du chargeur au démarrage. Tenter de le faire après le démarrage du noyau n'aura aucun effet. Pour plus d'informations, veuillez consulter la page de manuel &man.ata.4;. <literal>SCSI_DELAY</literal> (<varname>kern.cam.scsi_delay</varname>) - SCSI_DELAY - kern.cam.scsi_delay + kern.cam.scsi_delay + + + + options du noyau + SCSI_DELAY L'option de configuration du noyau SCSI_DELAY peut être utilisée pour réduire le temps de démarrage du système. Le délai par défaut est important et peut être responsable de plus de 15 secondes d'attente lors du processus de démarrage. Réduire ce délai à 5 secondes est généralement suffisant (tout particulièrement avec les disques modernes). Les versions de &os; récentes (5.0 et suivantes) devraient utiliser l'option de démarrage kern.cam.scsi_delay. Cette option de démarrage et celle de configuration du noyau acceptent des valeurs en millisecondes et non pas en secondes. Les “Soft Updates” Soft Updates tunefs Le programme &man.tunefs.8; peut être utilisé pour régler finement un système de fichiers. Ce programme dispose de nombreuses options différentes, mais pour l'instant nous nous intéresserons uniquement à l'activation et la désactivation des “Soft Updates”, ce qui fait avec: &prompt.root; tunefs -n enable /filesystem &prompt.root; tunefs -n disable /filesystem Un système de fichiers ne peut être modifié avec &man.tunefs.8; tant qu'il est monté. Un bon moment pour activer les “Soft Updates” est avant que les partitions ne soient montées en mode mono-utilisateur. - Depuis FreeBSD 4.5, il est possible d'activer les - “Soft Updates” au moment de la création du - système de fichiers, avec l'utilisation de l'option - -U de la commande - &man.newfs.8;. - Les “Soft Updates” améliorent de façon drastique les performances sur les méta-données, principalement la création et la suppression de fichier, par l'utilisation d'un cache mémoire. Nous recommandons d'activer les “Soft Updates” sur tous vos systèmes de fichiers. Il y a deux inconvénients aux “Soft Updates” que vous devez connaître: tout d'abord, les “Soft Updates” garantissent la cohérence du système de fichiers en cas de crash mais pourront facilement être en retard de quelques secondes (voir même une minute!) dans la mise à jour du disque. Si votre système plante il se peut que vous perdiez plus de travail que dans d'autres cas. Deuxièmement, les “Soft Updates” retardent la libération des blocs du système de fichiers. Si vous avez un système de fichiers (comme le système de fichiers racine) qui est presque plein, effectuer une mise à jour majeure, comme un make installworld, peut mener à un manque d'espace sur le système de fichiers et faire échouer la mise à jour. Plus de détails à propos des “Soft Updates” Soft Updates détails Il y a deux approches traditionnelles pour écrire les méta-données d'un système de fichiers sur le disque (mise à jour des méta-données et mise à jour des éléments sans données comme les inodes ou les répertoires). Historiquement, le comportement par défaut était d'écrire les mises à jour des méta-données de façon synchrone. Si un répertoire a été modifié, le système attendait jusqu'à ce que le changement soit effectivement écrit sur le disque. Les tampons des données de fichier (contenu du fichier) passaient par le cache mémoire et étaient copiés sur le disque plus tard de façon asynchrone. L'avantage de cette implémentation est qu'elle est effectuée sans risque. S'il y a un problème durant une mise à jour, les méta-données sont toujours dans un état consistant. Un fichier est soit créé complètement soit pas du tout. Si les blocs de données d'un fichier n'ont pas trouvé leur chemin du cache mémoire vers le disque au moment du crash, &man.fsck.8; est capable de s'en apercevoir et de réparer le système de fichiers en fixant la taille du fichier à 0. De plus, l'implémentation est claire et simple. L'inconvénient est que la modification des méta-données est lente. Un rm -r, par exemple, touche à tous les fichiers dans un répertoire séquentiellement, mais chaque modification du répertoire (effacement d'un fichier) sera écrite de façon synchrone sur le disque. Cela comprend les mises à jour du répertoire lui-même, de la table des inodes, et éventuellement celles sur des blocs indirects alloués par le fichier. Des considérations semblables s'appliquent à la création d'importantes hiérarchies ((tar -x). Le deuxième cas est la mise à jour asynchrone des méta-données. C'est le comportement par défaut de Linux/ext2fs et de l'usage de mount -o async pour l'UFS des systèmes BSD. Toutes les mises à jour des méta-données passent également par l'intermédiaire d'un cache mémoire, c'est à dire, qu'elles seront mélangées aux mises à jour des données du contenu du fichier. L'avantage de cette implémentation est qu'il n'y a pas besoin d'attendre jusqu'à l'écriture sur le disque de chaque mise à jour de méta-données, donc toutes les opérations qui sont à l'origine d'une grande quantité de mise à jour de méta-données fonctionnent bien plus rapidement que dans le cas synchrone. De plus, l'implémentation est toujours claire et simple, il y a donc peu de risque qu'un bogue se cache dans le code. L'inconvénient est qu'il n'y a aucune garantie du tout sur la cohérence du système de fichiers. S'il y a un problème durant une opération qui met à jour une grande quantité de méta-données (comme une coupure secteur, ou quelqu'un appuyant sur le bouton reset), le système de fichiers sera laissé dans un état imprévisible. Il n'y a aucune opportunité d'examiner l'état du système de fichiers quand le système est à nouveau relancé; les blocs de données d'un fichier pourraient déjà avoir été inscrits sur le disque alors que la mise à jour de la table des inodes ou du répertoire associé n'a pas été faite. Il est en fait impossible d'implémenter un fsck qui est capable de nettoyer le chaos résultant (parce que l'information nécessaire n'est pas disponible sur le disque). Si le système de fichiers a été endommagé irrémédiablement, le seul choix est de le recréer avec &man.newfs.8; et de récupérer les données à partir de sauvegardes. La solution commune pour ce problème fut d'implémenter une région de trace, dont on fait souvent référence sous le terme de journalisation, bien que ce terme ne soit pas toujours utilisé de façon cohérente et est occasionnellement utilisé pour d'autres formes de transaction avec trace. Les mises à jour des méta-données sont toujours écrites de façon synchrone, mais seulement sur une petite région du disque. Elles seront plus tard déplacées vers leur emplacement correct. Parce que la région de trace est une petite région contiguë sur le disque, il n'y a pas de grandes distances de déplacement pour les têtes des disques, même durant les opérations importantes, donc ces opérations sont plus rapides que les mises à jour synchrones. De plus la complexité de l'implémentation est relativement limitée, donc le risque de présence de bogues est faible. Un inconvénient est que toutes les méta-données sont écrites deux fois (une fois dans la région de trace et une fois sur l'emplacement correct) donc pour un fonctionnement normal, une baisse des performances pourra en résulter. D'autre part, dans le cas d'un crash, toutes les opérations sur les méta-données en attente peuvent rapidement être annulées ou complétées à partir de la zone de trace après le redémarrage du système, ayant pour résultat un démarrage rapide du système de fichiers. Kirk McKusick, le développeur du FFS de Berkeley, a résolu le problème avec les “Soft Updates”: toutes les mises à jour des méta-données sont conservées en mémoire et inscrites sur le disque selon une séquence ordonnée (“mise à jour ordonnée des méta-données”). Ceci a pour effet, dans le cas d'un nombre d'opérations sur les méta-données important, que les dernières mises à jour sur un élément “attrapent” les premières si ces dernières sont encore en mémoire et n'ont pas encore été inscrites sur le disque. Donc toutes les opérations sur, par exemple, un répertoire sont généralement effectuées en mémoire avant que la mise à jour ne soit écrite sur le disque (les blocs de données sont ordonnés en fonction de leur position de sorte à ce qu'ils ne soient pas sur le disque avant leur méta-données). Si le système crash, cela provoque un “retour dans les traces” implicite: toutes les opérations qui n'ont pas trouvé leur chemin vers le disque apparaissent comme si elles n'avaient jamais existé. Un état cohérent du système de fichiers est maintenu et apparaît comme étant celui de 30 ou 60 secondes plus tôt. L'algorithme utilisé garantie que toutes les ressources utilisées soient marquées avec leur bons “bitmaps”: blocs et inodes. Après un crash, les seules erreurs d'allocation de ressources qui apparaissent sont les ressources qui ont été marquées comme “utilisées” et qui sont en fait ”libre”. &man.fsck.8; reconnaît cette situation, et libère les ressources qui ne sont plus utilisées. On peut ignorer sans risque l'état “sale” d'un système de fichiers après un crash en forçant son montage avec mount -f. Afin de libérer les ressources qui peuvent être inutilisées, &man.fsck.8; doit être exécuté plus tard. C'est l'idée qu'il y a derrière le “background fsck” (fsck en tâche de fond): au démarrage du système, seule un “snapshot” (photographie) du système de fichiers est prise. La commande fsck peut être exécutée plus tard sur ce système de fichiers. Tous les systèmes de fichiers peuvent être montés “sales”, donc le système passe en mode multi-utilisateurs. Ensuite, les fsck en tâche de fond seront programmés pour tous les systèmes de fichiers pour lesquels c'est nécessaire, pour libérer les ressources qui peuvent être inutilisées (les systèmes qui n'utilisent pas les ‘Soft Updates” ont toujours besoin du fsck en avant plan). L'avantage est que les opérations sur les méta-données sont presque aussi rapides que les mises à jour asynchrones (i.e. plus rapide qu'avec le “logging” - traçage, qui doit écrire les méta-données deux fois). Les inconvénients sont la complexité du code (impliquant un haut risque de bogues dans une zone qui est hautement sensible en raison de risque perte de données utilisateur), et une plus grande consommation en mémoire. De plus il y a quelques particularités que l'on peut rencontrer lors de l'utilisation. Après un crash, l'état du système apparaît être en quelque sorte “plus vieux”. Dans des situations où l'approche synchrone classique aurait donné lieu à des fichiers de taille nulle restant après le fsck, ces fichiers n'existent pas du tout avec un système de fichiers utilisant les “Soft Updates” parce que ni les méta-données ni les contenus de fichiers n'ont jamais été inscrits sur le disque. L'espace disque n'est pas rendu tant que les mises à jour n'ont pas été inscrites sur le disque, ce qui peut se produire quelques temps après l'exécution de rm. Cela peut être à l'origine de problèmes quand on installe une grande quantité de données sur un système de fichiers qui ne dispose pas de suffisamment d'espace pour contenir tous les fichiers deux fois. Optimisation des limitations du noyau Optimisation limitations du noyau Limitations sur les fichiers et les processus <varname>kern.maxfiles</varname> kern.maxfiles Le paramètre kern.maxfiles peut être augmenté ou diminué en fonction des besoins du système. Cette variable indique le nombre maximal de descripteurs de fichier sur votre système. Quand la table de descripteurs de fichier est pleine, le message file: table is full s'affichera régulièrement dans le tampon des messages système, qui peut être visualisé avec la commande dmesg. Chaque fichier ouvert, chaque “socket”, ou chaque emplacement en pile utilise un descripteur de fichier. Un serveur important peut facilement demander plusieurs milliers de descripteurs de fichiers, en fonction du type et du nombre de services s'exécutant en même temps. - La valeur par défaut de kern.maxfile - est fixée par l'option + Sous les anciennes versions de &os;, la valeur par défaut de kern.maxfile + est fixée par l'option dans votre fichier de configuration du noyau. kern.maxfiles augmente proportionnellement - avec la valeur de . Quand vous + avec la valeur de . Quand vous compilez un noyau sur mesure, il est bon de paramétrer cette option en fonction de l'utilisation de votre système. Ce nombre fixe la plupart des limites pré-définies du noyau. Même si une machine de production pourra ne pas avoir en réalité 256 utilisateurs connectés simultanément, les ressources requises pourront être semblables pour un serveur web important. - A partir de FreeBSD 4.5, positionner - à 0 dans votre - fichier de configuration du noyau, le système choisira une - valeur raisonnable par défaut basée sur la - quantité de mémoire présente sur votre - système. + Depuis &os; 4.5, kern.maxusers est + automatiquement ajustée au démarrage en + fonction de la quantité de mémoire disponible + dans le système, sa valeur peut être connue + durant le fonctionnement du système en examinant la + valeur de la variable sysctl en lecture seule: + kern.maxusers. Certains systèmes + auront besoin de valeurs plus élevées ou plus + faibles pour kern.maxusers et pourront + donc la fixer au chargement du système; des valeurs + de 64, 128, ou 256 ne sont pas inhabituelles. Nous + recommandons de ne pas dépasser 256 à moins + que vous ayez besoin d'un grand nombre de descripteurs de + fichiers; plusieurs des variables dont la valeur par + défaut dépend de + kern.maxusers peuvent être + fixées individuellement au démarrage ou en + fonctionnement dans le fichier + /boot/loader.conf (voir la page de + manuel &man.loader.conf.5; ou le fichier + /boot/defaults/loader.conf pour des + exemples) ou comme décrit en d'autres endroits dans + ce document. Les systèmes antérieurs à + &os; 4.4 doivent passer par l'option + du fichier de configuration du + noyau pour fixer cette valeur. + + Sous les anciennes versions, le système auto-ajuste + ce paramètre pour vous si vous le fixez explicitement + à 0 + L'algorithme d'auto-ajustement fixe + maxusers à une valeur égale + à la quantité de mémoire présente + sur le système, avec un minimum de 32 et un maximum de + 384... + En paramétrant cette option, vous + devrez fixer maxusers à 4 au + moins, en particulier si vous utilisez le système X + Window ou compilez des logiciels. La raison de cela est que + la valeur la plus importante que dimensionne + maxusers est le nombre maximal de + processus, qui est fixé à 20 + 16 * + maxusers, donc si vous positionnez + maxusers à 1, alors vous ne pouvez + avoir que 36 processus en simultanés, comprenant les + 18, environ, que le système lance au démarrage + et les 15, à peu près, que vous créerez + probablement au démarrage du système X Window. + Même une tâche simple comme la lecture d'une + page de manuel lancera jusqu'à neuf processus pour la + filtrer, la décompresser, et l'afficher. Fixer + maxusers à 64 autorisera + jusqu'à 1044 processus simultanés, ce qui + devrait suffire dans la plupart des cas. Si, toutefois, + vous obtenez le message d'erreur tant redouté + proc table full quand vous tentez + d'exécuter un nouveau programme, ou gérez un + serveur avec un grand nombre d'utilisateurs en + simultanés (comme ftp.FreeBSD.org), vous pouvez toujours + augmenter cette valeur et recompiler le noyau. + + + maxusers ne limite + pas le nombre d'utilisateurs qui + pourront ouvrir une session sur votre machine. Cette + valeur dimensionne simplement différentes tables + à des valeurs raisonnables en fonction du nombre + maximal d'utilisateur que vous aurez vraisemblablement sur + votre système et combien de processus chacun + d'entre eux pourra utiliser. Un mot-clé qui + limite le nombre d'utilisateurs + distants et de terminaux X en simultané est pseudo-device pty + 16. Avec &os; 5.X, vous n'avez pas + à vous soucier de ce nombre puisque le pilote + &man.pty.4; est capable d'auto-clonage, + vous devez donc utiliser la ligne device + pty dans votre fichier de configuration. + <varname>kern.ipc.somaxconn</varname> kern.ipc.somaxconn La variable sysctl kern.ipc.somaxconn limite la taille de la file d'attente acceptant les nouvelles connexions TCP. La valeur par défaut de 128 est généralement trop faible pour une gestion robuste des nouvelles connexions dans un environnement de serveur web très chargé. Pour de tels environnements, il est recommandé d'augmenter cette valeur à 1024 ou plus. Le daemon en service peut de lui-même limiter la taille de la file d'attente (e.g. &man.sendmail.8;, ou Apache) mais disposera, la plupart du temps, d'une directive dans son fichier de configuration pour ajuster la taille de la file d'attente. Les files d'attentes de grandes tailles sont plus adaptées pour éviter les attaques par déni de service (DoS). - + Limitations réseau L'literal du noyau NMBCLUSTERS fixe la quantité de Mbuf;s disponibles pour le système. Un serveur à fort trafic avec un nombre faible de Mbuf;s sous-emploiera les capacités de FreeBSD. Chaque “cluster” représente approximativement 2 Ko de mémoire, donc une valeur de 1024 représente 2 mégaoctets de mémoire noyau réservée pour les tampons réseau. Un simple calcul peut être fait pour déterminer combien sont nécessaires. Si vous avez un serveur web qui culmine à 1000 connexions simultanées, et que chaque connexion consomme un tampon de réception de 16Ko et un tampon d'émission de 16 Ko, vous avez approximativement besoin de 32 Mo de tampon réseau pour couvrir les besoin du serveur web. Un bon principe est de multiplier ce nombre par 2, soit 2x32 Mo / 2 Ko = 64 Mo / 2 Ko =32768. Nous recommandons des valeurs comprises entre 4096 et 32768 pour les machines avec des quantités de mémoire plus élevées. Vous ne devriez, dans aucun circonstance, spécifier de valeur élevée arbitraire pour ce paramètre étant donné que cela peut être à l'origine d'un plantage au démarrage. L'option de &man.netstat.1; peut être utilisée pour observer l'utilisation des clusters. La variable kern.ipc.nmbclusters configurable au niveau du chargeur est utilisée pour ajuster cela au démarrage. Seules les anciennes versions de &os; vous demanderont d'utiliser l'option de configuration du noyau NMBCLUSTERS. Pour les serveurs chargés qui font une utilisation intensive de l'appel système &man.sendfile.2;, il peut être nécessaire d'augmenter le nombre de tampons &man.sendfile.2; par l'intermédiaire de l'option de configuration du noyau NSFBUFS ou en fixant sa valeur dans le fichier /boot/loader.conf (consultez la page de manuel &man.loader.8; pour plus de détails). Un indicateur de la nécessité d'ajuster ce paramètre est lorsque des processus sont dans l'état sfbufa. La variable sysctl kern.ipc.nsfbufs est un aperçu en lecture seule de la variable du noyau. Ce paramètre s'ajuste de façon optimale avec kern.maxusers, il peut être cependant nécessaire de l'ajuster en fonction des besoins. Même si une socket a été marquée comme étant non-bloquante, un appel de &man.sendfile.2; sur la socket non-bloquante peut résulter en un blocage de l'appel &man.sendfile.2; jusqu'à ce que suffisamment de struct sf_buf soient libérées. <varname>net.inet.ip.portrange.*</varname> net.inet.ip.portrange.* Les variables net.inet.ip.portrange.* contrôlent les intervalles de ports automatiquement alloués aux sockets TCP et UDP. Il y a trois intervalles: un intervalle bas, un intervalle par défaut, et intervalle un haut. La plupart des programmes réseau utilisent l'intervalle par défaut qui est contrôlé par net.inet.ip.portrange.first et net.inet.ip.portrange.last, qui ont pour valeur par défaut respectivement 1024 et 5000. Ces intervalles de ports sont utilisés pour les connexions sortantes, et il est possible de se trouver à court de ports dans certaines conditions. Cela arrive le plus souvent quand votre système fait tourner un proxy web très chargé. L'intervalle de ports n'est pas un problème quand vous exécutez des serveurs qui ne gèrent principalement que des connexions entrantes, comme un server web classique, ou qui ont un nombre de connexions sortantes limitées comme un relai de messagerie. Pour les cas où vous risquez d'être à court de ports, il est recommandé d'augmenter légèrement net.inet.ip.portrange.last. Une valeur de 10000, 20000 ou 30000 doit être suffisante. Vous devriez également penser au problème du coupe-feu lors du changement de l'intervalle des ports. Certains coupes-feu peuvent bloquer de grands intervalles de ports (en général les ports inférieurs) et s'attendent à ce que les systèmes utilisent les intervalles supérieurs pour les connexions - sortantes — pour cette raison il est conseillé + sortantes — pour cette raison il n'est pas conseillé de diminuer net.inet.ip.portrange.first. Le produit délai-bande passante TCP limitation du produit délai-bande passante TCP - net.inet.tcp.inflight_enable + net.inet.tcp.inflight.enable La limitation du produit délai-bande passante TCP est semblable au TCP/Vegas sous NetBSD. Elle peut être activée en positionnant à 1 la variable - net.inet.tcp.inflight_enable. Le + net.inet.tcp.inflight.enable. Le système tentera alors de calculer le produit délai-bande passante pour chaque connexion et limitera la quantité de données en attente à la quantité juste nécessaire au maintient d'un flux de sortie optimal. Cette fonctionnalité est utile si vous diffusez des données par l'intermédiaire de modems, de connexions Ethernet Gigabit, ou même de liaisons hauts débits WAN (ou toute autre liaison avec un produit délai-bande passante élevé), tout particulièrement si vous utilisez également le dimensionnement des fenêtres d'émission ou que vous avez configuré une fenêtre d'émission importante. Si vous activez cette option, vous devriez également vous assurer que - net.inet.tcp.inflight_debug est + net.inet.tcp.inflight.debug est positionnée à 0 (désactive le débogage), et pour une utilisation en production, fixer - net.inet.tcp.inflight_min à au + net.inet.tcp.inflight.min à au moins 6144 peut être bénéfique. Notez, cependant, que fixer des minima élevés peut désactiver la limitation de bande passante selon la liaison. La fonction de limitation diminue la quantité de données accumulées dans les files d'attente intermédiaire de routage et de commutation, et diminue également la quantité de données présentes dans les files d'attente de l'interface de la machine locale. Avec moins de paquets dans les files d'attente, les connexions interactives, tout particulièrement sur des modems lents, seront en mesure de fonctionner avec des temps d'aller-retour plus faible. Mais cette fonctionnalité n'affecte que la transmission de données (transmission côté serveur). Ceci n'a aucun effet sur la réception de données (téléchargement). - Modifier net.inet.tcp.inflight_stab + Modifier net.inet.tcp.inflight.stab n'est pas recommandé. Ce paramètre est fixé par défaut à la valeur 20, représentant au maximum 2 paquets ajoutés à la fenêtre de calcul du produit délai-bande passante. La fenêtre supplémentaire est nécessaire pour stabiliser l'algorithme et améliorer la réponse aux changements de conditions, mais il peut en résulter des temps de ping plus élevés sur les liaisons lentes (mais cependant inférieurs à ce que vous obtiendriez sans l'algorithme de limitation). Dans de tels cas, vous pouvez essayer de réduire ce paramètre à 15, 10, ou 5, et vous pouvez avoir à réduire le paramètre - net.inet.tcp.inflight_min (par exemple + net.inet.tcp.inflight.min (par exemple à 3500) pour obtenir l'effet désiré. Ces paramètres ne doivent être réduits qu'en dernier ressort. + + + Mémoire virtuelle + + + <varname>kern.maxvnodes</varname> + + Un vnode est la représentation interne d'un + fichier ou d'un répertoire. Augmenter le nombre de + vnodes disponibles pour le système d'exploitation + diminue les accès disque. Cela est normalement + géré par le système d'exploitation et + n'a pas besoin d'être modifié. Dans certains + cas où les accès aux disques sont un goulot + d'étranglement pour le système et que ce + dernier est à cours de vnodes, ce nombre aura besoin + d'être augmenté. La quantité de RAM + libre et inactive sera prise en compte. + + Pour connaître le nombre de vnodes actuellement + utilisés: + + &prompt.root; sysctl vfs.numvnodes +vfs.numvnodes: 91349 + + Pour connaître le maximum de vnodes utilisables: + + &prompt.root; sysctl kern.maxvnodes +kern.maxvnodes: 100000 + + Si l'utilisation actuelle des vnodes est proche du + maximum, augmenter de 1000 kern.maxvnodes + est probablement une bonne idée. Gardez un oeil sur + le nombre vfs.numvnodes. S'il approche + à nouveau le maximum, + kern.maxvnodes devra être + augmenté de manière plus conséquente. + Une modification dans votre utilisation de la mémoire + devrait être visible dans &man.top.1;. Une plus + grande quantité de mémoire devrait être + annoncée comme active. + + Ajouter de l'espace de pagination Peu importe comment vous l'avez pensé, parfois un système ne fonctionne pas comme prévu. Si vous trouvez que vous avez besoin de plus d'espace de pagination, il est assez simple d'en rajouter. Vous avez trois manières d'augmenter votre espace de pagination: ajouter un nouveau disque dur, activer la pagination sur NFS, et créer un fichier de pagination sur une partition existante. + Pour des informations sur comment chiffrer l'espace de + pagination, quelles options existent pour mener à bien + cette tâche et pourquoi on devrait le faire, veuillez vous + référer à la + du Manuel. + Espace de pagination sur un nouveau disque dur La meilleur façon d'ajouter de l'espace de pagination, bien sûr, est d'utiliser ceci comme excuse pour ajouter un autre disque dur. Vous pouvez toujours utiliser un autre disque après tout. Si vous pouvez faire cela, allez relire la discussion sur l'espace de pagination dans la du Manuel pour des suggestions sur la meilleure façon d'arranger votre espace de pagination. Espace de pagination sur NFS L'espace de pagination sur NFS n'est recommandé que si vous n'avez pas de disque dur local sur lequel avoir l'espace - de pagination. Avoir son espace de pagination sur NFS sera - lent et inefficace sur les versions de FreeBSD antérieures - à la branche 4.X. C'est raisonnablement rapide et efficace - sur 4.0-RELEASE et suivante. Même avec une version - récente de FreeBSD, la pagination sur NFS sera limitée + de pagination; la pagination sur NFS sera limitée par la bande passante du réseau et sera un fardeau supplémentaire pour le serveur NFS. Fichiers de pagination Vous pouvez créer un fichier d'une taille spécifique pour l'utiliser comme fichier de pagination. Dans notre exemple nous utiliserons un fichier de 64MO appelé /usr/swap0. Vous pouvez, bien sûr, utiliser le nom de votre choix. - Créer un fichier de pagination sous FreeBSD 4.X - - - - Soyez sûr que votre configuration de noyau inclut le - pilote vnode. Ce n'est pas le cas dans - les versions récentes de - GENERIC. - - pseudo-device vn 1 #Vnode driver (turns a file into a device) - - - - Créez un périphérique vn: - &prompt.root; cd /dev -&prompt.root; sh MAKEDEV vn0 - - - - Créez un fichier de pagination - (/usr/swap0): - - &prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 - - - - Fixez les bonnes permissions sur - /usr/swap0: - - &prompt.root; chmod 0600 /usr/swap0 - - - - Activez le fichier de pagination dans - /etc/rc.conf: - - swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. - - - - - Redémarrez la machine ou activez directement le - fichier de pagination: - - &prompt.root; vnconfig -e /dev/vn0b /usr/swap0 swap - - - - - - Créer un fichier de pagination sous FreeBSD 5.X + Créer un fichier de pagination sous &os; Assurez-vous que votre configuration de noyau inclut le pilote de disque mémoire (&man.md.4;). Il se trouve par défaut dans le noyau GENERIC. device md # Memory "disks" Créez un fichier de pagination (/usr/swap0): &prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 Fixez les bonnes permissions sur /usr/swap0: &prompt.root; chmod 0600 /usr/swap0 Activez le fichier de pagination dans /etc/rc.conf: swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. Redémarrez la machine ou activez directement le fichier de pagination: - &prompt.root; mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0 + &prompt.root; mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0 Hiten Pandya Ecrit par Tom Rhodes Gestion de l'énergie et des ressources - Il est vraiment important d'utiliser les ressources + Il est important d'utiliser les ressources matérielles d'une manière efficace. Avant l'apparition de l'ACPI, il était - très difficile pour les systèmes d'exploitation de + difficile pour les systèmes d'exploitation de gérer l'utilisation de l'alimentation et la température d'un système. Le matériel était - contrôlé par certaines interfaces du - BIOS, comme le système - Plug and Play BIOS (PNPBIOS), - l'Advanced Power Management (APM) et ainsi - de suite. La gestion de l'énergie et des ressources est un + géré par le BIOS et donc + l'utilisateur avait moins de contrôle et de + visibilité sur le paramétrage de la gestion de + l'énergie. Une configuration limitée était + accessible via + l'Advanced Power Management (APM). + La gestion de l'énergie et des ressources est un des éléments clés d'un système d'exploitation moderne. Par exemple, vous pourrez vouloir qu'un système d'exploitation surveille certaines limites (et éventuellement vous alerte), au cas où la température de votre système augmente de façon inattendue. Dans cette section, nous fournirons une information complète au sujet de l'ACPI. Il sera fait référence à des documents supplémentaires en fin de section pour plus de - détails. Soyez conscient que l'ACPI - est disponible sur les systèmes FreeBSD 5.X et - suivants par défaut sous la forme d'un module noyau. - Sous &os; 4.9, l'ACPI peut être - activé en ajoutant la ligne device - acpica à la configuration du noyau et en le - recompilant. + détails. Qu'est-ce que l'ACPI? + + ACPI + + + + APM + + L'interface de configuration et d'alimentation avancée (ACPI, Advanced Configuration and Power Interface) est une norme créée par un ensemble de constructeurs pour fournir une interface standard à la gestion des ressources et de l'énergie. C'est un élément clé dans le contrôle et la configuration par le système d'exploitation de de la gestion d'énergie, i.e., il permet plus de contrôle et flexibilité au système d'exploitation. Les systèmes modernes ont “repoussé” les limites - des interfaces “Plug and Play” actuelles (comme - l'APM, qui est utilisé sous FreeBSD 4.X), avant + des interfaces “Plug and Play” antérieures + à l'apparition de l'ACPI. L'ACPI est le descendant direct de l'APM (Advanced Power Management - gestion avancée de l'énergie). Les imperfections de la gestion avancée de l'énergie (APM) Le système de gestion avancée de l'énergie (APM) gère l'utilisation de l'énergie par un système en fonction de son activité. Le BIOS APM est fourni par le fabricant (du système) et est spécifique à la plateforme matérielle. Un pilote APM au niveau du système d'exploitation gère l'accès à l'interface logicielle APM qui autorise la - gestion des niveaux de consommation. + gestion des niveaux de consommation. L'APM devrait être + toujours utilisé pour les systèmes + fabriqués en ou avant 2000. L'APM présente quatre problèmes majeurs. Tout d'abord la gestion de l'énergie est effectuée par le BIOS (spécifique au constructeur), et le système d'exploitation n'en a aucune connaissance. Un exemple de ce problème, est lorsque l'utilisateur fixe des valeurs pour le temps d'inactivité d'un disque dur dans le BIOS APM, qui une fois dépassé, provoque l'arrêt du disque (par le BIOS) sans le consentement du système d'exploitation. Deuxièmement, la logique de l'APM est interne au BIOS, et agit indépendamment du système d'exploitation. Cela signifie que les utilisateurs ne peuvent corriger les problèmes de leur BIOS APM qu'en flashant un nouveau BIOS; c'est une opération dangereuse, qui si elle échoue peut laisser le système dans un état irrécupérable. Troisièmement, l'APM est une technologie spécifique au constructeur, ce qui veut dire qu'il y a beaucoup de redondances (duplication des efforts) et de bogues qui peuvent être trouvées dans le BIOS d'un constructeur, et qui peuvent ne pas être corrigées dans d'autres BIOS. Et pour terminer, le dernier problème est le fait que le BIOS APM n'a pas suffisamment d'espace pour implémenter une politique sophistiquée de gestion de l'énergie, ou une politique qui peut s'adapter parfaitement aux besoins de la machine. Le BIOS Plug and Play (PNPBIOS) n'était pas fiable dans de nombreuses situations. Le PNPBIOS est une technologie 16 bits, le système d'exploitation doit utiliser une émulation 16 bits afin de faire l'interface avec les méthodes PNPBIOS. Le pilote APM &os; est documenté dans la page de manuel &man.apm.4;. Configurer l'<acronym>ACPI</acronym> Le pilote acpi.ko est par défaut chargé par le &man.loader.8; au démarrage et ne devrait pas être compilé dans le noyau. La raison derrière cela est que les modules sont plus facile à manipuler, par exemple pour passer à une autre version du module acpi.ko sans avoir à recompiler le noyau. Cela présente l'avantage de rendre les tests aisés. Une autre raison est que lancer l'ACPI après qu'un système ait - terminé son lancement n'est pas très utile, et dans - certain cas peut même être fatal. Dans le doute, + terminé son lancement donne souvent lieu à des + dysfonctionnements. Si des problèmes surviennent, vous pouvez désactiver l'ACPI. Ce pilote ne devrait et ne peut être déchargé car le bus système l'utilise pour différentes intéraction avec le matériel. L'ACPI peut être déactivé - avec l'utilitaire &man.acpiconf.8;. En fait la plupart des - interactions avec ACPI peuvent être - effectuées via &man.acpiconf.8;. A la base cela signifie - que si quelque chose en rapport avec l'ACPI - apparaît dans la sortie de &man.dmesg.8;, alors c'est - déjà en fonctionnement. + en ajoutant hint.acpi.0.disabled="1" dans + le fichier /boot/loader.conf ou + directement à l'invite du chargeur (&man.loader.8;). L'ACPI et l'APM ne peuvent coexister et devraient être utilisé séparément. Le dernier chargé s'arrêtera s'il détecte l'autre en fonctionnement. - Dans sa plus simple forme, l'ACPI peut + L'ACPI peut être utilisé pour mettre en veille un système avec &man.acpiconf.8;, les options et 1-5. La plupart des utilisateurs n'auront - besoin que de 1. L'option + besoin que de 1 ou 3 + (système suspendu en RAM). L'option 5 provoquera un arrêt de l'alimentation par logiciel, effet identique à un: &prompt.root; halt -p - D'autres options sont disponibles. Consultez la page de - manuel d'&man.acpiconf.8; pour plus d'informations. + D'autres options sont disponibles via &man.sysctl.8;. + Consultez les pages de manuel &man.acpi.4; et &man.acpiconf.8; + pour plus d'informations. Nate Lawson Ecrit par Peter Schultz Avec la collaboration de Tom Rhodes Utiliser et déboguer l'<acronym>ACPI</acronym> sous &os; + + ACPI + problèmes + + L'ACPI est une nouvelle méthode de recherche des périphériques, de gestion de l'énergie, et fourni un accès standardisé à différents matériels gérés auparavant par le BIOS. Des progrès ont été fait vers un fonctionnement de l'ACPI sur tous les systèmes, mais des bogues dans le bytecode du langage machine ACPI (ACPI Machine LanguageAML), des imperfections dans les sous-systèmes du noyau &os;, et des bogues dans l'interpréteur ACPI-CA d'&intel; continuent d'apparaître. Ce document est destiné à vous permettre d'aider les développeurs du système ACPI sous &os; à identifier la cause originelle des problèmes que vous observez et à déboguer et développer une solution. Merci de lire ce document et nous espérons pouvoir résoudre les problèmes de votre système. Soumettre des informations de débogage Avant de soumettre un problème, assurez-vous d'utiliser la dernière version de votre BIOS, et si elle est disponible, la dernière version du firmware du contrôleur utilisé. Pour ceux désirant soumettre directement un problème, veuillez faire parvenir les informations suivantes à la liste freebsd-acpi@FreeBSD.org: Description du comportement défectueux, en ajoutant le type et le modèle du système et tout ce qui peut causer l'apparition du bogue. Notez également le plus précisément possible quand le bogue a commencé à se manifester s'il est nouveau. La sortie de &man.dmesg.8; après un boot -v, y compris tout message généré lors de la manifestation du bogue. La sortie de &man.dmesg.8; après un boot -v avec l'ACPI désactivé, si cette désactivation corrige le problème. La sortie de sysctl hw.acpi. C'est également un bon moyen de déterminer quelles fonctionnalités sont offertes par votre système. Une URL où peut être trouvé votre code source ACPI (ACPI Source Language—ASL). N'envoyez pas directement l'ASL sur la liste de diffusion, ce fichier peut être très gros. Vous pouvez générer une copie de votre ASL en exécutant la commande suivante: - &prompt.root; acpidump -t -d > name-system.asl + &prompt.root; acpidump -dt > name-system.asl (Remplacez name par votre nom d'utilisateur et system par celui du constructeur/modèle. Par exemple: njl-FooCo6000.asl) La plupart des développeurs lisent la liste &a.current; mais soumettez également les problèmes rencontrés à la liste &a.acpi.name; afin d'être sûr qu'ils seront vus. Soyez patient, nous avons tous un travail à plein temps qui nous attend ailleurs. Si votre bogue n'est pas immédiatement apparent, nous vous demanderons probablement de soumettre un PR par l'intermédiaire de &man.send-pr.1;. Quand vous remplirez un PR, veillez à inclure les mêmes informations que celles précisées précédemment. Cela nous aidera à cerner et à résoudre le problème. N'envoyez pas de PR sans avoir contacté auparavant la liste &a.acpi.name; étant donné que nous utilisons les PRs comme pense-bêtes de problèmes existants, et non pas comme mécanisme de rapport. Il se peut que votre problème puisse avoir déjà été signalé par quelqu'un d'autre. Information de fond + + ACPI + + L'ACPI est présent sur tous les ordinateurs modernes compatibles avec l'une des architectures ia32 (x86), ia64 (Itanium), et amd64 (AMD). La norme complète définit des fonctionnalités comme la gestion des performances du CPU, des contrôles des niveaux d'énergie, des zones de températures, divers systèmes d'utilisation des batteries, des contrôleurs intégrés, et l'énumération du bus. La plupart des systèmes n'implémentent pas l'intégralité des fonctionnalités de la norme. Par exemple, un ordinateur de bureau n'implémentera généralement que la partie énumération de bus alors qu'un ordinateur portable aura également le support de la gestion du refroidissement et de la batterie. Les ordinateurs portables disposent également des modes de mise en veille et de réveil, avec toute la complexité qui en découle. Un système compatible ACPI dispose de divers composants. Les fabricants de BIOS et de circuits fournissent des tables de description (FADT) fixes en mémoire qui définissent des choses comme la table APIC (utilisée par les systèmes SMP), les registres de configuration, et des valeurs de configuration simples. De plus, est fournie une table de bytecode (la table différenciée de description du systèmeDifferentiated System Description Table DSDT) qui spécifie sous forme d'une arborescence l'espace des noms des périphériques et des méthodes. Le pilote ACPI doit analyser les tables, implémenter un interpréteur pour le bytecode, et modifier les pilotes de périphériques et le noyau pour qu'ils acceptent des informations en provenance du sous-système ACPI. Pour &os;, &intel; fourni un interpréteur (ACPI-CA) qui est partagé avec Linux et NetBSD. L'emplacement du code source de l'interpréteur ACPI-CA est src/sys/contrib/dev/acpica. Le code glu permettant à ACPI-CA de fonctionner sous &os; se trouve dans src/sys/dev/acpica/Osd. Et enfin, les pilotes qui gèrent les différents périphériques ACPI se trouvent dans src/sys/dev/acpica. Problèmes courants + + ACPI + problèmes + + Pour un fonctionnement correct de l'ACPI, il faut que toutes les parties fonctionnent correctement. Voici quelques problèmes courants, par ordre de fréquence d'apparition, et quelques contournements ou corrections possibles. + + Problèmes avec la souris + + Dans certains cas le réveil après une mise + en veille sera à l'origine d'un dysfonctionnement de + la souris. Une solution connue est d'ajouter la ligne + hint.psm.0.flags="0x3000" au fichier + /boot/loader.conf. Si cela ne + fonctionne pas, pensez à envoyer un rapport de bogue + comme décrit plus haut. + + Mise en veille/réveil L'ACPI dispose de trois modes de mise en veille en RAM (STR—Suspend To RAM), S1 à S3, et un mode de mise en veille vers le disque dur (STD—Suspend To Disk), appelé S4. Le mode S5 est un arrêt soft et est le mode dans lequel se trouve votre système quand il est branché mais pas allumé. Le mode S4 peut être implémenté de deux manières différentes. Le mode S4BIOS est une mise en veille vers le disque assistée par le BIOS. Le mode S4OS est implémenté intégralement par le système d'exploitation. Commencez par examiner la sortie de sysctl hw.acpi à la recherche d'éléments concernant les modes de mise en veille. Voici les résultats pour un Thinkpad: hw.acpi.supported_sleep_state: S3 S4 S5 hw.acpi.s4bios: 0 Cela signifie que nous pouvons utiliser acpiconf -s pour tester les modes S3, S4OS, et S5. Si était égal à 1, nous disposerions d'un support S4BIOS à la place de S4OS. Quand vous testez la mise en veille et le réveil, commencez avec le mode S1, pour voir s'il est supporté. Ce mode doit fonctionner dans la plupart des cas puisqu'il nécessite peu de support. Le mode S2 n'est pas implémenté, mais si vous en disposez, il est similaire au mode S1. La chose suivante à essayer est le mode S3. C'est le mode STR le plus avancé et il nécessite un support du pilote important pour réinitialiser correctement votre matériel. Si vous avez des problèmes au réveil de la machine, n'hésitez pas à contacter la liste &a.acpi.name; mais ne vous attendez pas à ce que le problème soit résolu puisqu'il y a de nombreux pilotes/matériels qui nécessitent plus de tests et de développement. Pour isoler le problème, retirez du noyau tous les pilotes de périphériques possibles. Si cela fonctionne, vous pouvez alors identifier le pilote fautif en chargeant les pilotes un à un jusqu'à l'apparition du problème. Généralement les pilotes binaires comme nvidia.ko, les pilotes d'affichage X11, ou les pilotes USB seront victimes de la plupart des problèmes tandis que ceux concernant les interfaces Ethernet fonctionneront normalement. Si vous pouvez charger/décharger les pilotes de périphériques correctement, vous pouvez automatiser cela en ajoutant les commandes appropriées dans les fichiers /etc/rc.suspend et /etc/rc.resume. Il y a un exemple en commentaire pour décharger ou charger un pilote. Essayez de fixer à zéro (0) si votre affichage est corrompu après un réveil de la machine. Essayez des valeurs plus grandes ou plus faibles pour pour voir si cela aide. Une autre méthode est d'essayer de charger une distribution Linux récente avec le support ACPI et tester la mise en veille et le réveil sur le même matériel. Si cela fonctionne sous Linux, c'est probablement donc un problème de pilotes &os; et déterminer quel pilote est responsable des disfonctionnements nous aidera à corriger le problème. Notez que les personnes qui maintiennent l'ACPI sous &os; ne s'occupe pas généralement des autres pilotes de périphériques (comme le son, le système ATA, etc.), aussi tout rapport concernant un problème de pilote devrait probablement en fin de compte être posté sur la liste &a.current.name; et communiqué au responsable du pilote. Si vous vous sentez une âme d'aventurier, commencez à ajouter des &man.printf.3;s de débogage dans un pilote problématique pour déterminer à quel moment dans sa fonction de réveil il se bloque. Enfin, essayez de désactiver l'ACPI et d'activer l'APM à la place, pour voir si la mise en veille et le réveil fonctionnent avec l'APM, tout particulièrement dans le cas de matériel ancien (antérieur à 2000). Cela prend du temps aux constructeurs de mettre en place le support ACPI et le matériel ancien aura sûrement des problèmes de BIOS avec l'ACPI. Blocages du système (temporaires ou permanents) La plupart des blocages système sont le résultat d'une perte d'interruptions ou d'une tempête d'interruptions. Les circuits ont beaucoup de problèmes en fonction de la manière dont le BIOS configure les interruptions avant le démarrage, l'exactitude de la table APIC (MADT), et le routage du System Control Interrupt (SCI). + + tempêtes d'interruptions + + Les tempêtes d'interruptions peuvent être distinguées des pertes d'interruptions en contrôlant la sortie de la commande vmstat -i en examinant la ligne mentionnant acpi0. Si le compteur s'incrémente plusieurs fois par seconde, vous êtes victime d'une tempête d'interruptions. Si le système semble bloqué, essayez de basculer sous DDB (CTRL ALTESC sous la console) et tapez show interrupts. + + APIC + désactivation + + Votre plus grand espoir quand vous faites face à des problèmes d'interruptions est d'essayer de désactiver le support APIC avec la ligne hint.apic.0.disabled="1" dans le fichier loader.conf. Paniques Les paniques sont relativement rares dans le cas de l'ACPI et sont au sommet des priorités en matière de problèmes à corriger. Le premier point est d'isoler les étapes nécessaires à la reproduction de la panique (si possible) et d'obtenir une trace de débogage. Suivez l'aide sur l'activation de options DDB et la configuration d'une console série (lire la ) ou la configuration d'une partition &man.dump.8;. Vous pouvez obtenir une trace de débogage sous DDB avec la commande tr. Si vous devez recopier à la main la trace de débogage, assurez-vous de relever les cinq dernières lignes et les cinq premières ligne de la trace. Ensuite essayez d'isoler le problème en démarrant avec l'ACPI désactivé. Si cela fonctionne, vous pouvez isoler le sous-système ACPI en utilisant différentes valeurs pour l'option . Consultez la page de manuel &man.acpi.4; pour des exemples. Le système redémarre après une mise en veille ou un arrêt Tout d'abord, essayez de fixer hw.acpi.disable_on_poweroff="0" dans &man.loader.conf.5;. Cela empêche l'ACPI de désactiver divers événements lors du processus d'arrêt. Certains systèmes ont besoin d'avoir cette valeur fixée à 1 (valeur par défaut) pour la même raison. Cela corrige généralement le problème d'un système démarrant spontanément après une mise en veille ou un arrêt. Autres problèmes Si vous rencontrez d'autres problèmes avec l'ACPI (impossible de travailler avec une station d'amarrage, périphériques non détectés, etc.), veuillez envoyer un courrier descriptif à la liste de diffusion; cependant, certains de ces problèmes peuvent être relatifs à des partie incomplètes du sous-système ACPI et qui pourront prendre du temps à être implémentées. Soyez patient et prêt à tester les correctifs que nous pourront éventuellement vous envoyer. <acronym>ASL</acronym>, <command>acpidump</command>, et <acronym>IASL</acronym> + + ACPI + ASL + + Le problème le plus courant est le fait que les constructeurs fournissent des bytecodes erronés (ou plus simplement bogués!). Cela se manifeste généralement sur la console par des messages du noyau du type: ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\ (Node 0xc3f6d160), AE_NOT_FOUND La plupart du temps vous pouvez corriger ces problèmes en mettant à jour votre BIOS avec la dernière version disponible. La majorité des messages sur la console sont innofensifs mais si vous avez d'autres problèmes comme l'état de la batterie qui ne fonctionne pas, ce sont de bonnes raisons pour commencer à jeter un oeil à ces problèmes dans l'AML. Le bytecode, connu sous le nom d'AML, est compilé à partir d'un langage source appelé ASL. L'AML se trouve dans une table appelée DSDT. Pour obtenir une copie de votre ASL, utilisez &man.acpidump.8;. Vous devriez utiliser de paire les options (qui affiche le contenu des tables fixes) et (qui désassemble l'AML en ASL). Consultez la section Soumettre des informations de déboguage pour un exemple de syntaxe. Le tout premier test que vous pouvez effectuer est de recompiler votre ASL à la recherche d'erreurs. Les avertissements peuvent être généralement ignorés mais les erreurs sont des bogues qui normalement empêchent l'ACPI de fonctionner correctement. Pour recompiler votre ASL, utilisez la commande suivante: &prompt.root; iasl your.asl Correction de votre <acronym>ASL</acronym> + + ACPI + ASL + + A long terme, notre objectif est que tout le monde puisse avoir un système ACPI fonctionnant sans aucune intervention de l'utilisateur. Actuellement, nous sommes toujours en train de développer des solutions pour contourner les erreurs courantes faites par les fabricants de BIOS. L'interpréteur de µsoft; (acpi.sys et acpiec.sys) ne contrôle pas de façon stricte la conformité avec la norme, et par conséquent de nombreux fabricants de BIOS qui testent l'ACPI uniquement sous &windows; ne corrigent donc jamais leur ASL. Nous espérons poursuivre à identifier et documenter avec exactitude les comportements non-standards autorisés par l'interpréteur de µsoft; et les reproduire de manière à permettre à &os; de fonctionner sans obliger les utilisateurs à corriger leur ASL. Comme solution et pour nous aider à identifier ces comportements, vous pouvez corriger manuellement votre ASL. Si cela fonctionne pour vous, veuillez nous envoyer un &man.diff.1; de l'ancien et du nouveau ASL de façon à ce que nous puissions corriger le comportement incorrect dans ACPI-CA et rendre donc inutile à l'avenir votre correctif. + + ACPI + messages d'erreur + + Voici une liste des messages d'erreur courants, leur cause, et comment les corriger: Dépendances _OS Certains AMLs supposent que le monde n'est fait de que différentes versions de &windows;. Vous pouvez demander à &os; de s'annoncer comme étant n'importe quel système d'exploitation pour voir si cela corrige les problèmes que vous pouvez rencontrer. Une manière simple de faire cela est de fixer la variable hw.acpi.osname="Windows 2001" dans /boot/loader.conf ou avec une autre chaîne de caractères que vous trouvez dans l'ASL. <errorname>Missing Return statements</errorname> Certaines méthodes ne renvoient pas explicitement une valeur comme la norme le demande. Bien qu'ACPI-CA ne gère pas cela, &os; contourne ce problème en renvoyant implicitement la valeur. Vous pouvez également ajouter des Return statements explicites où cela est nécessaire si vous connaissez la valeur à renvoyer. Pour forcer iasl à compiler l'ASL, utilisez l'option . Remplacer l'<acronym>AML</acronym> par défaut Après avoir personnalisé votre.asl, vous voudrez le compiler, pour cela exécutez: &prompt.root; iasl your.asl Vous pouvez ajouter l'option pour forcer la création de l'AML, même s'il y a des erreurs lors de la compilation. Rappelez-vous que certaines erreurs (e.g., missing Return statements) sont automatiquement contournées par l'interpréteur. DSDT.aml est le fichier de sortie par défaut pour iasl. Vous pouvez le charger à la place de la version boguée de votre BIOS (qui est toujours présent dans la mémoire flash) en éditant le fichier /boot/loader.conf comme suit: acpi_dsdt_load="YES" acpi_dsdt_name="/boot/DSDT.aml" Assurez-vous de bien copier votre fichier DSDT.aml dans le répertoire /boot. Obtenir d'<acronym>ACPI</acronym> une sortie de débogage + + ACPI + problèmes + + + + ACPI + débogage + + Le pilote ACPI dispose d'une fonction de débogage très flexible. Elle vous permet de spécifier un ensemble de sous-systèmes ainsi que le niveau de verbosité. Les sous-systèmes que vous désirez déboguer sont indiqués sous la forme de couches et sont divisés en composants ACPI-CA (ACPI_ALL_COMPONENTS) et en supports matériel ACPI (ACPI_ALL_DRIVERS). La verbosité de la sortie de débogage est spécifiée par un niveau et des intervalles de ACPI_LV_ERROR (rapporte juste les erreurs) à ACPI_LV_VERBOSE (tout). Le niveau est un masque de bits séparés par des espaces, aussi de nombreuses options peuvent être fixées à la fois. Dans la pratique, vous voudrez utiliser un console série pour afficher la sortie si les informations de débogage sont si importantes qu'elles dépassent le tampon des messages de la console. Une liste complète des couches individuelles et des niveaux peut être trouvée dans la page de manuel &man.acpi.4;. L'affichage des informations de débogage n'est pas activé par défaut. Pour l'activer, ajoutez la ligne options ACPI_DEBUG à votre fichier de configuration du noyau si l'ACPI est compilé dans le noyau. Vous pouvez ajouter la ligne ACPI_DEBUG=1 à votre fichier /etc/make.conf pour l'activer de façon globale. Si l'ACPI est sous forme de module, vous pouvez recompiler votre module acpi.ko comme suit: &prompt.root; cd /sys/modules/acpi/acpi && make clean && make ACPI_DEBUG=1 Installez acpi.ko dans le répertoire /boot/kernel et indiquez le niveau et la couche désirée dans loader.conf. L'exemple suivant active les messages de débogage pour tous les composants ACPI-CA et tous les pilotes de matériel ACPI (CPU, LID, etc.). Il n'affichera que les messages d'erreur, c'est le niveau le moins verbeux. debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS" debug.acpi.level="ACPI_LV_ERROR" Si l'information que vous voulez est déclenchée par un événement particulier (disons par exemple une mise en veille suivi d'un réveil), vous pouvez abandonner les modifications dans loader.conf et utiliser à la place sysctl pour indiquer la couche et le niveau après le démarrage et préparer votre système pour cet événement particulier. Les variables sysctl sont appelées de la même manière que dans le fichier loader.conf. Références Plus d'information au sujet de l'ACPI peut être trouvé aux emplacements suivants: La liste de diffusion &a.acpi; Les archives de la liste de diffusion ACPI Les archives de l'ancienne liste de diffusion ACPI La spécification ACPI 2.0 Les pages de manuel: &man.acpi.4;, &man.acpi.thermal.4;, &man.acpidump.8;, &man.iasl.8;, &man.acpidb.8; Ressource sur le débogage de la DSDT. (Utilise un exemple basé sur du matériel Compaq mais qui est en général intéressant.) diff --git a/fr_FR.ISO8859-1/books/handbook/disks/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/disks/chapter.sgml index bdabb8f0e6..5cc8e13128 100755 --- a/fr_FR.ISO8859-1/books/handbook/disks/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/disks/chapter.sgml @@ -1,4564 +1,4869 @@ Stockage des données &trans.a.fonvieille; Synopsis Ce chapitre couvre l'utilisation des disques sous FreeBSD. Cela comprend les disques mémoire, les disques réseau, les périphériques standards de stockage SCSI/IDE, et les périphériques utilisant l'interface USB. Après la lecture de ce chapitre, vous connaîtrez: La terminologie qu'utilise FreeBSD pour décrire l'organisation des données sur un disque physique (les partitions et les tranches). Comment ajouter des disques durs supplémentaires sur votre système. Comment configurer &os; pour l'utilisation de périphériques de stockage USB. Comment configurer des systèmes de fichiers virtuels, comme les disques mémoires. Comment utiliser les quotas pour limiter l'usage de l'espace disque. Comment chiffrer des disques pour les sécuriser contre les attaques. Comment créer et graver des CDs et DVDs sous FreeBSD. Les différents supports disponibles pour les sauvegardes. Comment utiliser les programmes de sauvegarde disponibles sous FreeBSD. Comment faire des sauvegardes sur disquettes. - Ce que sont les “snapshots” et comment - les utiliser efficacement. + Ce que sont les snapshots + (instantanés) de systèmes de fichiers et + comment les utiliser efficacement. Avant de lire ce chapitre, vous devrez: Savoir comment configurer et installer un nouveau noyau &os; (). Noms des périphériques Ce qui suit est une liste des périphériques de stockage physiques, et des noms de périphériques associés. Conventions de nom pour les disques physiques Type de disque Nom du périphérique Disques durs IDE ad Lecteurs de CDROMs IDE acd Disques durs SCSI et périphériques de stockage USB da Lecteurs de CDROMs SCSI cd - Lecteurs de CDROMs non-standard divers mcd pour les CD-ROMs Mitsumi, - scd pour les CD-ROMs Sony, - matcd pour les CD-ROMs - Matsushita/Panasonic - - Le pilote de périphérique - &man.matcd.4; a été retiré - dans la branche FreeBSD 4.X depuis le 5 - Octobre 2002 et n'existe pas sous les versions - &os; 5.0 et suivantes. - + scd pour les CD-ROMs Sony Lecteurs de disquette fd Lecteurs de bande SCSI sa Lecteurs de bande IDE ast Disques flash fla pour les périphériques Flash &diskonchip; Disques RAID aacd pour l'AdvancedRAID &adaptec;, mlxd et mlyd pour les &mylex;, amrd le &megaraid; d'AMI, idad pour le Smart RAID de Compaq, twed pour le &tm.3ware; RAID.
David O'Brien Contribution originale de Ajouter des disques disques ajout Supposons que nous voulions ajouter un second disque SCSI à une machine qui n'a pour l'instant qu'un seul disque. Commençons par arrêter l'ordinateur et installer le disque en suivant les instructions données par le constructeur de l'ordinateur, du contrôleur et du disque. Comme il y a de nombreuses façon de procéder, ces détails dépassent le cadre de ce document. Ouvrons maintenant une session sous le compte root. Après avoir installé le disque, consultez le fichier /var/run/dmesg.boot pour vérifier que le nouveau disque a été reconnu. Dans notre exemple, le disque que nous venons d'ajouter sera le périphérique da1 et nous le monterons sur le répertoire /1 (si vous ajoutez un disque IDE, le nom de périphérique sera - wd1 sur un système pre-4.0 ou - ad1 sur les systèmes 4.X et - 5.X). + ad1). partitions tranches fdisk &os; tourne sur des ordinateurs compatibles IBM-PC, il doit tenir compte des partitions PC BIOS. Ces dernières sont différentes des partitions BSD traditionnelles. Un disque PC peut avoir jusqu'à quatre partitions. Si le disque va être réservé uniquement à FreeBSD, vous pouvez utiliser le mode dédié. Sinon, FreeBSD devra utiliser une des partitions PC BIOS. FreeBSD appelle les partitions PC BIOS tranches (“slices”) pour les distinguer des partitions BSD traditionnelles. Vous pouvez aussi des tranches sur un disque dédié à FreeBSD, mais utilisé sur une machine où un autre système d'exploitation est également installé. C'est une bonne manière pour éviter de perturber l'utilitaire fdisk des autres système d'exploitation différents de &os;. Dans le cas d'une tranche, le disque ajouté deviendra le périphérique /dev/da1s1e. Ce qui se lit: disque SCSI, numéro d'unité 1 (second disque SCSI), tranche 1 (partition PC BIOS 1), et partition BSD e. Dans le cas du mode dédié, le disque sera ajouté en tant que /dev/da1e. En raison de l'utilisation d'entiers codés sur 32 bits pour stocker le nombre de secteurs, &man.bsdlabel.8; - (appelé &man.disklabel.8; sous &os; 4.X) est + est limité à 2^32-1 secteurs par disque ou 2TB dans la plupart des cas. Le format &man.fdisk.8; n'autorise pas de secteur au delà de 2^32-1 et une largeur de plus de 2^32-1, limitant donc les partitions à 2TB et les disques à 4TB en général. Le format &man.sunlabel.8; est limité à 2^32-1 secteur par partition et 8 partitions pour un total de 16TB d'espace. Pour des disques plus importants, les partitions &man.gpt.8; peuvent être utilisées. Utiliser &man.sysinstall.8; sysinstall ajout de disque su Naviguer dans <application>sysinstall</application> Vous pouvez utiliser sysinstall - (/stand/sysinstall sous les versions de - &os; antérieures à la 5.2) et ses menus simples d'emploi pour partitionner et libeller le nouveau disque. Ouvrez une session sous le compte super-utilisateur root ou utilisez la commande &man.su.1;. Lancez sysinstall et sélectionnez Configure. A l'intérieur du menu FreeBSD Configuration Menu, descendez et sélectionnez l'option Fdisk. L'éditeur de partition <application>fdisk</application> Une fois dans l'utilitaire fdisk, nous pouvons taper A pour utiliser tout le disque pour FreeBSD. Lorsque l'on vous demande si vous voulez garder la possibilité de pouvoir coopérer avec d'autres systèmes d'exploitation (“remain cooperative with any future possible operating systems”), répondez par l'affirmative (YES). Enregistrez les modifications sur le disque avec W. Quittez maintenant l'éditeur fdisk en tapant q. La prochaine question concernera le secteur de démarrage (“Master Boot Record”). Comme vous ajoutez un disque à un système déjà opérationnel, choisissez None. L'éditeur de label du disque partitions BSD Ensuite, vous devez quitter puis relancer sysinstall. Suivez les instructions précédentes, en choisissant cette fois l'option Label. Vous entrerez dans l'éditeur de label du disque (Disk Label Editor). C'est là que vous allez créer les partitions BSD traditionnelles. Un disque peut avoir jusqu'à huit partitions, libellées de a à h. Certains de ces labels ont des significations particulières. La partition a est la partition racine (/). Seul votre disque système (e.g., celui à partir duquel vous démarrez) doit avoir une partition a. La partition b est utilisée pour la pagination, vous pouvez avoir plusieurs disques avec des partitions de pagination. La partition c désigne la totalité du disque en mode dédié, ou toute la tranche FreeBSD dans le cas contraire. Les autres partitions sont à usage général. L'éditeur de label de sysinstall définit par défaut la partition e comme première partition qui n'est ni racine, ni de pagination. Dans l'éditeur de label, créez un seul système de fichiers avec l'option C. Quand on vous demande si ce sera un système de fichiers (FS) ou une partition de pagination, choisissez FS et indiquez un point de montage (e.g., /mnt). Lorsque vous ajoutez un disque sur un système déjà installé, sysinstall ne créera pas d'entrées dans /etc/fstab, donc le nom que vous donnez au point de montage n'a pas d'importance. Vous pouvez maintenant écrire le nouveau label sur le disque et y créer un système de fichiers. Faites-le en tapant W. Ignorez les erreurs de sysinstall disant que la nouvelle partition ne peut être montée. Quittez maintenant l'éditeur de label et sysinstall. Dernière étape La dernière étape consiste à éditer le fichier /etc/fstab pour y ajouter une entrée pour votre nouveau disque. Utiliser les utilitaires en ligne de commande Utiliser les tranches — “slices” Cette configuration permettra de faire fonctionner correctement votre disque dure avec d'autres systèmes d'exploitation qui pourraient être installé sur votre machine, et ne perturbera pas les utilitaires fdisk de ces autres systèmes d'exploitation. C'est la méthode recommandée pour l'installation de nouveau disques. N'utilisez le mode dédié que si vous avez une bonne raison de le faire! &prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1 &prompt.root; fdisk -BI da1 #Initialize your new disk -&prompt.root; disklabel -B -w -r da1s1 auto #Label it. -&prompt.root; disklabel -e da1s1 # Edit the disklabel just created and add any partitions. +&prompt.root; bsdlabel -B -w da1s1 auto #Label it. +&prompt.root; bsdlabel -e da1s1 # Edit the disklabel just created and add any partitions. &prompt.root; mkdir -p /1 &prompt.root; newfs /dev/da1s1e # Repeat this for every partition you created. &prompt.root; mount /dev/da1s1e /1 # Mount the partition(s) &prompt.root; vi /etc/fstab # Add the appropriate entry/entries to your /etc/fstab. Si vous avez un disque IDE, remplacez da - par ad. Sur les systèmes pre-4.X - utilisez wd. + par ad. Mode dédié OS/2 Si le nouveau disque n'est pas destiné a être partagé avec un autre système d'exploitation, vous pouvez utiliser le mode dédié. Rappelez-vous que ce mode peut perturber les systèmes d'exploitation Microsoft; cependant, ils ne toucheront pas au disque. &os2; d'IBM, au contraire, “s'approprie” toute partition qu'il trouve et ne reconnaît pas. &prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1 -&prompt.root; disklabel -Brw da1 auto -&prompt.root; disklabel -e da1 # create the `e' partition +&prompt.root; bsdlabel -Bw da1 auto +&prompt.root; bsdlabel -e da1 # create the `e' partition &prompt.root; newfs -d0 /dev/da1e &prompt.root; mkdir -p /1 &prompt.root; vi /etc/fstab # add an entry for /dev/da1e &prompt.root; mount /1 Un autre méthode est: &prompt.root; dd if=/dev/zero of=/dev/da1 count=2 -&prompt.root; disklabel /dev/da1 | disklabel -BrR da1 /dev/stdin +&prompt.root; bsdlabel /dev/da1 | bsdlabel -BR da1 /dev/stdin &prompt.root; newfs /dev/da1e &prompt.root; mkdir -p /1 &prompt.root; vi /etc/fstab # add an entry for /dev/da1e &prompt.root; mount /1 - - Depuis la version &os; 5.1-RELEASE, - l'utilitaire &man.bsdlabel.8; remplace l'ancien programme - &man.disklabel.8;. Avec &man.bsdlabel.8; de nombreuses - options et paramètres obsolètes ont - été retirés; dans les exemples ci-dessus, - l'option doit être enlevée. - Pour plus d'information, consultez la page de manuel - &man.bsdlabel.8;. RAID RAID logiciel Christopher Shumway Travail original de Jim Brown Révisé par RAIDLogiciel RAIDCCD Configuration du pilote de disque concaténé (CCD — “Concatenated Disk Driver”) Quand il est question du choix d'une solution de stockage de masse les critères de choix les plus importants à considérer sont la vitesse, la fiabilité, et le coût. Il est plutôt rare de pouvoir réunir ces trois critères; normalement un périphérique de stockage rapide et fiable est coûteux, et pour diminuer les coûts la vitesse ou la fiabilité doivent être sacrifiées. A la conception du système décrit plus bas, le coût a été choisi comme facteur le plus important, suivi de la vitesse, et enfin la fiabilité. La vitesse de transfert des données est limitée par le réseau. Et tandis que la fiabilité est très importante, le disque CCD décrit ci-dessous est destiné au stockage de données en ligne qui sont déjà complètement sauvegardées sur CD-Rs et qui peuvent être facilement remplacées. Définir vos propres besoins est la première étape dans le choix d'une solution de stockage de masse. Si vos critères de choix privilégient la vitesse ou la fiabilité par rapport au coût, votre solution diférera du système décrit dans cette section. Installation du matériel En plus du disque système IDE, trois disques Western Digital de 30Go, 5400 trs/min IDE forment le coeur du disque CCD décrit ci-dessous donnant approximativement 90Go de stockage en ligne. La solution idéale serait d'avoir pour chaque disque IDE son propre câble et contrôleur IDE, mais pour minimiser les coûts, des contrôleur IDE supplémentaires n'ont pas été utilisés. Aussi, les disques ont été configuré de telle façon que chaque contrôleur IDE ait un disque maître et un disque esclave. Au redémarrage, le BIOS a été configuré pour détecter automatiquement les disques attachés. FreeBSD les a d'ailleurs détectés au redémarrage: ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33 ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33 ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33 ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33 Si FreeBSD ne détecte pas les disques, assurez-vous que vous avez correctement placé les cavaliers. La plupart des disques IDE disposent également d'un cavalier “Cable Select”. Ce n'est pas le cavalier de configuration maître/esclave. Consultez la documentation du disque pour identifier le cavalier correct. Ensuite, réfléchissez sur la manière de les intégrer au système de fichiers. Vous devriez faire des recherches sur &man.vinum.8; () et &man.ccd.4;. Dans cette configuration particulière, &man.ccd.4; a été choisi. Configuration du CCD Le pilote &man.ccd.4; vous permet de prendre plusieurs disques identiques et les concaténer en un seul système de fichiers logique. Afin d'utiliser &man.ccd.4;, vous avez besoin d'un noyau avec le support &man.ccd.4;. Ajoutez la ligne suivante à votre fichier de configuration de noyau, recompilez, et installez le noyau: - pseudo-device ccd 4 - - Sur les systèmes 5.X, vous devez utiliser la ligne - suivante à la place: - device ccd - Sous FreeBSD 5.0, il n'est pas nécessaire - de préciser le nombre de périphériques ccd, - étant donné que le pilote de - périphérique ccd est désormais - auto-duplicable — les nouveaux - périphériques seront automatiquement - créés à la demande. - - Le support ccd peut + Le support &man.ccd.4; peut également chargé sous la forme d'un module - noyau sous FreeBSD 4.0 et suivantes. + noyau. - Pour configurer ccd, - vous devez tout d'abord utiliser &man.disklabel.8; + Pour configurer &man.ccd.4;, + vous devez tout d'abord utiliser &man.bsdlabel.8; pour labéliser les disques: - disklabel -r -w ad1 auto -disklabel -r -w ad2 auto -disklabel -r -w ad3 auto + bsdlabel -w ad1 auto +bsdlabel -w ad2 auto +bsdlabel -w ad3 auto Cela a créé un label de disque ad1c, ad2c et ad3c qui s'étend sur l'intégralité du disque. - Depuis la version &os; 5.1-RELEASE, - l'utilitaire &man.bsdlabel.8; remplace l'ancien programme - &man.disklabel.8;. Avec &man.bsdlabel.8; de nombreuses - options et paramètres obsolètes ont - été retirés; dans les exemples ci-dessus, - l'option doit être enlevée. - Pour plus d'information, consultez la page de manuel - &man.bsdlabel.8;. - L'étape suivante est de modifier le type de label de - disque. Vous pouvez utiliser &man.disklabel.8; pour + disque. Vous pouvez utiliser &man.bsdlabel.8; pour éditer les disques: - disklabel -e ad1 -disklabel -e ad2 -disklabel -e ad3 + bsdlabel -e ad1 +bsdlabel -e ad2 +bsdlabel -e ad3 Cela ouvre le label de disque actuel de chaque disque dans l'éditeur fixé par la variable d'environnement EDITOR, généralement, &man.vi.1;. Un label de disque non modifié ressemblera à quelque chose comme ceci: 8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) Ajoutez une nouvelle partition e pour être utilisé par &man.ccd.4;. Cela peut être une copie de la partition c mais le type de système de fichiers () doit être 4.2BSD. Le label de disque devait ressembler à: 8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597) Création du système de fichiers - Le fichier spécial de périphérique - pour ccd0c peut ne pas - exister encore, aussi pour le créer, lancez les - commandes suivantes: - - cd /dev -sh MAKEDEV ccd0 - - Sous FreeBSD 5.0, &man.devfs.5; gérera - automatiquement les fichiers spéciaux de - périphérique dans /dev, - aussi l'utilisation de MAKEDEV - n'est pas nécessaire. - Maintenant que tous les disques sont labélisés, vous devez construire le &man.ccd.4;. Pour cela, utilisez &man.ccdconfig.8;, avec des options semblables à ce qui suit: ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e L'utilisation et la signification de chaque option est données ci-dessous: Le premier argument est le périphérique à configurer, dans ce cas, /dev/ccd0c. La partie /dev/ est optionnelle. L'entrelacement (“interleave”) du système de fichiers. L'entrelacement définit la taille d'une bande de blocs disque, de 512 octets chacune normalement. Donc un entrelacement de 32 serait d'une largeur de 16384 octets. Paramètres pour &man.ccdconfig.8;. Si vous désirez activer les miroirs disque, vous pouvez spécifier un indicateur à cet endroit. Cette configuration ne fournit pas de miroir pour &man.ccd.4;, aussi l'indicateur est a 0 (zéro). Les derniers arguments de &man.ccdconfig.8; sont les périphériques à placer dans le disque concaténé. Utilisez le chemin complet pour chaque périphérique. Après avoir utilisé &man.ccdconfig.8; le &man.ccd.4; est configuré. Un système de fichiers peut être créé. Consultez la page de manuel de &man.newfs.8; pour les options disponibles, ou lancez simplement: newfs /dev/ccd0c Automatiser la procédure Généralement, vous voudrez monter le &man.ccd.4; à chaque redémarrage. Pour cela, vous devez le configurer avant toute chose. Ecrivez votre configuration actuelle dans /etc/ccd.conf en utilisant la commande suivante: ccdconfig -g > /etc/ccd.conf Lors du démarrage, la procédure /etc/rc exécute ccdconfig -C si /etc/ccd.conf existe. Cela configure automatiquement le &man.ccd.4; de façon à pouvoir être monté. Si vous démarrez en mode mono-utilisateur, avant que vous ne puissiez monter le &man.ccd.4;, vous devez utiliser la commande suivante pour configurer l'unité: ccdconfig -C Pour monter automatiquement le &man.ccd.4; placez une entrées pour le &man.ccd.4; dans /etc/fstab, il sera ainsi monté au démarrage: /dev/ccd0c /media ufs rw 2 2 Le gestionnaire de volume Vinum RAIDLogiciel RAID Vinum Le gestionnaire de volume Vinum est un pilote de périphérique de gestion de disques virtuels. Il sépare le disque matériel de l'interface de périphérique bloc et organise les données de telle façon qu'il en résulte une amélioration de la flexibilité, des performances et de la fiabilité, comparé à la vision traditionnelle sous forme partitionnée du stockage disque. &man.vinum.8; implémente les modèles RAID-0, RAID-1 et RAID-5, individuellement ou combinés. Voir le pour plus d'information au sujet de &man.vinum.8;. RAID Matériel RAID Matériel FreeBSD supporte également de nombreux contrôleurs RAID. Ces périphériques peuvent contrôler un système RAID sans nécessiter l'utilisation d'un logiciel spécifique pour &os; pour gérer l'unité. En utilisant son propre BIOS, la carte contrôle la plupart des opérations disque. Ce qui suit est une description rapide d'une configuration utilisant un contrôleur Promise IDE RAID. Quand cette carte est installée et le système redémarré, une invite s'affichera posant quelques questions. Suivez les instructions à l'écran pour atteindre l'écran de configuration de la carte. A partir de là, vous avez la possibilité de combiner tous les disques attachés. En faisant cela, les disques apparaîtront sous la forme d'un unique disque sous FreeBSD. D'autres niveaux RAID peuvent être configurés en conséquence. Reconstruire une unité ATA RAID1 FreeBSD vous permet de remplacer à chaud un disque défectueux dans une unité. Cela doit être fait avant redémarrage. Vous verrez probablement dans /var/log/messages ou dans la sortie de &man.dmesg.8; quelque chose comme: ad6 on monster1 suffered a hard error. ad6: READ command timeout tag=0 serv=0 - resetting ad6: trying fallback to PIO mode ata3: resetting devices .. done ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11) status=59 error=40 ar0: WARNING - mirror lost En utilisant &man.atacontrol.8;, recherchez de plus amples informations: &prompt.root; atacontrol list ATA channel 0: Master: no device present Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0 ATA channel 1: Master: no device present Slave: no device present ATA channel 2: Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present ATA channel 3: Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present &prompt.root; atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED - Vous devrez détacher le disque de l'unité - de façon à pouvoir le retirer sans risque: + Vous devrez détacher le canal ATA avec le + disque défectueux de façon à pouvoir + le retirer sans risque: - &prompt.root; atacontrol detach 3 + &prompt.root; atacontrol detach ata3 Remplacer le disque. - Rattacher le disque de rechange: + Rattacher le canal ATA: - &prompt.root; atacontrol attach 3 + &prompt.root; atacontrol attach ata3 Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present + + Rajouter le disque de rechange à + l'unité: + + &prompt.root; atacontrol addspare ar0 ad6 + + Recontruire l'unité: &prompt.root; atacontrol rebuild ar0 - La commande de reconstruction se bloque jusqu'à - accomplissement. Cependant, il est possible d'ouvrir - un autre terminal (en utilisant AltFn) - et contrôler l'avancée de la - procédure en utilisant la commande suivante: + Il est possible de contrôler l'avancée de + la procédure en utilisant la commande + suivante: &prompt.root; dmesg | tail -10 [output removed] ad6: removed from configuration ad6: deleted from ar0 disk1 ad6: inserted into ar0 disk1 as spare &prompt.root; atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed Attendre jusqu'à la fin de cette opération. Marc Fonvieille Contribution de Périphériques de stockage USB USB disques De nombreuses solutions de stockage externes utilisent, de nos jours, le bus série universel (“Universal Serial Bus”—USB): disques durs, clés USB, graveurs de CDs, etc. &os; fournit un support pour ces périphériques. Configuration Le pilote de périphériques USB de stockage de masse, &man.umass.4;, fournit le support pour les périphériques de stockage USB. Si vous utilisez le noyau GENERIC, vous n'avez rien à modifier à votre configuration. Si vous utilisez un noyau personnalisé, assurez-vous que les lignes suivantes sont présentent dans votre fichier de configuration du noyau: device scbus device da device pass device uhci device ohci device usb device umass Le pilote &man.umass.4; utilise le sous-système SCSI pour accéder aux périphériques de stockage USB, votre périphérique USB sera vu par le système comme étant un périphérique SCSI. En fonction du contrôleur USB présent sur votre carte mère, vous n'avez besoin qu'une des lignes device uhci et device ohci, cependant avoir les deux lignes dans votre configuration du noyau est sans danger. N'oubliez pas de compiler et d'installer le nouveau noyau si vous y avez effectué des modifications. Si votre périphérique USB est un graveur de CD ou de DVD, le pilote de périphérique SCSI CD-ROM, &man.cd.4;, doit être ajouté au noyau via la ligne: device cd Puisque le graveur est vu comme un disque SCSI, le pilote &man.atapicam.4; ne devrait pas être employé dans la configuration du noyau. Le support pour les contrôleurs USB 2.0 est fourni - avec &os; 5.X, avec la branche 4.X depuis la version - &os; 4.10-RELEASE. Vous devez ajouter: + avec &os; vous devez cependant ajouter: device ehci à votre fichier de configuration pour bénéficier du support USB 2.0. Notez que les pilotes &man.uhci.4; et &man.ohci.4; sont toujours nécessaires si vous désirez le support de l'USB 1.X. - - - Sous &os; 4.X, le “daemon” USB - (&man.usbd.8;) doit tourner pour être en mesure de voir - certains périphériques USB. Pour l'activer, - ajouter usbd_enable="YES" à votre - fichier /etc/rc.conf et redémarrez - la machine. - Test de la configuration La configuration est prête à être testée: branchez votre périphérique USB, et dans le tampon des messages du système (&man.dmesg.8;), le disque devrait apparaître de cette manière: umass0: USB Solid state disk, rev 1.10/1.00, addr 2 GEOM: create disk da0 dp=0xc2d74850 da0 at umass-sim0 bus 0 target 0 lun 0 da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device da0: 1.000MB/s transfers da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C) Bien évidement, le modèle, le fichier spécial de périphérique (da0) et d'autres détails peuvent être différents en fonction de votre configuration. Comme le périphérique USB est vu comme étant un périphérique SCSI, la commande camcontrol peut être employée pour lister les périphériques de stockage USB attachés au système: &prompt.root; camcontrol devlist <Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0) Si le disque dispose d'un système de fichiers, vous devriez pouvoir le monter. La vous aidera à formater et créer des partitions sur le disque USB si nécessaire. + Pour rendre ce périphérique montable par un + utilisateur normal, un certain nombre de paramétrages + sont nécessaires. Tout d'abord, les entrées de + périphériques qui sont créées lors + de la connexion d'un périphérique USB doivent + être accessibles à l'utilisateur. Une solution + est de faire en sorte que tous les utilisateurs de ces + périphériques soient membres du groupe + operator. Cela se fait à l'aide + de &man.pw.8;. Ensuite, quand ces entrées de + périphériques sont créées, le + groupe operator doit pouvoir y + accéder en lecture et en écriture. Pour cela, + les lignes suivantes sont ajoutées à + /etc/devfs.rules: + + [localrules=1] +add path 'da*' mode 0660 group operator + + + S'il y a déjà des disques SCSI dans le + système, on doit procéder + légèrement différemment. Par exemple, + si le système contient déjà des disques + da0 à + da2 attachés au + système, changez la seconde ligne pour: + + add path 'da[3-9]*' mode 0660 group operator + + Les disques déjà présents + n'appartiendront pas au groupe + operator. + + + Vous devez également activer votre ensemble de + règles &man.devfs.rules.5; dans votre fichier + /etc/rc.conf: + + devfs_system_ruleset="localrules" + + Le noyau doit être ensuite configuré pour + autoriser les utilisateurs habituels à monter des + systèmes de fichiers. La méthode la plus simple + est d'ajouter la ligne suivante au fichier + /etc/sysctl.conf: + + vfs.usermount=1 + + Notez que ce paramétrage ne prendra effet qu'au + prochain redémarrage. Il est également possible + d'utiliser &man.sysctl.8; pour fixer cette variable. + + La dernière étape est de créer un + répertoire où le système de fichiers sera + monté. Ce répertoire doit appartenir à + l'utilisateur qui montera le système de fichiers. Une + méthode adaptée et la création par + root d'un sous-répertoire + /mnt/$USER + appartenant à l'utilisateur en question (remplacez + $USER par le nom d'utilisateur de + cet utilisateur): + + &prompt.root; mkdir /mnt/$USER +&prompt.root; chown $USER:$USER /mnt/$USER + + Supposez qu'une clé USB soit branchée et + qu'un périphérique + /dev/da0s1 apparaît. Comme ce type + de périphériques est en général + livré préformaté avec un système + de fichiers de type FAT, on pourra le monter de cette + manière: + + &prompt.user; mount -t msdosfs -m 644 -M 755 /dev/da0s1 /mnt/$USER + Si vous débranchez le périphérique (le disque doit être démonté auparavant), vous devriez voir dans les messages du système quelque chose comme: umass0: at uhub0 port 1 (addr 2) disconnected (da0:umass-sim0:0:0:0): lost device (da0:umass-sim0:0:0:0): removing device entry GEOM: destroy disk da0 dp=0xc2d74850 umass0: detached Lectures supplémentaires En plus des sections Ajouter des disques et Monter et démonter des systèmes de fichiers, la lecture de différentes pages de manuel peut être également utile: &man.umass.4;, &man.camcontrol.8;, et &man.usbdevs.8;. Mike Meyer Contribution de Création et utilisation de supports optiques (CDs) CDROMs création Introduction Les CDs se différencient des disques conventionnels par de nombreuses caractéristiques. Au départ, ils n'étaient pas inscriptible par l'utilisateur. Ils sont conçu pour être lut de façon continue sans délai pour déplacer la tête de lecture entre les pistes. Ils sont également plus facile à déplacer entre systèmes que les supports de même taille à cette époque. Les CDs possèdent des pistes, mais cela fait référence à un ensemble de données qui peuvent être lues de façon continue et non pas à une particularité physique du disque. Pour produire un CD sous FreeBSD, il faut préparer les fichiers de données qui vont constituer les pistes sur le CD, puis écrire les pistes sur le CD. ISO 9660 systèmes de fichiers ISO 9660 Le système de fichiers ISO 9660 a été conçu pour gérer ces différences. Malheureusement il incorpore des limites du système de fichiers qui semblaient normale alors. Mais heureusement, il fournit un mécanisme d'extension qui permet au CDs proprement gravés de passer outre ces limites tout en restant lisibles par les systèmes qui ne supportent pas ces extensions. sysutils/cdrtools Le logiciel sysutils/cdrtools comprend &man.mkisofs.8;, un programme que vous pouvez utiliser pour produire un fichier de données contenant un système de fichiers ISO 9660. Il dispose d'options pour le support de diverses extensions, et est décrit ci-dessous. graveur de CD ATAPI L'outil a utiliser pour graver un CD varie en fonction du type de graveur de CD: ATAPI ou autre. Les graveurs ATAPI utilisent le programme burncd qui fait partie du système de base. Les graveurs SCSI ou USB devraient utiliser l'utilitaire cdrecord du logiciel porté - sysutils/cdrtools port. - - burncd supporte un nombre limité - de graveurs. Pour déterminer si un graveur est supporté, - voir la liste des graveurs - CD-R/RW supportés. - - - - graveur de CD - pilote ATAPI/CAM - - Si vous utilisez &os; 5.X, &os; 4.8-RELEASE ou - une version suivante, il sera possible d'utiliser + sysutils/cdrtools port. + Il est également possible d'utiliser cdrecord et d'autres outils pour lecteurs SCSI sur du matériel ATAPI avec le module ATAPI/CAM. - Si vous voulez un programme de gravure de CD avec une interface graphique, vous devriez jeter un oeil à X-CD-Roast ou K3b. Ces outils sont disponibles sous une version pré-compilée ou à partir des logiciels portés sysutils/xcdroast et sysutils/k3b. X-CD-Roast et K3b nécessitent le module ATAPI/CAM avec des périphériques ATAPI. mkisofs L'utilitaire &man.mkisofs.8;, qui fait partie du logiciel porté sysutils/cdrtools, produit un système de fichiers ISO 9660 qui est une image de l'arborescence des répertoires dans un système de fichiers &unix;. L'utilisation la plus simple est: &prompt.root; mkisofs -o fichierimage.iso /chemin/vers/arborescence systèmes de fichiers ISO 9660 Cette commande créera un fichierimage.iso contenant un système de fichiers ISO 9660 qui est une copie de l'arborescence /chemin/vers/arborescence. Durant le processus de création, les noms de fichiers seront modifiés de façon à respecter les limitations de la norme ISO 9660, et rejettera les fichiers ayant des noms non acceptables pour un système de fichiers ISO. systèmes de fichiers HFS systèmes de fichiers Joliet De nombreuses options sont disponibles pour passer outre ces restrictions. En particulier, qui autorise les extensions Rock Ridge communes aux systèmes &unix;, qui active les extensions Joliet utilisées par les systèmes Microsoft, et peut être utilisé pour créer des systèmes de fichiers HFS utilisés par &macos;. Pour des CDs qui sont destinés à n'être utilisé que sur des systèmes &os;, l'option peut être utilisée pour désactiver toutes les restrictions au niveau des noms de fichiers. Quand elle est utilisée avec l'option , cela produit une image de système de fichiers qui est identique à l'arborescence &os; d'origine, cependant ce système de fichiers pourra violer la norme ISO 9660 de nombreuses façon. CDROMs création d'un CDROM bootable La dernière option d'usage général est l'option . Elle est utilisée pour indiquer l'emplacement de l'image de démarrage à utiliser dans la création d'un CD démarrable El Torito. Cette option prend en argument le chemin vers une image de démarrage à partir de la racine de l'arborescence qui va être copiée sur le CD. Par défaut, &man.mkisofs.8; créé une image ISO dans un mode appelé émulation de disquette, et s'attend donc à une image de démarrage de 1200, 1440 ou 2880 Ko en taille. Certains chargeurs, comme celui utilisé par les disques d'installation de &os;, n'utilisent pas ce mode d'émulation, dans ce cas l'option devrait être utilisée. Aussi, si /tmp/monboot contient un système &os; avec une image de démarrage dans /tmp/monboot/boot/cdboot, vous pourrez produire l'image d'un système de fichiers ISO 9660 dans /tmp/bootable.iso de cette façon: &prompt.root; mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/monboot Cela étant fait, si vous avez le pilote - vn (FreeBSD 4.X), ou - md (FreeBSD 5.X) configuré + md configuré dans votre noyau, vous pouvez monter le système de fichiers avec: - &prompt.root; vnconfig -e vn0c /tmp/bootable.iso -&prompt.root; mount -t cd9660 /dev/vn0c /mnt - - pour FreeBSD 4.X, et pour FreeBSD 5.X: - &prompt.root; mdconfig -a -t vnode -f /tmp/bootable.iso -u 0 &prompt.root; mount -t cd9660 /dev/md0 /mnt A ce moment vous pouvez vérifier que /mnt et /tmp/monboot sont identique. Il existe de nombreuses autres options que vous pouvez utiliser avec &man.mkisofs.8; pour régler finement son comportement. En particulier: les modifications d'une organisation ISO 9660 et la création de disques Joliet et HFS. Voir la page de manuel &man.mkisofs.8; pour plus de détails. burncd CDROMs gravure Si vous disposez d'un graveur de CD ATAPI, vous pouvez utiliser la commande burncd pour graver une image ISO sur un CD. burncd fait partie du système de base, installé sous /usr/sbin/burncd. Son utilisation est très simple, car il dispose de peu d'options: &prompt.root; burncd -f cddevice data fichierimage.iso fixate Gravera une copie de fichierimage.iso sur cddevice. Le périphérique par - défaut est /dev/acd0 (ou /dev/acd0c sous &os; 4.X). Consultez + défaut est /dev/acd0. Consultez &man.burncd.8; pour les options pour fixer la vitesse d'écriture, éjecter le CD après gravure, et graver des données audios. cdrecord Si vous n'avez pas de graveur de CD ATAPI, vous devrez utiliser cdrecord pour graver vos CDs. cdrecord ne fait pas partie du système de base; vous devez l'installer soit à partir du logiciel porté sysutils/cdrtools ou de la version pré-compilée appropriée. Des modifications du système de base peuvent provoquer le dysfonctionnement des versions binaires de ce programme, et donner lieu à une production de “dessous de bouteille”. Vous devrez par conséquent soit mettre à jour le logiciel porté quand vous mettez à jour votre système, soit si vous suivez la branche -STABLE, mettre à jour le logiciel porté lorsqu'une nouvelle version est disponible. Bien que cdrecord dispose de nombreuses options, l'usage de base est même plus simple qu'avec burncd. La gravure d'une image ISO 9660 se fait avec: &prompt.root; cdrecord dev=device fichierimage.iso La partie délicate dans l'utilisation de cdrecord est la recherche de la valeur à utiliser pour l'option . Pour déterminer le bon paramètre à utiliser, utilisez l'indicateur de cdrecord, qui produira des résultats du type: CDROMs gravure &prompt.root; cdrecord -scanbus -Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 Jörg Schilling +Cdrecord-Clone 2.01 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 Jörg Schilling Using libscg version 'schily-0.1' scsibus0: 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk 0,2,0 2) * 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * scsibus1: 1,0,0 100) * 1,1,0 101) * 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner 1,7,0 107) * Cela donne la valeur appropriée pour les périphériques listés. Recherchez votre graveur de CD dans la liste, et utilisez les trois chiffres séparés par une virgule comme valeur pour . Dans notre cas le périphérique de gravure est 1,5,0, donc l'entrée appropriée serait . Il existe des manières plus simple de spécifier cette valeur, consultez la page de manuel &man.cdrecord.1; pour des détails. C'est également la documentation à consulter pour des informations sur la gravure de pistes audios, le contrôle de la vitesse, et d'autres choses. Dupliquer des CDs Audio Vous pouvez dupliquer un CD audio en effectuant l'extraction des données audio du CD vers un ensemble de fichiers, puis graver ces fichiers sur un CD vierge. Le processus est légèrement différent entre lecteurs ATAPI et SCSI. Lecteurs SCSI Utiliser cdda2wav pour effectuer l'extraction audio. &prompt.user; cdda2wav -v255 -D2,0 -B -Owav Utiliser cdrecord pour graver les fichiers .wav. &prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wav Assurez-vous que 2,0 est choisi correctement, comme décrit dans . Lecteurs ATAPI Le pilote CD ATAPI rend disponible chaque piste sous la forme /dev/acddtnn, où d est le numéro de lecteur, et nn est le numéro de la piste écrit sur deux digits décimaux. Donc la première piste sur le premier lecteur est /dev/acd0t01, la seconde est /dev/acd0t02, la troisième /dev/acd0t03, et ainsi de suite. Assurez-vous que les fichiers appropriés existent - sous /dev. - - &prompt.root; cd /dev -&prompt.root; sh MAKEDEV acd0t99 + sous /dev. Si ces entrées + sont absentes, forcez le système à lire le + disque à nouveau: - Sous FreeBSD 5.X, &man.devfs.5; créera - et gèrera automatiquement pour vous les entrées - sous /dev, il n'est donc pas - nécessaire d'utiliser - MAKEDEV. + &prompt.root; dd if=/dev/acd0 of=/dev/null count=1 Extraire chaque piste en utilisant &man.dd.1;. Vous devez également préciser une taille de bloc durant l'extraction des fichiers. &prompt.root; dd if=/dev/acd0t01 of=piste1.cdr bs=2352 &prompt.root; dd if=/dev/acd0t02 of=piste2.cdr bs=2352 ... Graver les fichiers récupérés en utilisant burncd. Vous devez spécifier que ce sont des fichiers audio, et que burncd devra fermer le disque une fois terminé. &prompt.root; burncd -f /dev/acd0 audio piste1.cdr piste2.cdr ... fixate Dupliquer des CDs de données vous pouvez copier un CD de données vers un fichier image équivalent au fichier créé avec &man.mkisofs.8;, et vous pouvez l'utiliser pour dupliquer n'importe quel CD de données. L'exemple présenté ici suppose que votre lecteur de CDROM est les périphérique acd0. Remplacez-le avec le - périphérique correct. Sous &os; 4.X, un c doit - être ajouté à la fin du nom du - périphérique - pour indiquer l'intégralité de la partition, ou dans le - cas de CDROMs, l'intégralité du disque. + périphérique correct. &prompt.root; dd if=/dev/acd0 of=fichier.iso bs=2048 Vous disposez maintenant d'une image, vous pouvez la graver comme décrit plus haut. Utiliser des CDs de données Maintenant que vous avez créé une CDROM de données standard, vous voulez probablement le monter et lire les données présentes. Par défaut, &man.mount.8; suppose que le système de fichier à monter est de type UFS. Si vous essayez quelque chose comme: &prompt.root; mount /dev/cd0 /mnt vous obtiendrez une erreur du type Incorrect super block, et pas de montage. Le CDROM n'est pas un système de fichiers de type UFS, aussi toute tentative de montage de ce type échouera. Vous devez juste préciser à &man.mount.8; que le système de fichiers est du type ISO9660, et tout fonctionnera. Cela se fait en spécifiant l'option option à &man.mount.8;. Par exemple, si vous désirez monter un CDROM, contenu dans le lecteur /dev/cd0, sous /mnt, vous devrez exécuter: &prompt.root; mount -t cd9660 /dev/cd0 /mnt Notez que votre nom de lecteur (/dev/cd0 dans cet exemple) pourra être différent, en fonction de l'interface utilisée par votre lecteur de CDROM. De plus l'option ne fait qu'exécuter la commande &man.mount.cd9660.8;. L'exemple précédent pourrait être réduit à: &prompt.root; mount_cd9660 /dev/cd0 /mnt Vous pouvez généralement utiliser des CDROMs de données de n'importe quelle provenance de cette façon. Les disques avec certaines extensions ISO 9660 pourront se comporter de façon étrange, cependant. Par exemple, les disques Joliet conservent tous les noms de fichiers en utilisant des caractères Unicodes sur 2 octets. Le noyau &os; ne comprend pas - l'Unicode (pas encore!), aussi les caractères non-anglais - apparaîtront sous la forme de points d'interrogation. - (Si vous utilisez &os; 4.3 ou suivantes, le pilote - CD9660 inclus la possibilité de charger au vol la table - de conversion Unicode appropriée. Les modules - de certains des codages classiques sont disponibles - via le logiciel porté sysutils/cd9660_unicode.) + l'Unicode, mais le pilote CD9660 de &os; est en mesure de + convertir au vol les caractères Unicode. Si des + caractères non-anglais apparaissent sous la forme de + points d'interrogation, vous devrez préciser la table + de caractères locale que vous utilisez avec l'option + . Pour plus d'information, consultez la + page de manuel &man.mount.cd9660.8;. + + + Pour pouvoir effectuer cette conversion de + caractères à l'aide de l'option + , le module + cd9660_iconv.ko devra être + chargé. Cela peut être fait soit en ajoutant + au fichier loader.conf la ligne: + + cd9660_iconv_load="YES" + + puis en redémarrant la machine, soit en chargeant + directement le module avec &man.kldload.8;. + Occasionnellement, vous pourrez obtenir le message Device not configured (périphérique non configuré) lors d'une tentative de montage d'un CDROM. Cela veut généralement dire que le lecteur de CDROM pense qu'il n'y a pas de disque dans le lecteur, ou que le lecteur n'est pas visible sur le bus. Cela peut demander plusieurs secondes à un lecteur de CDROM de s'apercevoir qu'il a été chargé, soyez donc patient. Parfois, un lecteur de CDROM SCSI peut être manquant parce qu'il n'a pas eu suffisamment de temps pour répondre à la réinitialisation du bus. Si vous avez un lecteur de CDROM SCSI, veuillez ajouter l'option suivante à la configuration de votre noyau et recompiler votre noyau. options SCSI_DELAY=15000 Ceci demande à votre bus SCSI une pause de 15 seconds au démarrage, pour donner à votre lecteur de CDROM une chance de répondre la réinitialisation du bus. Graver des CDs de données brutes Il est possible de graver directement un fichier sur CD, sans créer de système de fichiers ISO 9660. Certaines personnes le font dans le cas de sauvegardes. Cela est beaucoup plus rapide que de graver un CD standard: &prompt.root; burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate Afin de récupérer les données gravées sur un tel CD, vous devez lire les données à partir du fichier spécial de périphériques en mode caractère: &prompt.root; tar xzvf /dev/acd1 Vous ne pouvez monter ce disque comme vous le feriez avec un CDROM classique. Un tel CDROM ne pourra être lu sous un autre système d'exploitation en dehors de &os;. Si vous voulez être en mesure de monter le CD, ou d'en partager les données avec un autre système d'exploitation, vous devez utiliser &man.mkisofs.8; comme décrit plus haut. Marc Fonvieille Contribution de graveur de CD pilote ATAPI/CAM Utilisation du pilote de périphérique ATAPI/CAM Ce pilote permet d'accéder aux périphériques ATAPI (lecteurs de CD-ROM, graveurs CD-RW, lecteur de DVD etc...) par l'intermédiaire du sous-système SCSI, et autorise l'utilisation d'applications comme sysutils/cdrdao ou &man.cdrecord.1;. Pour utiliser ce pilote, vous devrez ajouter la ligne - suivante au fichier de configuration du noyau: + suivante au fichier + /boot/loader.conf: + + atapicam_load="YES" + + puis redémarrez votre machine. + + + Si vous préférez compiler en statique dans le noyau + le support &man.atapicam.4;, vous devrez ajouter au fichier + de configuration du noyau la ligne: device atapicam Vous avez également besoin des lignes suivantes dans votre fichier de configuration: device ata device scbus device cd device pass qui devraient être déjà - présentes. + présentes. Puis recompilez, installez votre nouveau + noyau, et enfin redémarrez votre machine. + - Puis recompilez, installez votre nouveau noyau, et - redémarrez votre machine. Lors du démarrage, votre + Lors du démarrage, votre graveur devrait apparaître, comme suit: acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4 cd0 at ata1 bus 0 target 0 lun 0 cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device cd0: 16.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed Le lecteur doit être accessible via le nom de périphérique /dev/cd0, par exemple pour monter un CD-ROM sous /mnt, tapez juste ce qui suit: &prompt.root; mount -t cd9660 /dev/cd0 /mnt En tant que root, vous pouvez exécuter la commande suivante pour obtenir l'adresse SCSI du graveur: &prompt.root; camcontrol devlist <MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0) Donc 1,0,0 sera l'adresse SCSI à utiliser avec &man.cdrecord.1; et tout autre application SCSI. Pour plus d'information concernant ATAPI/CAM et le système SCSI, consultez les pages de manuel &man.atapicam.4; et &man.cam.4;. Marc Fonvieille Contribution de Andy Polyakov Avec l'aide de Création et utilisation de supports optiques (DVDs) DVD gravure Introduction Comparé au CD, le DVD est la génération technologique suivante de support optique de stockage de données. Un DVD peut contenir plus de données qu'un CD et est de nos jour le standard pour la publication de vidéos. Cinq formats physiques enregistrables peuvent être définis pour ce que nous appellerons un DVD enregistrable: DVD-R: Ce fut le premier format DVD enregistrable disponible. La norme DVD-R est définie par le Forum DVD. Ce format n'est pas réinscriptible. DVD-RW: C'est la version réinscriptible du standard DVD-R. Un DVD-RW peut supporter environ 1000 réécritures. DVD-RAM: C'est également un format réinscriptible supporté par le Forum DVD. Un DVD-RAM peut être vu comme un disque dur extractible. Cependant, ce support n'est pas compatible avec la plupart des lecteurs DVD-ROM et DVD-Vidéo; seuls quelques graveurs de DVDs supportent le + DVD-RAM. Consultez la + pour plus d'information sur l'utilisation d'un DVD-RAM. DVD+RW: C'est un format réinscriptible défini par l' Alliance DVD+RW. Un DVD+RW supporte environ 1000 réécritures. DVD+R: Ce format est la version non-réinscriptible du format DVD+RW. Un DVD enregistrable simple couche peut contenir jusqu'à 4 700 000 000 octets ce qui équivaut en fait à 4.38 Go ou 4485 Mo (1 kilo-octet représente 1024 octets). Une différence doit être faite entre un support physique et son application. Par exemple un DVD-Vidéo est une organisation de fichiers particulière qui peut être écrite sur n'importe quel type de DVD enregistrable: DVD-R, DVD+R, DVD-RW etc. Avant de choisir le type de support, vous devez vous assurer que le graveur et le lecteur de DVD-Vidéo (lecteur de salon ou un lecteur de DVD-ROM sur un micro-ordinateur) sont compatibles avec le support. Configuration Le programme &man.growisofs.1; sera utilisé pour effectuer la gravure des DVDs. Cette commande fait partie des utilitaires dvd+rw-tools (sysutils/dvd+rw-tools). Les outils dvd+rw-tools supportent l'ensemble des supports DVD. Ces utilitaires utilisent le sous-système SCSI pour accéder aux périphériques, par conséquent le support ATAPI/CAM doit être ajouté à votre noyau. Si votre graveur utilise l'interface USB, cet ajout est inutile et vous devriez lire la sur la configuration de périphériques USB. Vous devez également activer l'accès aux périphériques ATAPI par DMA, cela peut être fait en ajoutant la ligne suivante au fichier /boot/loader.conf: hw.ata.atapi_dma="1" Avant de tenter d'utiliser les utilitaires dvd+rw-tools vous devriez consulter les notes de compatibilité matérielle des dvd+rw-tools pour des informations concernant votre graveur de DVDs. Si vous désirez une interface graphique, vous devriez jeter un oeil à K3b (sysutils/k3b) qui offre une interface conviviale à &man.growisofs.1; et à d'autres outils de gravure. Graver des DVDs de données La commande &man.growisofs.1; est une interface à mkisofs, elle invoquera &man.mkisofs.8; pour la création du système de fichiers et effectuera la gravure des données sur le DVD. Cela signifie que vous n'avez pas besoin de créer une image des données avant le processus de gravure. Pour écrire les données du répertoire /path/to/data, utilisez la commande suivante: &prompt.root; growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data Les options sont passées à &man.mkisofs.8; pour la création du système de fichiers (dans le cas présent: un système de fichiers ISO 9660 avec les extensions Joliet et Rock Ridge), consultez la page de manuel de &man.mkisofs.8; pour plus de détails. L'option est utilisée pour la session d'écriture initiale dans tous les cas: multi-sessions ou pas. Le périphérique correspondant au graveur, /dev/cd0, doit être adapté en fonction de votre configuration. Le paramètre provoquera la fermeture du disque, rien ne pourra être écrit à la suite de l'enregistrement. En retour cela devrait donner lieu à une plus grande compatibilité avec les lecteurs de DVD-ROMs. Il est également possible de graver une image de système de fichiers, par exemple pour graver l'image imagefile.iso, nous lancerons: &prompt.root; growisofs -dvd-compat -Z /dev/cd0=imagefile.iso La vitesse d'écriture devrait être détectée et positionnée automatiquement en fonction du support et du graveur utilisé. Si vous voulez forcer la vitesse de gravure, utilisez le paramètre . Pour plus d'informations, lisez la page de manuel de &man.growisofs.1;. DVD DVD-Video Graver un DVD-Vidéo Un DVD-Vidéo est un système de fichiers particulier basé sur les spécifications IS0 9660 et micro-UDF (M-UDF). Le DVD-Vidéo présente également une arborescence de données spécifique, c'est la raison pour laquelle vous devez utiliser un programme particulier tel que multimedia/dvdauthor pour créer le DVD. Si vous disposez déjà d'une image du système de fichiers du DVD-Vidéo, gravez-la de la même façon que pour une autre image, reportez-vous aux sections précédentes pour un exemple. Si vous avez réalisé vous-même l'arborescence du DVD et que le résultat est dans, par exemple, le répertoire /path/to/video, la commande suivante devrait être utilisée pour graver le DVD-Vidéo: &prompt.root; growisofs -Z /dev/cd0 -dvd-video /path/to/video L'option sera passée à &man.mkisofs.8; et lui demandera de créer un système de fichiers de DVD-Vidéo. De plus, l'option implique l'option de &man.growisofs.1;. DVD DVD+RW Utiliser un DVD+RW Contrairement à un CD-RW, un DVD+RW vierge doit être formaté avant la première utilisation. Le programme &man.growisofs.1; s'en chargera automatiquement quand cela sera nécessaire, ce qui est la méthode recommandée. Cependant vous pouvez utiliser la commande dvd+rw-format pour formater le DVD+RW: &prompt.root; dvd+rw-format /dev/cd0 Vous devez effectuer cette opération qu'une seule fois, gardez à l'esprit que seuls des DVD+RW vierges doivent être formatés. Ensuite vous pouvez graver le DVD+RW de la manière vue dans les sections précédentes. Si vous voulez graver de nouvelles données (graver un système de fichiers totalement nouveau et pas juste ajouter des données) sur un DVD+RW, vous n'avez pas besoin de l'effacer, vous avez juste à récrire sur l'enregistrement précédent (en effectuant une nouvelle session initiale), comme ceci: &prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/newdata Le format DVD+RW offre la possibilité d'ajouter facilement des données à un enregistrement précédent. L'opération consiste à fusionner une nouvelle session avec la session existante, ceci n'est pas une gravure multisession, &man.growisofs.1; augmentera le système de fichiers ISO 9660 présent sur le disque. Par exemple, si nous voulons ajouter des données à notre DVD+RW précédent, nous devons utiliser cela: &prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdata Les mêmes options de &man.mkisofs.8; utilisées lors de la gravure de la session initiale doivent être à nouveau utilisées lors des écritures ultérieures. Vous pouvez ajouter l'option si vous désirez une meilleure compatibilité avec les lecteurs de DVD-ROM. Dans le cas d'un DVD+RW cela ne vous empêchera pas de rajouter des données par la suite. Si pour une quelconque raison vous voulez vraiment effacer le disque, faites ce qui suit: &prompt.root; growisofs -Z /dev/cd0=/dev/zero DVD DVD-RW Utiliser un DVD-RW Un DVD-RW accepte deux formats de disque: le format séquentiel incrémental et le format “restricted overwrite”. Par défaut les disques DVD-RW sont fournis sous le format séquentiel. Un DVD-RW vierge peut être directement gravé sans le besoin d'une opération de formatage préalable, cependant un DVD-RW non-vierge au format séquentiel doit être effacé avant de pouvoir y écrire une nouvelle session initiale. Pour effacer un DVD-RW en mode séquentiel, exécutez: &prompt.root; dvd+rw-format -blank=full /dev/cd0 Une opération d'effacement complète () prendra environ une heure avec un support 1x. Un effacement rapide peut être effectué en utilisant l'option si le DVD-RW est destiné à être enregistré suivant le mode d'écriture Disk-At-Once (DAO). Pour écrire le DVD-RW suivant le mode DAO, utilisez la commande: &prompt.root; growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso L'option ne devrait pas être nécessaire puisque &man.growisofs.1; tente de détecter les supports effacés rapidement et engage une écriture DAO. En fait le mode “restricted overwrite” devrait être utilisé avec tout DVD-RW, ce format est plus flexible que le format séquentiel incrémental par défaut. Pour écrire des données sur un DVD-RW en mode séquentiel, utilisez les mêmes instructions que pour tout autre format de DVD: &prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/data Si vous voulez ajouter des données à votre enregistrement précédent, vous devrez utiliser la commande de &man.growisofs.1;. Cependant, si vous effectuez un ajout de données sur un DVD-RW en mode séquentiel, une nouvelle session sera créée sur le disque avec pour résultat de donner naissance à un disque multi-sessions. Un DVD-RW dans le format “restricted overwrite” n'a pas besoin d'être effacé avant une nouvelle session initiale, vous avez juste à récrire sur le disque avec l'option , ceci est similaire à un DVD+RW. Il est également possible d'augmenter un système de fichiers ISO 9660 existant écrit sur le disque de la même manière que pour un DVD+RW en utilisant l'option . Le résultat sera un DVD avec une seule session. Pour faire passer un DVD-RW dans le format “restricted overwrite”, la commande suivante doit être utilisée: &prompt.root; dvd+rw-format /dev/cd0 Pour revenir au format séquentiel, utilisez: &prompt.root; dvd+rw-format -blank=full /dev/cd0 Multi-sessions Très peu de lecteurs de DVD-ROMs supportent les DVDs multi-sessions, ils ne liront, dans le meilleur des cas, que la première session. Les DVD+R, DVD-R et DVD-RW en mode séquentiel peuvent accepter de multiples sessions, la notion de multiples sessions n'existe pas pour les formats DVD+RW et DVD-RW en mode “restricted overwrite”. Utiliser la commande suivante après une session initiale (non fermée) sur un DVD+R, DVD-R, ou DVD-RW en mode séquentiel, ajoutera une nouvelle session sur le disque: &prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdata L'utilisation de cette ligne de commande avec un DVD+RW ou un DVD-RW en mode “restricted overwrite” aura pour effet d'ajouter les données en fusionnant la nouvelle session avec celle déjà présente. Le résultat sera un disque mono-session. C'est la méthode utilisée pour ajouter des données sur ces médias après une écriture initiale. De l'espace sur le médium est utilisé entre chaque session pour la fin et le début des sessions. Par conséquent, tout ajout de données devrait se faire suivant une quantité importante de données pour optimiser l'espace sur le disque. Le nombre de sessions est limité à 154 pour un DVD+R, environ 2000 pour un DVD-R, et 127 pour un DVD+R double couche. Pour plus d'informations Pour obtenir plus d'informations sur un DVD, la commande dvd+rw-mediainfo /dev/cd0 peut être exécutée avec le disque dans le lecteur. Plus d'informations sur les utilitaires dvd+rw-tools peuvent être trouvées dans la page de manuel de &man.growisofs.1;, sur le site Web de dvd+rw-tools et dans les archives de la liste de diffusion cdwrite. La sortie de la commande dvd+rw-mediainfo sur le résultat de la gravure ou le disque posant problème est obligatoire avec tout rapport de problème. Sans cette sortie, il sera quasiment impossible de vous aider. + + + Utiliser un disque DVD-RAM + + DVD + DVD-RAM + + + + Configuration + + Les graveurs de DVD-RAM sont fournis soit avec une + interface SCSI soit une interface ATAPI. Dans le cas des + périphériques ATAPI, l'accès DMA doit + être activé, cela peut être fait en + ajoutant la ligne suivante au fichier + /boot/loader.conf: + + hw.ata.atapi_dma="1" + + + + Préparer le disque + + Comme précisé dans l'introduction de cette + section, un DVD-RAM peut être vu comme un disque dur + extractible. Comme tout autre disque dur le DVD-RAM doit + être préparé avant la + première utilisation. Dans l'exemple, + l'intégralité de l'espace sur le disque sera + utilisé par un système de fichiers UFS2 + standard: + + &prompt.root; dd if=/dev/zero of=/dev/acd0 count=2 +&prompt.root; bsdlabel -Bw acd0 +&prompt.root; newfs /dev/acd0 + + Le périphérique DVD + acd0 doit être modifié + en fonction de la configuration. + + + + Utiliser le disque + + Une fois les opérations précédentes + effectuées sur le DVD-RAM, il peut être + monté comme un disque dur classique: + + &prompt.root; mount /dev/acd0 /mnt + + Après cela, on pourra lire et écrire sur + le DVD-RAM. + + Julio Merino Travail original de Martin Karlsson Réécrit par Création et utilisation de disquettes Sauvegarder des données sur disquette est parfois utile, par exemple quand on a pas d'autre support de stockage amovible de disponible ou quand on doit transférer de petites quantités de données sur un autre ordinateur. Cette section expliquera comment utiliser des disquettes sous &os;. Elle couvrira principalement le formatage et l'utilisation de disquettes DOS de 3.5pouces, mais les concepts exposés sont identiques pour d'autres formats de disquettes. Formater des disquettes Le périphérique On accède aux disquettes par l'intermédiaire d'entrées dans /dev, comme pour tout autre périphérique. Pour - accéder directement à la disquette sous les - versions 4.X et précédentes, on peut - utiliser /dev/fdN, - où N représente le - numéro de lecteur, généralement 0, ou - /dev/fdNX, - où X est une lettre. - - Sous les versions 5.0 et suivantes, utilisez + accéder directement à la disquette, utilisez simplement /dev/fdN. - - - La capacité des disquettes sous les versions - 4.X et précédentes - - Les périphériques importants - sont /dev/fdN.size, - où size est la taille de la - disquette en kilo-octets. Ces entrées sont utilisées - au moment du formatage bas niveau pour déterminer - la capacité du disque. 1440Ko est la capacité - qui sera utilisée dans les exemples suivants. - - Parfois les entrées sous /dev - devront être (re)crées. Pour cela, tapez: - - &prompt.root; cd /dev && ./MAKEDEV "fd*" - - - - La capacité des disquettes sous les versions - 5.0 et suivantes - - Sous FreeBSD 5.X, &man.devfs.5; - gérera automatiquement les fichiers spéciaux - de périphériques sous /dev, - aussi l'utilisation de MAKEDEV n'est - pas nécessaire. - - La capacité désirée est passée à - &man.fdformat.1; par l'intermédiaire de l'indicateur - . Les capacités supportées - sont listées dans la page de manuel - &man.fdcontrol.8;, mais soyez conscients que - 1440Ko est celle qui fonctionne le mieux. - Le formatage Une disquette doit subir un formatage bas niveau avant d'être utilisable. Il est généralement réalisé par le constructeur, mais le formatage est une bonne manière de contrôler l'intégrité du support. Bien qu'il soit possible de forcer une plus grande (ou plus petite) capacité, 1440Ko est celle pour laquelle sont conçues la plupart des disquettes. Pour effectuer un formatage bas niveau d'une disquette vous devez utiliser &man.fdformat.1;. L'utilitaire attend le nom du périphérique en argument. Notez tout message d'erreur, sachant que cela peut aider à déterminer si la disquette est bonne ou défectueuse. - Formatage sous les versions 4.X et - précédentes - - Utilisez un des périphériques - /dev/fdN.size, - pour formater la disquette. Insérez une disquette - 3.5pouces dans votre lecteur et tapez: - - &prompt.root; /usr/sbin/fdformat /dev/fd0.1440 - - - - - Formatage sous les versions 5.0 et - suivantes + Formatage des disquettes Utilisez un des périphériques /dev/fdN.size, pour formater la disquette. Insérez une disquette 3.5pouces dans votre lecteur et tapez: &prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0 Le label de disque Après le formatage bas niveau du disque, vous devrez y placer un label de disque. Ce label sera détruit plus tard, mais il est nécessaire au système pour déterminer par la suite la taille et la géométrie du disque. Le nouveau label de disque prendra l'intégralité du disque, et contiendra l'information correcte sur la géométrie de la disquette. Les différentes géométries possibles pour le label sont listées dans /etc/disktab. - Vous pouvez maintenant exécuter &man.disklabel.8; + Vous pouvez maintenant exécuter &man.bsdlabel.8; de la façon suivante: - &prompt.root; /sbin/disklabel -B -r -w /dev/fd0 fd1440 - - Depuis la version &os; 5.1-RELEASE, - l'utilitaire &man.bsdlabel.8; remplace l'ancien programme - &man.disklabel.8;. Avec &man.bsdlabel.8; de nombreuses - options et paramètres obsolètes ont - été retirés; dans l'exemple ci-dessus, - l'option doit être enlevée. - Pour plus d'information, consultez la page de manuel - &man.bsdlabel.8;. + &prompt.root; /sbin/bsdlabel -B -w /dev/fd0 fd1440 Le système de fichiers La disquette est maintenant fin prête pour un formatage haut niveau. Cette opération placera un nouveau système de fichiers sur la disquette, qui permettra à &os; d'écrire et de lire sur le disque. Après la création du nouveau système de fichiers, le label disque est détruit, aussi si vous désirez reformater le disque, vous devrez recréer le label de disque à nouveau. Le système de fichiers de la disquette peut soit être de l'UFS soit utiliser le système FAT. Le système FAT est généralement un meilleur choix pour les disquettes. Pour placer un nouveau système de fichier sur la disquette faites ceci: &prompt.root; /sbin/newfs_msdos /dev/fd0 La disquette est maintenant prête à être utilisée. Utilisation de la disquette Pour utiliser la disquette, montez-la avec - &man.mount.msdos.8; (sous 4.X et versions - précédentes) ou &man.mount.msdosfs.8; (sous 5.0 - ou nouvelles versions). On peut également utiliser + &man.mount.msdosfs.8;. On peut également utiliser emulators/mtools du catalogue des logiciels portés. Créer et utiliser les bandes magnétiques bande magnétique Les principaux types de bandes sont les 4mm, 8mm, QIC, les mini-cartouches et les DLTs. Bandes 4mm (DDS: “Digital Data Storage”) bande magnétique bandes DDS (4mm) bande magnétique bandes QIC Les bandes 4mm sont en train de remplacer les bandes QIC comme le format usuel de sauvegarde pour les stations de travail. Cette tendance s'est accélérée quand Conner a racheté Archive, un des leaders de la fabrication des lecteurs QIC, et a arrêté la production de ces derniers. Les lecteurs 4mm sont petits et silencieux mais n'ont pas la réputation de fiabilité des lecteurs 8mm. Les cartouches sont moins coûteuse et plus petites (3 x 2 x 0.5 pouces, 76 x 51 x 12 mm) que les cartouches 8mm. Les cartouches 4mm, tout comme les 8mm, ont une durée de vie faible car elles utilisent un procédé de lecture/écriture en hélice. Le débit de ces lecteurs va de ~150 Ko/s à ~500 Ko/s au maximum. Leur capacité de varie de 1.3 Go à 2.0 Go. La compression matérielle, disponible sur la plupart des lecteurs, double approximativement leur capacité. Les unités multi-lecteurs peuvent avoir jusqu'à 6 lecteurs dans une seule tour avec changement automatique de bande. La capacité totale atteint 240 Go. Le standard DDS-3 supporte maintenant des capacités de bande jusqu'à 12 Go (ou 24 Go compressés). Les lecteurs 4mm, comme les lecteurs 8mm, utilisent un procédé de lecture/écriture en hélice. Tous les avantages et les inconvénients de ce procédé s'appliquent aux deux types de lecteurs. Les bandes doivent être changées après 2000 utilisations ou 100 sauvegardes complètes. Bandes 8mm (Exabyte) bande magnétique Bandes Exabyte (8mm) Les unités de bandes 8mm sont les lecteurs de bandes SCSI les plus courant; c'est le meilleur choix de bandes amovibles. Presque chaque site dispose d'une unité Exabyte 2 Go 8mm. Les lecteurs 8mm sont fiables, pratiques et silencieux. Les cartouches sont bon marché et d'encombrement faible (4.8 x 3.3 x 0.6 pouces; 122 x 84 x 15 mm). Un des inconvénients de la bande 8mm est la durée de vie relativement courte des bandes et des têtes de lectures en raison de la grande vitesse de défilement de la bande devant les têtes. Leur débit va de ~250 Ko/s à ~500 Ko/s. Leur capacité commence à 300 Mo jusqu'à 7 Go. La compression matérielle, disponible sur la plupart des lecteurs, double approximativement la capacité. Ces lecteurs sont disponibles sous forme d'unité simple ou multiple accueillant 6 lecteurs et 120 bandes. Les bandes sont changées automatiquement par l'unité. Ils peuvent gérer une capacité de stockage de plus de 840 Go. Le lecteur Exabyte “Mammoth” supporte 12 Go sur une seule bande (24 Go compressé) et coûte approximativement le double d'un lecteur classique. L'enregistrement des données sur la bande utilise un procédé en hélice, les têtes sont positionnées en biais par rapport à la bande (environ 6 degrés). La bande fait un angle de 270 degrés avec le cylindre sur lequel se trouvent les têtes. Ce cylindre tourne en même temps que la bande défile. Il en résulte donc une grande densité de données et des pistes très serrées qui vont de biais d'un bord à l'autre de la bande. QIC bande magnétique QIC-150 Les bandes et les lecteurs QIC-150 sont, peut-être, le format le plus courant. Les lecteurs QIC sont les moins chers des supports de sauvegarde “sérieux”. Leur inconvénient par contre est le coût des bandes. Les bandes QIC sont chères comparées aux bandes 8mm ou 4mm, jusqu'à 5 fois le coût au Go. Mais, si une demi-douzaine de bandes vous suffit, le format QIC peut être le bon choix. QIC est le format le plus répandu. Chaque site dispose d'un lecteur QIC d'une densité ou d'une autre. C'est là la difficulté, il existe de nombreuses densités pour des bandes physiquement semblables (parfois même identiques). Les lecteurs QIC ne sont pas silencieux. Ces lecteurs se positionnent bruyamment avant d'enregistrer des données et ont les entend clairement lors de lecture, écriture ou - recherche. Les bandes QIC sont volumineuses (6 x 4 x 0.7 - pouces; 152 x 102 x 17 mm). + recherche. Les bandes QIC sont volumineuses: 6 x 4 x 0.7 + pouces (152 x 102 x 17 mm). Leur débit va de ~150 Ko/s à ~500 Ko/s. Leur capacité varie de 40 Mo à 15 Go. La compression matérielle est disponible sur de nombreux lecteurs récents. Les lecteurs QIC sont de moins en moins utilisés, ils sont supplantés par les lecteurs DAT. Les données sont enregistrées sur des pistes sur la bande. Les pistes sont parallèles à la bande et vont d'une extrémité à l'autre. Le nombre de piste, et par conséquent la largeur des pistes, varie avec la capacité de la bande. La plupart des nouveaux lecteurs fournissent au moins une compatibilité descendante en lecture (mais aussi en écriture). Le format QIC a une bonne réputation de sécurité des données (la mécanique est plus simple et plus robuste que les lecteurs à système en hélice). Les bandes devraient être changée après 5000 sauvegardes. DLT bande magnétique DLT Les DLT ont le taux de transfert le plus élevé de tous les types de lecteurs décrits ici. La bande d'1/2" (12.5mm) est contenue dans une seule cartouche (4 x 4 x 1 pouces; 100 x 100 x 25 mm). La cartouche est munie d'une trappe basculante le long d'un côté de la cartouche. Le lecteur ouvre cette trappe pour saisir l'amorce de la bande. Cette amorce comporte une découpe ovale que le lecteur utilise pour “crocheter” la bande. La bobine d'entraînement est située dans le lecteur. Tous les autres types de cartouches décrits ici (les bandes 9 pistes sont la seule exception) ont les bobines de stockage et d'entraînement dans la cartouche elle-même. Leur débit est d'environ 1.5 Mo/s, trois fois celui des lecteurs 4mm, 8mm, ou QIC. La capacité d'une bande varie de 10 Go à 20 Go pour une unité simple. Les lecteurs sont disponibles en unités multi-bandes avec changeurs et multi-lecteurs contenant de 5 à 900 bandes et 1 à 20 lecteurs, fournissant une capacité de stockage allant de 50 Go à 9 TO. Avec la compression, le format DLT type IV supporte jusqu'à une capacité de 70 Go. Les données sont enregistrées sur la bande sur des pistes parallèles à la direction de défilement (comme pour les bandes QIC). Deux pistes sont écrites à la fois. La durée de vie des têtes de lecture/écriture est relativement longue; une fois que la bande s'arrête, il n'y a pas de déplacement des têtes par rapport à la bande. AIT bande magnétique AIT AIT est le nouveau format de Sony, il peut supporter jusqu'à 50 Go par bande (avec compression). Les bandes contiennent un circuit mémoire qui contient un index du contenu de la bande. Cet index peut être lu rapidement par le lecteur pour déterminer l'emplacement de fichiers sur la bande, au lieu des nombreuses minutes nécessaires aux autres types de bande. Des programmes comme SAMS:Alexandria peuvent contrôler quarante ou plus ensemble de bandes AIT, communiquant directement avec le circuit mémoire de la bande pour en afficher le contenu à l'écran, déterminer quels fichiers ont été sauvegardé sur quelle bande, localiser la bonne bande, la charger, et en restaurer les données. Les ensembles de ce type reviennent aux alentour des 20000 dollars, les rendant inaccessibles à l'amateur éclairé. Utiliser une bande neuve pour la première fois La première fois que vous essayez de lire ou d'écrire sur une bande vierge, l'opération échoue. Les messages affichés par la console devraient être du type: sa0(ncr1:4:0): NOT READY asc:4,1 sa0(ncr1:4:0): Logical unit is in process of becoming ready La bande ne contient pas de bloc d'identification (bloc numéro 0). Tous les lecteurs QIC depuis l'adoption du standard QIC-525 écrivent un bloc d'identification sur la bande. Il y a alors deux solutions: mt fsf 1 fait écrire au lecteur un bloc d'identification sur la bande. Utiliser le bouton en face avant pour éjecter la bande. Ré-insérer la bande et utiliser &man.dump.8; pour écrire dessus. &man.dump.8; produira l'erreur DUMP: End of tape detected et la console affichera: HARDWARE FAILURE info:280 asc:80,96. Rembobiner la bande avec: mt rewind. Les manipulations ultérieures sur la bande fonctionneront. Sauvegardes sur disquettes Puis-je utiliser des disquettes pour la sauvegarde des mes données? disquettes de sauvegarde disquettes Les disquettes ne sont pas des supports adaptés à la réalisation de sauvegardes étant donné que: Le support n'est pas fiable, spécialement sur de longues périodes de temps. Les opérations de sauvegarde et de restauration sont très lentes. Elles ont une capacité très limitée (le jour où l'on pourra sauvegarder l'intégralité d'un disque dur sur une douzaine de disquette n'est pas encore arrivé). Cependant, si vous n'avez pas d'autres méthodes pour sauvegarder vos données alors les disquettes sont mieux que pas de sauvegardes du tout. Si vous devez utiliser les disquettes, alors assurez-vous que vous en utiliser des disquettes de bonne qualité. Les disquettes qui traînent sur le bureau depuis quelques années sont un mauvais choix. Idéalement utilisez de des disquettes neuves en provenance d'un fabricant renommé. Alors, comment je sauvegarde mes données sur disquettes? La meilleur façon de sauvegarder sur disquette est d'utiliser la commande &man.tar.1; avec l'option (volume multiple), qui autorise la répartition des sauvegardes sur plusieurs disquettes. Pour sauvegarder tous les fichiers du répertoire courant et des sous-répertoires (en tant que root): &prompt.root; tar Mcvf /dev/fd0 * Quand la première disquette est pleine &man.tar.1; vous réclamera d'introduire le volume suivant (parce que &man.tar.1; est indépendant du support il parle en terme de volume; dans notre contexte cela signifie disquette). Prepare volume #2 for /dev/fd0 and hit return: Cette opération est répétée (avec incrémentation du numéro de volume) jusqu'à ce que les fichiers spécifiés soient sauvegardés. Puis-je sauvegarder mes sauvegardes? tar gzip compression Malheureusement, &man.tar.1; ne permettra pas l'utilisation de l'option pour les archives multi-volumes. Vous pourrez, bien sûr, utiliser &man.gzip.1; sur tous les fichiers, les archiver avec &man.tar.1; sur disquettes, puis décompresser les fichiers avec &man.gunzip.1;! Comment puis-je restaurer mes sauvegardes? Pour restaurer une archive complète utiliser: &prompt.root; tar Mxvf /dev/fd0 Vous pouvez utiliser deux manières pour restaurer uniquement certains fichiers. Tout d'abord, vous pouvez commencer avec la première disquette et utiliser: &prompt.root; tar Mxvf /dev/fd0 nomdufichier &man.tar.1; vous demandera d'insérer les disquettes suivantes jusqu'à trouver le fichier recherché. Alternativement, si vous savez sur quelle disquette le fichier se trouve alors vous pouvez simplement insérer cette disquette et utiliser la commande précédente. Notez que si le premier fichier sur la disquette est la suite d'un fichier de la précédente disquette alors &man.tar.1; vous avertira qu'il ne peut le restaurer, même si vous ne le voulez pas! Lowell Gilbert Travail original de Stratégies de sauvegarde La première chose a faire lors de la mise en place d'un plan de sauvegarde est de s'assurer que l'ensemble des problèmes suivants sera couvert: Panne d'un disque Suppression accidentelle de fichiers Corruption aléatoire de fichiers Destruction complète de la machine (par exemple suite à un incendie), avec destruction des sauvegardes stockées sur le même site. Il est parfaitement possible que certains systèmes utilisent une technique différente pour chacun des problèmes évoqués ci-dessus. En dehors des systèmes personnels avec des données peu importantes, il est peu probable qu'une seule technique puisse répondre à l'ensemble de ces risques. Quelques-unes des techniques à notre disposition sont: Des archives de tout le système, sauvegardées sur un support fiable et à l'extérieur du site. C'est une protection réelle contre tous les problèmes précédemment cités, mais cette méthode est lente et peu pratique lors des restaurations. Vous pouvez conserver des copies de ces sauvegardes sur site et/ou en ligne, mais il y aura toujours des difficultés lors de la restauration des fichiers, en particulier pour les utilisateurs sans droits. Instantané de systèmes de fichiers. Cet outil n'est vraiment utile que dans le cas d'une suppression accidentelle de fichiers, mais il l'est vraiment dans ce cas; de plus cette méthode est rapide et simple à employer. Copies de l'intégralité des systèmes de fichiers et/ou des disques (par une utilisation régulière de &man.rsync.1; sur l'intégralité de la machine par exemple). C'est le procédé en général le plus utile dans le cas des réseaux avec des besoins spécifiques. Dans le cas d'une protection contre les pannes disques, cette méthode est normalement inférieure à un système RAID. Pour la restauration de fichiers supprimés accidentellement, c'est comparable aux instantanés UFS, c'est plus une question de préférence. RAID. Réduit ou évite les périodes où le système est inutilisable quand un disque tombe en panne. Avec l'inconvénient d'avoir à faire face à des pannes disques plus fréquentes (parce que vous utilisez plus de disques), mais avec cependant une moindre urgence. Le contrôle des empreintes de fichiers. L'utilitaire &man.mtree.8; est très utile dans ce cas. Bien que cela ne soit pas une technique de sauvegarde des données, ce contrôle aidera à garantir que vous serez averti quand vous devrez ressortir vos sauvegardes. C'est tout particulièrement important dans le cas de sauvegardes hors site, et ces empreintes devraient être vérifiées régulièrement. Il est relativement simple de trouver d'autres solutions, nombreuses sont celles qui sont des variations des techniques présentées ci-dessus. Des besoins spécifiques conduiront généralement à des solutions spécifiques (par exemple sauvegarder une base de données durant son utilisation demande une étape intermédiaire spécifique au logiciel de base de données). L'important est de connaître les dangers contre lesquels vous désirez vous protéger, et comment vous ferez face à chacun d'entre eux. Sauvegardes Les trois principaux programmes de sauvegarde sont: &man.dump.8;, &man.tar.1;, et &man.cpio.1;. Dump et Restore programmes de sauvegarde dump / restore dump restore &man.dump.8; et &man.restore.8; sont les programmes de sauvegarde traditionnels d'&unix;. Ils opèrent sur le disque comme sur une suite de blocs disque, en dessous du niveau d'abstraction que constituent les fichiers, liens et répertoires créés par les systèmes de fichiers. Le programme &man.dump.8; sauvegarde l'intégralité d'un système de fichiers d'un périphérique. Il est incapable de sauvegarder seulement une partie d'un système de fichiers ou une arborescence de répertoires s'étalant sur plus d'un système de fichiers. Le programme &man.dump.8; n'écrit pas de fichiers ou des répertoires sur la bande, mais écrit plutôt les blocs de données brutes dont sont constitués les fichiers et les répertoires. Si vous utilisez &man.dump.8; sur votre répertoire racine, vous ne sauvegarderez pas /home, /usr ou beaucoup d'autres répertoires puisque que ces derniers sont généralement des points de montages pour d'autres systèmes de fichiers ou des liens symboliques vers ces systèmes de fichiers. L'utilitaire &man.dump.8; a quelques particularités datant de ses débuts sous la version 6 d'AT&T UNIX (circa 1975). Les paramètres par défaut conviennent aux bandes 9 pistes (6250 bpi), et non aux supports à haute densité d'aujourd'hui (jusqu'à 62182 ftpi). Il faut surcharger ces valeurs par défaut sur la ligne de commande pour utiliser la capacité des bandes actuelles. .rhosts Il est également possible de sauvegarder les données par l'intermédiaire d'un réseau sur un lecteur de bande se trouvant sur une autre ordinateur à l'aide des commandes rdump et rrestore. Ces deux programmes utilisent &man.rcmd.3; et &man.ruserok.3; pour accéder à l'unité de bandes distante. Cependant, l'utilisateur effectuant une sauvegarde doit être présent dans le fichier .rhosts sur la machine distante. Les arguments de &man.rdump.8; et &man.rrestore.8; doivent être compatibles avec une utilisation sur la machine distante. Quand on sauvegarde une machine FreeBSD sur un lecteur Exabyte installé sur un ordinateur Sun appelé komodo, utilisez: &prompt.root; /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1 Attention: il y a des conséquences pour la sécurité à utiliser l'authentification .rhosts. Evaluez soigneusement votre situation. Il est également possible d'utiliser &man.dump.8; et &man.restore.8; d'une façon plus sécurisée sur &man.ssh.1;. Utiliser &man.dump.8; sur <application>ssh</application> &prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz Ou en utilisant une fonction interne de dump, positionner la variable d'environnement RSH: Utiliser <command>dump</command> sur <application>ssh</application> avec la variable <envar>RSH</envar> positionnée &prompt.root; RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr <command>tar</command> programmes de sauvegarde tar Le programme &man.tar.1; date aussi de la Version 6 d'AT&T UNIX (circa 1975). &man.tar.1; travaille en coopération avec le système de fichiers; il permet d'écrire des fichiers et des répertoires sur bandes. &man.tar.1; ne supporte pas toutes les options permises par &man.cpio.1;, mais ne demande pas l'inhabituelle concaténation de commandes qu'utilise &man.cpio.1; tar Sous &os; 5.3 et versions suivantes, GNU tar et la version par défaut bsdtar sont disponibles. La version GNU peut être invoquée avec la commande gtar. Elle supporte les sauvegardes sur des périphériques distants et cela avec la même syntaxe que &man.rdump.8;. Pour sauvegarder avec &man.tar.1; sur une unité Exabyte connectée sur une machine Sun appelée komodo, utilisez: &prompt.root; /usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1 La même opération peut être effectuée avec bsdtar en utilisant un tuyau et &man.rsh.1; pour envoyer les données sur un lecteur de bande distant: &prompt.root; tar cf - . | rsh hostname dd of=tape-device obs=20b Si vous êtes inquiet au sujet de la sécurité de sauvegardes par réseau, vous devriez utiliser la commande &man.ssh.1; à la place de &man.rsh.1;. <command>cpio</command> programmes de sauvegarde cpio &man.cpio.1; est le programme &unix; original pour l'échange de fichiers par bandes magnétiques. &man.cpio.1; dispose d'options (parmi beaucoup d'autres) pour intervertir les octets, utiliser de nombreux différents formats, et envoyer les données à d'autres programmes. Cette dernière caractéristique fait de &man.cpio.1; un excellent choix pour les supports d'installation. &man.cpio.1; ne sait pas parcourir une arborescence de répertoires et il faut lui passer la liste des fichiers via stdin. cpio &man.cpio.1; ne supporte pas les sauvegardes par le réseau. Vous pouvez utiliser un tuyau et &man.rsh.1; pour envoyer les données sur un lecteur de bande distant: &prompt.root; for f in directory_list; do -find $f >> backup.list +find $f >> backup.list done -&prompt.root; cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device" +&prompt.root; cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device" directory_list est la liste des répertoires que vous désirez sauvegarder, user@host est l'ensemble utilisateur/nom de machine qui effectuera les sauvegardes, et backup_device représente l'unité où seront écrites les sauvegardes (e.g., /dev/nsa0). <command>pax</command> programmes de sauvegarde pax pax POSIX IEEE &man.pax.1; est la réponse IEEE/&posix; à &man.tar.1; et &man.cpio.1;. Au fil des ans les différentes versions de &man.tar.1; et &man.cpio.1; sont devenues légèrement incompatibles. Aussi, plutôt que de batailler pour les standardiser entièrement, &posix; a défini un nouvel utilitaire d'archivage. &man.pax.1; tente de lire et d'écrire nombre des divers formats &man.tar.1; et &man.cpio.1;, en plus de ses propres nouveaux formats. Son ensemble de commandes ressemble plus à celui de &man.cpio.1; qu'à celui de &man.tar.1;. <application>Amanda</application> programmes de sauvegarde Amanda Amanda Amanda (Advanced Maryland Network Disk Archiver—Système Avancé d'Archivage de Disques en Réseau du Maryland) est un système d'archivage client/serveur plutôt qu'un simple programme. Un serveur Amanda archivera sur une seule unité de bandes un nombre quelconque d'ordinateurs disposant de clients Amanda et un accès réseau au serveur Amanda. Un problème classique sur les sites qui ont de nombreux disques volumineux est que le temps nécessaire pour sauvegarder directement les données sur la bande dépasse le temps alloué à cette tâche. Amanda résout ce problème. Amanda peut utiliser un “disque intermédiaire” pour sauvegarder plusieurs systèmes de fichiers à la fois. Amanda des “jeux d'archive”: un ensemble de bandes utilisé pour une période donnée pour créer une sauvegarde complète de tous les systèmes de fichiers listé dans le fichier de configuration d'Amanda. Le “jeu d'archive” contient également les sauvegardes nocturnes incrémentales (ou différentielles) de tous les systèmes de fichiers. Pour restaurer une système de fichiers endommagé, il faut la sauvegarde complète la plus récente et les sauvegardes incrémentales. Le fichier de configuration permet un contrôle en finesse des sauvegardes et du trafic réseau qu'Amanda génère. Amanda utilisera n'importe quel des programmes de sauvegarde décrits plus haut pour écrire les données sur bande. Amanda est disponible sous forme de logiciel porté ou de logiciel pré-compilé, il n'est pas installé par défaut. Ne rien faire “Ne rien faire” n'est pas un logiciel, mais c'est la stratégie de sauvegarde la plus utilisée. Il n'y a aucun investissement initial. Il n'y a pas de de planification des sauvegardes à suivre. Juste dire non. Si quelque chose arrive à vos données, souriez et débrouillez-vous! Si votre temps et vos données ne valent pas grand chose, alors “Ne rien faire” est le programme de sauvegarde le mieux adapté à votre ordinateur. Mais prenez garde, &unix; est un outil utile, et vous pouvez vous rendre compte au bout de six mois que vous disposez d'une collection de fichiers qui vous sont utiles. “Ne rien faire” est la bonne méthode de sauvegarde pour /usr/obj et les autres répertoires qui peuvent facilement être recréés par votre ordinateur. Un exemple est les fichiers qui constituent la version HTML ou &postscript; de ce manuel. Ces fichiers ont été générés à partir de fichiers SGML. Faire des sauvegardes des fichiers HTML ou &postscript; n'est pas nécessaire. Les fichiers source SGML sont sauvegardés régulièrement. Quel est le meilleur programme de sauvegarde? LISA &man.dump.8; Point. Elizabeth D. Zwicky a soumis à rude épreuve tous les programmes de sauvegarde dont nous avons parlé. Le choix de &man.dump.8; s'impose pour préserver toutes vos données et les particularités des systèmes de fichiers &unix;. Elizabeth a créé des systèmes de fichiers avec une grande variété de particularités inhabituelles (et quelques unes pas tellement inhabituelles) et a testé chacun des programmes en faisant une sauvegarde et une restauration de ces systèmes de fichiers. Parmi les spécificités testées: fichiers avec des trous, fichiers avec des trous et des blocs de caractères “null”, fichiers dont les noms comportent des caractères inhabituels, les fichiers illisibles ou impossible à modifier, les périphériques, fichiers dont la taille change pendant la sauvegarde, fichiers créés ou détruits en cours de sauvegarde et bien plus. Elle a présenté les résultats de ces tests au LISA V en Octobre 1991. Voir les tests d'endurance des programmes de sauvegarde et d'archivage. Procédure de restauration d'urgence Avant le désastre Il y a quatre étapes à mettre en oeuvre en prévision d'un désastre éventuel. - disklabel + bsdlabel Tout d'abord, imprimez le label de chacun de vos disques - (e.g. disklabel da0 | lpr), votre table + (par exemple bsdlabel da0 | lpr), votre table des systèmes de fichiers (/etc/fstab) et tous les messages de démarrage, en deux exemplaires. disquette de reprise d'urgence Deuxièmement, vérifiez que vos disquettes de démarrage et de reprise d'urgence (boot.flp et fixit.flp) incluent tous vos périphériques. La méthode la plus simple pour vérifier est de redémarrer avec la disquette de démarrage dans le lecteur et contrôler les messages de démarrage. Si tous vos périphériques sont listés et opérationnels, passez à la troisième étape. Sinon, vous devez créer deux disquettes de démarrage sur-mesure avec un noyau qui puisse monter tous vos disques et accéder à votre unité de bandes. Ces disquettes - doivent contenir: &man.fdisk.8;, &man.disklabel.8;, + doivent contenir: &man.fdisk.8;, &man.bsdlabel.8;, &man.newfs.8;, &man.mount.8;, et le programme de sauvegarde que vous utilisez. L'édition de liens de ces programmes doit être statique. Si vous utilisez &man.dump.8;, la disquette doit contenir &man.restore.8;. Troisièmement, faites régulièrement des sauvegardes sur bandes. Toutes les modifications effectuées après votre dernière sauvegarde peuvent irrémédiablement perdues. Protégez vos bandes de sauvegarde en écriture. Quatrièmement, testez les disquettes (soit boot.flp et fixit.flp soit les deux disquettes sur-mesure que vous avez créées à la seconde étape) et vos bandes de sauvegarde. Prenez note de la procédure. Conservez ces notes avec la disquette de démarrage, les impressions et les bandes de sauvegarde. Vous serez si préoccupé quand vous devrez restaurer que ces notes peuvent vous éviter de détruire vos bandes de sauvegarde (Comment? Au lieu de tar xvf /dev/sa0, vous pourriez taper accidentellement tar cvf /dev/sa0, ce qui écraserait votre bande de sauvegarde). Par mesure de sécurité, créez une disquette de démarrage et deux bandes de sauvegarde à chaque fois. Conservez-les dans un lieu éloigné. Un endroit éloigné n'est PAS le sous-sol du même bâtiment. Un certain nombre de compagnies du World Trade Center l'ont appris à leurs dépends. Un endroit éloigné doit être physiquement séparé de vos ordinateurs et de vos disques par une distance significative. Procédure de création d'une disquette de démarrage /mnt/sbin/init gzip -c -best /sbin/fsck > /mnt/sbin/fsck gzip -c -best /sbin/mount > /mnt/sbin/mount gzip -c -best /sbin/halt > /mnt/sbin/halt gzip -c -best /sbin/restore > /mnt/sbin/restore gzip -c -best /bin/sh > /mnt/bin/sh gzip -c -best /bin/sync > /mnt/bin/sync cp /root/.profile /mnt/root cp -f /dev/MAKEDEV /mnt/dev chmod 755 /mnt/dev/MAKEDEV chmod 500 /mnt/sbin/init chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt chmod 555 /mnt/bin/sh /mnt/bin/sync chmod 6555 /mnt/sbin/restore # # create the devices nodes # cd /mnt/dev ./MAKEDEV std ./MAKEDEV da0 ./MAKEDEV da1 ./MAKEDEV da2 ./MAKEDEV sa0 ./MAKEDEV pty0 cd / # # create minimum file system table # cat > /mnt/etc/fstab < /mnt/etc/passwd < /mnt/etc/master.passwd < Après le désastre La question cruciale est: votre matériel a-t-il survécu? Vous avez régulièrement fait des sauvegardes, vous n'avez donc pas besoin de vous inquiéter pour les fichiers et les programmes. Si le matériel a subi des dégâts, remplacez tout d'abord ce qui a été endommagé avant de tenter d'utiliser l'ordinateur. Si votre matériel est en état, contrôlez vos disquettes. Si vous utilisez une disquette de démarrage personnalisée, démarrez en mode mono-utilisateur (tapez -s à l'invite boot:). Sautez le paragraphe suivant. Si vous utilisez les disquettes boot.flp et fixit.flp, continuez à lire. Mettre la disquette boot.flp dans le premier lecteur et démarrez l'ordinateur. Le menu d'installation d'origine s'affiche à l'écran. Choisissez l'option Fixit--Repair mode with CDROM or floppy.. Insérez la disquette fixit.flp quand on vous la demande. &man.restore.8; et les autres programmes dont vous avez besoin sont situés dans le répertoire /mnt2/rescue (/mnt2/stand pour les versions de &os; antérieures à la 5.2). Restaurez chaque système de fichiers séparément. mount partition racine - disklabel + bsdlabel newfs Essayez &man.mount.8; (e.g. mount /dev/da0a /mnt) sur la partition racine de votre premier disque. Si le label du disque est endommagé, utilisez - &man.disklabel.8; pour repartitionner et libeller le disque + &man.bsdlabel.8; pour repartitionner et libeller le disque conformément au label que vous avez imprimé et mis de côté. Utilisez &man.newfs.8; pour recréer les systèmes de fichiers. Remontez la partition racine de la disquette en lecture/écriture (mount -u -o rw /mnt). Utilisez votre programme de restauration et vos bandes de sauvegardes pour restaurer les données de ce système de fichiers (e.g. restore vrf /dev/sa0). Démontez le système de fichiers (e.g. umount /mnt). Répétez l'opération pour chacun des systèmes de fichiers endommagés. Une fois que le système fonctionne à nouveau, faites une sauvegarde sur de nouvelles bandes. Ce qui a causé la panne ou la perte de données peut se reproduire. Une heure de perdue maintenant peut vous épargner d'autres ennuis plus tard. * Je ne me suis pas préparé au désastre, que faire? ]]> Marc Fonvieille Réorganisée et augmentée par Systèmes de fichiers réseaux, en mémoire et sauvegardés sur fichier disques virtuels disques virtuels En plus des disques que vous introduisez physiquement dans votre ordinateur: disquettes, CD, disques durs, et ainsi de suite; d'autres formes de disques sont gérées par &os; — les disques virtuels. NFS Coda disques mémoire Ceux-ci comprennent les systèmes de fichiers réseaux comme le NFS et Coda, les systèmes de fichiers en mémoire et les systèmes de fichiers sauvegardé dans un fichier. En fonction de la version de &os; que vous utilisez, vous devrez utiliser des outils différents pour la création et l'utilisation de systèmes de fichiers en mémoire ou sauvegardé dans un fichier. - Les utilisateurs de FreeBSD 4.X devront utiliser - &man.MAKEDEV.8; pour créer les fichiers spéciaux - de périphériques requis. FreeBSD 5.0 - et versions suivantes utilisent &man.devfs.5; pour + Utilisez &man.devfs.5; pour allouer de façon transparente pour l'utilisateur les fichiers spéciaux de périphériques. - - Système de fichiers sauvegardés dans un fichier - sous FreeBSD 4.X - - disques - système de fichiers sauvegardé dans un - fichier (4.X) - - - L'utilitaire &man.vnconfig.8; configure et active - les pseudo-disques vnode. Un vnode - est une représentation d'un fichier, et est le centre - de l'activité du fichier. Cela signifie que - &man.vnconfig.8; utilise des fichiers pour créer et - faire fonctionner un système de fichiers. Une - des utilisations possibles est de monter l'image d'une - disquette ou d'un CD conservée sous la forme d'un - fichier. - - Pour utiliser &man.vnconfig.8;, vous avez besoin du - support &man.vn.4; dans votre fichier de configuration du - noyau: - - pseudo-device vn - - Pour monter l'image d'un système de fichiers: - - - Utilisation de vnconfig pour monter une image - de systèmes de fichiers sous FreeBSD 4.X - - &prompt.root; vnconfig vn0 diskimage -&prompt.root; mount /dev/vn0c /mnt - - - Pour créer l'image d'un nouveau système de - fichiers avec &man.vnconfig.8;: - - - Création d'un nouveau disque sauvegardé sur - fichier avec <command>vnconfig</command> - - &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k -5120+0 records in -5120+0 records out -&prompt.root; vnconfig -s labels -c vn0 newimage -&prompt.root; disklabel -r -w vn0 auto -&prompt.root; newfs vn0c -Warning: 2048 sector(s) in last cylinder unallocated -/dev/vn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors - 5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g) -super-block backups (for fsck -b #) at: - 32 -&prompt.root; mount /dev/vn0c /mnt -&prompt.root; df /mnt -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/vn0c 4927 1 4532 0% /mnt - - - - Système de fichiers sauvegardé dans un fichier - sous FreeBSD 5.X + Système de fichiers sauvegardé dans un fichier disques système de fichiers sauvegardé dans un - fichier (5.X) + fichier L'utilitaire &man.mdconfig.8; est utilisé pour configurer et activer les disques mémoires, - &man.md.4;, sous FreeBSD 5.X. Pour utiliser + &man.md.4;, sous &os;. Pour utiliser &man.mdconfig.8;, vous devez charger le module &man.md.4; ou en ajouter le support dans votre fichier de configuration du noyau: device md La commande &man.mdconfig.8; supporte trois sortes de disques virtuels en mémoire: les disques mémoire alloués avec &man.malloc.9;, les disques mémoires utilisant un fichier ou l'espace de pagination comme espace disque. Une des utilisations possibles est le montage d'images de disquettes ou de CDs conservées sous forme de fichier. Pour monter l'image d'un système de fichiers: Utilisation de <command>mdconfig</command> pour monter - une image d'un système de fichiers sous - FreeBSD 5.X + une image d'un système de fichiers &prompt.root; mdconfig -a -t vnode -f diskimage -u 0 &prompt.root; mount /dev/md0 /mnt Pour créer l'image d'un nouveau système de fichiers avec &man.mdconfig.8;: Création d'un nouveau disque sauvegardé sur fichier avec <command>mdconfig</command> &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; mdconfig -a -t vnode -f newimage -u 0 -&prompt.root; disklabel -r -w md0 auto -&prompt.root; newfs md0c -/dev/md0c: 5.0MB (10240 sectors) block size 16384, fragment size 2048 - using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. +&prompt.root; bsdlabel -w md0 auto +&prompt.root; newfs md0a +/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048 + using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes. super-block backups (for fsck -b #) at: - 32, 2624, 5216, 7808 -&prompt.root; mount /dev/md0c /mnt + 160, 2720, 5280, 7840 +&prompt.root; mount /dev/md0a /mnt &prompt.root; df /mnt -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md0c 4846 2 4458 0% /mnt +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/md0a 4710 4 4330 0% /mnt Si vous ne préciser pas de numéro d'unité avec l'option , &man.mdconfig.8; utilisera le mécanisme d'allocation automatique de &man.md.4; pour sélectionner un périphérique libre. Le nom de l'unité allouée s'affichera sur la sortie standard comme par exemple md4. Pour plus de détails concernant &man.mdconfig.8;, référez-vous à la page de manuel. - Depuis la version &os; 5.1-RELEASE, - l'utilitaire &man.bsdlabel.8; remplace l'ancien programme - &man.disklabel.8;. Avec &man.bsdlabel.8; de nombreuses - options et paramètres obsolètes ont - été retirés; dans l'exemple ci-dessus, - l'option doit être enlevée. - Pour plus d'information, consultez la page de manuel - &man.bsdlabel.8;. - L'outil &man.mdconfig.8; est très utile, cependant son utilisation demande de nombreuses lignes de commandes pour créer un système de fichiers sauvegardé - sur fichier. FreeBSD 5.0 vient avec un outil appelé + sur fichier. &os; vient avec un outil appelé &man.mdmfs.8;, ce programme configure un disque &man.md.4; en utilisant &man.mdconfig.8;, y ajoute dessus un système de fichiers UFS en utilisant &man.newfs.8;, et le monte avec &man.mount.8;. Par exemple, si vous désirez créer et monter la même image de système de fichiers que précédemment, tapez simplement ce qui suit: Création et montage d'un disque sauvegardé sur fichier avec <command>mdmfs</command> &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; mdmfs -F newimage -s 5m md0 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md0 4846 2 4458 0% /mnt +/dev/md0 4718 4 4338 0% /mnt Si vous utilisez l'option sans numéro d'unité, &man.mdmfs.8; utilisera la fonction automatique de sélection d'unité de &man.md.4; pour choisir un périphérique non utilisé. Pour plus de détails au sujet de &man.mdmfs.8;, référez-vous à la page de manuel. - - Système de fichiers en mémoire sous - FreeBSD 4.X - - disques - système de fichiers en mémoire - (4.X) - - - Le pilote de périphérique &man.md.4; est un - moyen simple et efficace pour créer des systèmes - de fichiers en mémoire sous FreeBSD 4.X. - &man.malloc.9; est utilisé pour allouer la - mémoire. - - Prenez simplement un système de fichiers que - vous avez préparé avec, par exemple, &man.vnconfig.8;, - et: - - - Disque mémoire md sous FreeBSD 4.X - - &prompt.root; dd if=newimage of=/dev/md0 -5120+0 records in -5120+0 records out -&prompt.root; mount /dev/md0c /mnt -&prompt.root; df /mnt -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md0c 4927 1 4532 0% /mnt - - - Pour plus de détails, veuillez vous réferrer - à la page de manuel &man.md.4;. - - - Système de fichiers en mémoire sous - FreeBSD 5.X + Système de fichiers en mémoire disques - système de fichiers en mémoire - (5.X) + système de fichiers en mémoire - Les mêmes outils sont utilisés pour - les systèmes de fichiers en mémoire ou sauvegardé - sur fichiers: &man.mdconfig.8; or &man.mdmfs.8;. L'espace - disque utilisé par le système de fichiers - mémoire est alloué avec &man.malloc.9;. + Pour un système de fichiers en mémoire la + sauvegarde sur l'espace de pagination devrait + être normalement utilisée. Utiliser l'espace de + pagination ne signifie pas que le disque en mémoire + sera par défaut sur l'espace de pagination, mais + plutôt que le disque mémoire sera alloué + sur une zone de mémoire qui pourra être + sauvegardée sur l'espace de pagination si + nécessaire. Il est également possible de + créer un disque en mémoire dont la + mémoire est allouée à l'aide de + &man.malloc.9;, mais ce type de configuration, tout + particulièrement dans le cas de disques de grande + taille, peut donner lieu à une panique du + système si le noyau se trouve à cours de + mémoire. Création d'un disque mémoire avec <command>mdconfig</command> - &prompt.root; mdconfig -a -t malloc -s 5m -u 1 + &prompt.root; mdconfig -a -t swap -s 5m -u 1 &prompt.root; newfs -U md1 /dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048 - using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. - with soft updates + using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes. + with soft updates super-block backups (for fsck -b #) at: - 32, 2624, 5216, 7808 + 160, 2752, 5344, 7936 &prompt.root; mount /dev/md1 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md1 4846 2 4458 0% /mnt +/dev/md1 4718 4 4338 0% /mnt Création d'un disque mémoire avec <command>mdmfs</command> - &prompt.root; mdmfs -M -s 5m md2 /mnt + &prompt.root; mdmfs -s 5m md2 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md2 4846 2 4458 0% /mnt - - Au lieu d'utiliser une système de fichiers dont - l'espace disque repose sur &man.malloc.9;, il est - possible d'utiliser de l'espace de pagination, pour cela - remplacez juste avec - dans la ligne de commande de - &man.mdconfig.8;. L'utilitaire &man.mdmfs.8; par - défaut (sans ) créé - un disque basé sur l'espace de pagination. Pour - plus de détail, réferrez-vous aux pages de manuel - &man.mdconfig.8; et &man.mdmfs.8;. Détacher un disque mémoire du système disques détacher un disque mémoire Quand un système de fichiers en mémoire ou sauvegardé dans un fichier n'est pas utilisé, vous devriez rendre au système toutes les ressources. La première chose à faire est de démonter le système de fichiers, ensuite utiliser &man.mdconfig.8; pour détacher le disque du système et rendre les ressources. Par exemple pour détacher et libérer toutes les ressources utilisées par /dev/md4: &prompt.root; mdconfig -d -u 4 Il est possible d'afficher des informations sur les périphériques &man.md.4; configurés en utilisant la commande mdconfig -l. - - Sous FreeBSD 4.X, &man.vnconfig.8; est utilisé - pour détacher le périphérique. Par - exemple pour détacher et libérer toutes les - ressources utilisées par - /dev/vn4: - - &prompt.root; vnconfig -u vn4 - - Tom Rhodes Contribution de Instantané (“Snapshot”) d'un système de fichiers Instantané de système de fichiers Snapshot - FreeBSD 5.0 en association avec les + &os; en association avec les Soft Updates offre une nouvelle caractéristique: les instantanés de systèmes de fichiers (“file system snapshots”). Les instantanés permettent à un utilisateur de créer des images d'un système de fichiers précis, et de les traiter comme un fichier. Les instantanés doivent être créés dans le système de fichiers sur lequel on veut effectuer l'opération, et un utilisateur ne pourra pas créer plus de 20 instantanés par système de fichiers. Les instantanés actifs sont enregistrés dans le superbloc, ils sont donc conservés durant les opérations de démontage et de remontage lors des redémarrages du système. Quand un instantané n'est plus requis, il peut être supprimé avec la commande standard &man.rm.1;. Les instantanés peuvent être supprimés dans n'importe quel ordre, cependant tout l'espace utilisé pourra ne pas être à nouveau disponible car un autre instantané réclamera éventuellement les blocs libérés. L'indicateur inaltérable est positionné lors de la création initiale de l'instantané. La commande &man.unlink.1; fait une exception pour les fichiers d'instantanés puisqu'elle autorise leur suppression. Les instantanés sont créés avec la commande &man.mount.8;. Pour placer un instantané de /var dans le fichier /var/snapshot/snap utilisez la commande suivante: &prompt.root; mount -u -o snapshot /var/snapshot/snap /var Alternativement, vous pouvez utiliser &man.mksnap.ffs.8; pour créer un instantané: &prompt.root; mksnap_ffs /var /var/snapshot/snap Les fichiers d'instantanés peuvent être localisés sur un système de fichiers (e.g. /var) en utilisant la commande &man.find.1;: &prompt.root; find /var -flags snapshot Une fois un instantané créé, ce dernier pourra avoir de nombreux usages: Certains administrateurs utiliseront un instantané pour des besoins de sauvegarde, car l'instantané peut être transféré sur CD ou bande. - Un contrôle d'intégrité des fichiers, + Un contrôle d'intégrité du système fichiers, &man.fsck.8;, pourra être effectué sur l'instantané. En supposant que le système de fichiers était propre quand il a été monté, vous devriez toujours obtenir un résultat positif (et non différent). C'est essentiellement que effectue le processus de &man.fsck.8; en tâche de fond (“background &man.fsck.8;”). Lancer l'utilitaire &man.dump.8; sur l'instantané. Une image cohérente du système de fichiers avec les paramètres temporels de l'instantané sera produite. &man.dump.8; peut également à partir d'un instantané, créer une image et puis supprimer l'instantané en une seule fois en utilisant l'indicateur dans la ligne de commande. Monter l'instantané comme une image figée du système de fichiers. Pour monter l'instantané /var/snapshot/snap lancer: &prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4 &prompt.root; mount -r /dev/md4 /mnt Vous pouvez maintenant parcourir l'arborescence de votre système de fichiers /var figé monter sous /mnt. Tout sera au départ dans le même état que lors de la création de l'instantané. La seule exception est que les instantanés antérieurs apparaîtront sous la forme de fichiers vides. Quand l'utilisation d'un instantané est terminée, il peut être démonté avec: &prompt.root; umount /mnt &prompt.root; mdconfig -d -u 4 Pour plus d'informations sur les et les instantanés de systèmes de fichiers, et également de la documentation technique, vous pouvez consulter le site Web de Marshall Kirk McKusick à l'adresse Quotas d'utilisation des disques accounting espace disque quotas disque Les quotas sont une option du système d'exploitation qui vous permet de limiter la quantité d'espace disque et/ou le nombre de fichiers auxquels ont droit un utilisateur ou tous les utilisateurs d'un même groupe, sur un système de fichiers donné. On les utilise la plupart du temps sur les systèmes en temps partagé où il est souhaitable de limiter la quantité de ressources allouée à un utilisateur ou à un groupe. Cela évitera qu'un utilisateur ou un groupe d'utilisateur consomme tout l'espace disque. Configurer votre système pour pouvoir utiliser les quotas d'utilisation des disques Avant d'essayer de mettre en place des quotas disque, il est nécessaire de s'assurer que le noyau est configuré pour les quotas. Cela se fait en ajoutant la ligne suivante dans votre fichier de configuration du noyau: options QUOTA Cette option n'est pas activée par défaut dans le noyau GENERIC de base, vous devrez donc configurer, compiler et installer un noyau sur-mesure pour utiliser les quotas disque. Reportez-vous au chapitre pour plus d'informations sur la configuration du noyau. Ensuite vous devrez activer les quotas disques dans le fichier /etc/rc.conf. Pour cela, ajoutez la ligne: enable_quotas="YES" quotas disque contrôle Pour un contrôle plus fin des quotas au démarrage du système, il existe une variable supplémentaire de configuration. Normalement au démarrage, l'intégrité des quotas sur chaque système de fichiers est vérifiée par le programme &man.quotacheck.8;. Ce programme s'assure que les données de la base de données des quotas correspondent bien aux données présentes sur le système de fichiers. C'est un processus consommateur en temps qui affectera considérablement la durée de démarrage du système. Si vous désirez passer cette étape, une variable dans /etc/rc.conf est prévue à cet effet: check_quotas="NO" Vous devez enfin éditer le fichier /etc/fstab pour activer les quotas système de fichiers par système de fichiers. C'est là que vous pouvez soit activer les quotas par utilisateur ou par groupe soit les pour les deux sur tous vos systèmes de fichiers. Pour activer les quotas par utilisateur sur un système de fichiers, ajouter l'option dans le champ d'options sur l'entrée de /etc/fstab pour le système de fichiers sur lequel vous voulez activer les quotas. Par exemple: /dev/da1s2g /home ufs rw,userquota 1 2 De même, pour activer les quotas par groupe, utilisez l'option à la place de . Pour activer à la fois les quotas par utilisateur et par groupe, modifiez l'entrée de la façon suivante: /dev/da1s2g /home ufs rw,userquota,groupquota 1 2 Par défaut, les fichiers où sont définis les quotas dans le répertoire racine du système de fichiers sous les noms quota.user et quota.group, respectivement pour les quotas utilisateur et les quotas par groupe. Consultez la page de manuel &man.fstab.5; pour plus d'information. Bien que la page de manuel &man.fstab.5; indique que vous pouvez spécifier un autre emplacement pour ces fichiers, cela n'est pas recommandé parce que les divers utilitaires qui gèrent les quotas ne semblent pas les prendre correctement en compte. A ce point vous devriez redémarrer votre système avec votre nouveau noyau. La procédure /etc/rc exécutera automatiquement les commandes nécessaires pour créer les fichiers de quotas initiaux pour tous les quotas que vous avez définis dans /etc/fstab, vous n'avez donc pas besoin de créer à la main de fichiers de quotas vides. Vous ne devriez pas avoir à exécuter les commandes &man.quotacheck.8;, &man.quotaon.8;, ou &man.quotaoff.8; manuellement. Cependant, vous pouvez lire leur page de manuel pour vous familiariser avec leur rôle. Définir les quotas quotas disque limites Une fois que vous avez activé les quotas sur votre système, assurez-vous que cela fonctionne correctement. Une manière simple de le faire est d'exécuter: &prompt.root; quota -v Vous devriez obtenir une ligne résumant l'utilisation disque avec les quotas actuellement définis pour chaque système de fichiers sur lesquels il y a des quotas. Vous êtes maintenant prêt à définir les quotas avec la commande &man.edquota.8;. Vous disposez de différentes options pour instaurer les quotas d'espace disque alloué à un utilisateur ou à un groupe, et le nombre de fichiers qu'ils peuvent créer. Vous pouvez baser les limitations sur l'espace disque alloué (quotas en nombre de blocs) ou sur le nombre de fichiers (quotas en inode) ou les deux. Ces options peuvent être divisées en deux catégories: les limites strictes ou souples. limite stricte Une limite stricte ne peut être dépassée. Une fois qu'un utilisateur atteint sa limite stricte, il ne pourra plus rien allouer sur le système de fichiers en question. Par exemple, si l'utilisateur a droit à une limite stricte de 500 Ko sur un système de fichiers et en utilise 490  Ko, il ne pourra allouer que 10 Ko supplémentaires. Une tentative d'allouer 11 Ko échouerait. limite souple Une limite souple peut être dépassée pour une période de temps restreinte. C'est ce que l'on appelle le délai de grâce, qui est d'une semaine par défaut. Si un utilisateur dépasse cette limite au delà du délai de grâce, cette limite devient stricte, et plus aucune allocation ne sera possible. Quand l'utilisateur redescend en dessous de la limite souple, le délai de grâce est à nouveau réaccordé. Ce qui suit est un exemple de ce que vous pourrez voir en utilisant la commande &man.edquota.8;. Quand vous invoquez la commande &man.edquota.8;, vous vous retrouvez dans l'éditeur défini par la variable d'environnement EDITOR, ou sous vi si la variable d'environnement EDITOR n'est pas positionnée, ce qui vous permet d'éditer les quotas. &prompt.root; edquota -u test Quotas for user test: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) inodes in use: 7, limits (soft = 50, hard = 60) /usr/var: kbytes in use: 0, limits (soft = 50, hard = 75) inodes in use: 0, limits (soft = 50, hard = 60) Vous verrez normalement deux lignes pour chaque système de fichiers sur lequel il y a des quotas. Une ligne pour les quotas de blocs, et une autre pour la limite d'inode. Modifiez simplement les valeurs que vous voulez mettre à jour. Par exemple, pour augmenter la limite de blocs accordée à cet utilisateur de 50 pour la limite souple et de 75 pour la limite stricte à 500 pour la limite souple et 600 pour la limite stricte, modifiez: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) en: /usr: kbytes in use: 65, limits (soft = 500, hard = 600) Les nouveaux quotas seront en service dès que vous quitterez l'éditeur. Il est parfois souhaitable de définir des quotas pour une plage d'UIDs (identifiants utilisateur). Cela peut être réalisé avec l'option de la commande &man.edquota.8;. Définissez d'abord les quotas pour un seul utilisateur, et puis exécutez edquota -p protouser startuid-enduid. Par exemple, si l'utilisateur test dispose des quotas désirés, la commande suivante peut être utilisée pour appliquer ces quotas pour les UIDs de 10000 à 19999: &prompt.root; edquota -p test 10000-19999 Pour plus d'informations consultez la page de manuel &man.edquota.8;. Consulter les quotas et l'utilisation des disques quotas disque contrôle Vous pouvez soit utiliser la commande &man.quota.1; soit la commande &man.repquota.8; pour consulter les quotas et l'utilisation des disques. La commande &man.quota.1; peut être employée pour connaître les quotas et l'utilisation des disques pour un utilisateur et un groupe. Un utilisateur ne peut consulter que ses propres quotas et ceux d'un groupe auquel il appartient. Seul le super-utilisateur peut consulter les quotas et l'usage disque de tous les utilisateurs et groupes. La commande &man.repquota.8; permet d'obtenir un résumé de tous les quotas et l'utilisation disque pour les systèmes de fichiers sur lesquels il y a des quotas. Ce qui suit est un extrait de la sortie de la commande quota -v pour un utilisateur pour lequel on a défini des quotas sur deux systèmes de fichiers. Disk quotas for user test (uid 1002): Filesystem usage quota limit grace files quota limit grace /usr 65* 50 75 5days 7 50 60 /usr/var 0 50 75 0 50 60 délai de grâce Sur le système de fichiers /usr dans l'exemple ci-dessus, l'utilisateur occupe 15 Ko de plus que la limite de 50 Ko qui lui est allouée et dispose d'un délai de grâce de 5 jours. Notez l'astérisque * qui indique que l'utilisateur dépasse actuellement son quota. Normalement les systèmes de fichiers sur lesquels l'utilisateur n'occupe pas d'espace n'apparaissent pas dans la sortie de la commande &man.quota.1;, même s'il a des quotas sur ces systèmes de fichiers. L'option listera ces systèmes de fichiers, comme /usr/var dans l'exemple ci-dessus. Quotas avec NFS NFS Les quotas sont gérés par le sous-système de gestion des quotas sur le serveur NFS. Le démon &man.rpc.rquotad.8; fournit les informations sur les quotas à la commande &man.quota.1; des clients NFS, permettant aux utilisateurs sur ces machines de consulter l'utilisation des quotas qui leur sont alloués. Activez rpc.rquotad dans /etc/inetd.conf de la façon suivante: rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad Puis redémarrez inetd: &prompt.root; kill -HUP `cat /var/run/inetd.pid` Lucky Green Contribution de
shamrock@cypherpunks.to
Chiffrer les partitions d'un disque disques chiffrement &os; offre d'excellentes protections contre un accès non autorisé aux données par l'intermédiaire du réseau. Les permissions sur les fichiers et le contrôle d'accès obligatoire — “Mandatory Access Control” (MAC) (voir ) empêchent l'accès aux données pour des tiers non autorisés quand le système d'exploitation est actif et l'ordinateur en fonctionnement. Cependant, des permissions renforcés sont inutiles si l'attaquant a un accès physique à un ordinateur et peut simplement déplacer le disque dur sur un autre système pour copier et analyser les données sensibles. - Indépendamment de la manière dont un attaquant s'est + Indépendamment de la manière dont une personne + malveillante s'est trouvé en possession d'un disque dur ou a arrêté un ordinateur, le chiffrage de disque basé sur GEOM (gbde) (“GEOM Based Disk - Encryption”) peut protéger les données des - systèmes de fichiers contre des attaquants très - motivés et aux ressources importantes. A la - différence des méthodes de chiffrage lourdes qui - chiffrent uniquement les fichiers individuels, - gbde chiffre de manière - transparente l'intégralité du système de fichiers. + Encryption”) et le système de chiffrage + geli de &os; sont en mesure de + protéger les données des systèmes de + fichiers contre des attaquants très motivés et aux + ressources importantes. A la différence des + méthodes de chiffrage lourdes qui chiffrent uniquement + les fichiers individuels, gbde et + geli chiffrent de manière transparente + l'intégralité du système de fichiers. Aucun texte en clair ne touche les plateaux du disque. - Activer le support gbde dans le noyau + Chiffrage des disques avec + <application>gbde</application> Devenir <username>root</username> La configuration de gbde requiert les privilèges du super-utilisateur. &prompt.user; su - Password: - - Vérifier la version du système - d'exploitation - - &man.gbde.4; demande FreeBSD 5.0 ou suivante. - - &prompt.root; uname -r -5.0-RELEASE - - Ajouter le support &man.gbde.4; au fichier de configuration du noyau - En utilisant votre éditeur de texte favoris, - ajoutez la ligne suivante à votre fichier de configuration - du noyau: + Ajoutez la ligne suivante à votre fichier de + configuration du noyau: options GEOM_BDE - Configurez, recompilez, et installez le noyau &os;. - Ce processus est décrit dans Recompilez le noyau comme décrit dans . Redémarrez avec le nouveau noyau. + + + Au lieu de recompiler le noyau, on peut utiliser + kldload pour charger le support + &man.gbde.4;: + + &prompt.root; kldload geom_bde + - - + Préparation du disque dur chiffré L'exemple suivant suppose que vous ajoutez un nouveau disque dur à votre système et qui contiendra une seule partition chiffrée. Cette partition sera montée sous /private. gbde peut également être utilisé pour chiffrer les répertoires /home et /var/mail, mais cela demande une configuration plus complexe qui dépasse le cadre de cette introduction. Ajouter le nouveau disque Installez le nouveau disque comme expliqué dans . Pour les besoins de cet exemple, une nouvelle partition disque a été ajoutée en tant que /dev/ad4s1c. Les périphériques du type /dev/ad0s1* représentent les partitions &os; standards sur le système exemple. &prompt.root; ls /dev/ad* /dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 /dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c /dev/ad0s1a /dev/ad0s1d /dev/ad4 Créer un répertoire pour héberger les fichiers de verrouillage de GBDE &prompt.root; mkdir /etc/gbde Le fichier de verrouillage de gbde contient l'information nécessaire à gbde pour accéder aux partitions chiffrées. Sans accès au fichier de verrouillage, gbde sera incapable de déchiffrer les données contenues sur la partition chiffrée sans une aide manuelle significative ce qui n'est pas supporté par le logiciel. Chaque partition chiffrée utilise un fichier de verrouillage propre. Initialiser la partition gbde Une partition gbde doit être initialisée avant d'être utilisable. Cette initialisation doit être effectuée une seule fois: &prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c &man.gbde.8; lancera votre éditeur, vous permettant de fixer diverses options de configuration dans un gabarit. Pour une utilisation de UFS1 ou UFS2, fixez l'option sector_size à 2048: $FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $ # # La taille d'un secteur est la plus petite unité de donnée # qui peut être lue ou écrite. # Une valeur trop petite diminue les performances et l'espace # disponible. # Une valeur trop grande peut empêcher des systèmes de # fichiers de fonctionner correctement. 512 est la valeur minimale # et sans risque. Pour l'UFS, utiliser la taille d'un fragment # sector_size = 2048 [...] &man.gbde.8; vous demandera de taper deux fois la phrase d'authentification qui devra être utilisée pour sécuriser les données. La phrase d'authentification doit être la même dans les deux cas. La capacité de gbde à protéger vos données dépend de la qualité de la phrase d'authentification que vous avez choisie. Pour des conseils sur comment choisir une phrase d'authentification sécurisée et facile à retenir, consultez le site Web Diceware Passphrase. La commande gbde init crée un fichier de verrouillage pour votre partition gbde qui dans cet exemple est stocké sous /etc/gbde/ad4s1c. Les fichiers de verrouillage de gbde doivent être conservés de pair avec le contenu des partitions chiffrées. Alors que la suppression seule d'un fichier de verrouillage ne peut empêcher une personne déterminée de déchiffrer une partition gbde, sans le fichier de verrouillage, le propriétaire légitime sera incapable d'accéder aux données de la partition chiffrée sans beaucoup de travail ce qui est totalement non supporté par &man.gbde.8; et son concepteur. Attacher la partition chiffrée au noyau &prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c On vous demandera de fournir la phrase d'authentification que vous avez choisie lors de l'initialisation de la partition chiffrée. Le nouveau périphérique chiffré apparaîtra dans /dev en tant que /dev/nom_périphérique.bde: &prompt.root; ls /dev/ad* /dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 /dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c /dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde Créer un système de fichiers sur le périphérique chiffré Une fois que le périphérique chiffré a été attaché au noyau, vous pouvez créer un système de fichiers sur le périphérique. Pour créer un système de fichiers sur le périphérique, utilisez &man.newfs.8;. Puisqu'il est plus rapide d'initialiser un nouveau système de fichiers UFS2 qu'un nouveau système UFS1, l'utilisation de &man.newfs.8; avec l'option est recommandé. - L'option est utilisée - par défaut avec &os; 5.1-RELEASE et - suivante. - &prompt.root; newfs -U -O2 /dev/ad4s1c.bde La commande &man.newfs.8; peut être effectuée sur une partition gbde attachée qui est identifiée par une extension *.bde au niveau du nom de périphérique. Monter la partition chiffrée Créez un point de montage pour le système de fichiers chiffré. &prompt.root; mkdir /private Montez le système de fichiers chiffré. &prompt.root; mount /dev/ad4s1c.bde /private Vérifiez que le système de fichiers chiffré est disponible Le système de fichiers chiffré devrait être visible par &man.df.1; et prêt à être utilisé: &prompt.user; df -H Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 1037M 72M 883M 8% / /devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1f 8.1G 55K 7.5G 0% /home /dev/ad0s1e 1037M 1.1M 953M 0% /tmp /dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr /dev/ad4s1c.bde 150G 4.1K 138G 0% /private - + - + Montage des systèmes de fichiers chiffrés Après chaque démarrage, tout système de fichiers chiffré doit être rattaché au noyau, contrôlé pour les erreurs, et monté, avant que les systèmes de fichiers ne puissent être utilisés. Les commandes nécessaires doivent être exécutées en tant que root. Attacher la partition gdbe au noyau &prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c On vous demandera de fournir la phrase d'authentification que vous avez choisie lors de - l'initialisation de la partition gbde chiffrée. + l'initialisation de la partition gbde chiffrée. Contrôler les erreurs du système de fichiers Puisque les systèmes de fichiers chiffrés ne peuvent être encore listés dans le fichier /etc/fstab pour un montage automatique, on doit donc contrôler les systèmes de fichiers pour d'éventuelles erreurs en exécutant manuellement &man.fsck.8; avant le montage. &prompt.root; fsck -p -t ffs /dev/ad4s1c.bde Monter le système de fichiers chiffré &prompt.root; mount /dev/ad4s1c.bde /private Le système de fichiers est maintenant disponible à l'utilisation. - + Montage automatique de partitions chiffrées Il est possible de créer une procédure pour automatiquement attacher, contrôler, et monter une partition chiffrée, mais pour des raisons de sécurité la procédure ne devrait pas contenir le mot de passe &man.gbde.8;. A la place, il est recommandé que de telles procédures soient exécutées manuellement tout en fournissant le mot de passe via la console ou &man.ssh.1;. - - - + Comme autre possibilité, une procédure + rc.d est fournie. Des arguments + peuvent être passés à cette + procédure par l'intermédiaire de + &man.rc.conf.5;,, par exemple: + + gbde_autoattach_all="YES" +gbde_devices="ad4s1c" + + Cela impose la saisie de la phrase d'authentification + gbde au démarrage. + Après avoir entré la phrase d'authentification + correctement, la partition chiffrée + gbde sera montée + automatiquement. Cela peut être très utile + quand gbde est utilisé sur + des ordinateurs portables. + + + + Les protections cryptographiques utilisées par gbde &man.gbde.8; chiffre la partie utile des secteurs en utilisant le chiffrage AES 128 bits en mode CBC. Chaque secteur sur le disque est chiffré avec une clé AES différente. Pour plus d'informations sur l'architecture cryptographique de gbde, y compris comment les clés pour chaque secteur sont des dérivés de la phrase d'authentification donnée par l'utilisateur, voir la page de manuel &man.gbde.4;. - + - + Problèmes de compatibilité &man.sysinstall.8; est incompatible avec les périphériques gbde-chiffrés. Tous les périphériques *.bde doivent être détachés du noyau avant de lancer &man.sysinstall.8; ou ce dernier plantera durant son processus initial de recherche des périphériques. Pour détacher le périphérique chiffré utilisé dans notre exemple, utilisez la commande suivante: &prompt.root; gbde detach /dev/ad4s1c Notez également qu'étant donné que &man.vinum.4; n'utilise pas le sous-système &man.geom.4;, vous ne pouvez utiliser gbde avec des volumes vinum. - + + + + + + + + Daniel + Gerzo + Contribution de + + + + + Chiffrage des disques avec + <command>geli</command> + + Depuis &os; 6.0, une nouvelle classe GEOM pour le + chiffrage des données est disponible: + geli. Cette classe est + développée par &a.pjd;. L'outil + geli est différent de + gbde; il offre des fonctionnalités + différentes et utilise une méthode + différente pour chiffrer les données. + + Les caractéristiques les plus importantes de + &man.geli.8; sont: + + + + Utilisation du système &man.crypto.9; — + quand du matériel destiné au chiffrement est + disponible dans la machine, geli + l'utilisera automatiquement. + + + + Support de plusieurs algorithmes de chiffrement + (actuellement AES, Blowfish, et 3DES). + + + Permettre le chiffrage de la partition racine. La + phrase d'authentification utilisée pour + accéder à la partition racine + chiffrée sera demandée au démarrage + du système. + + + Permettre l'emploi de deux clés + indépendantes (par exemple une clé + utilisateur et une clé + entreprise). + + + geli est rapide—il effectue + un simple chiffrement de secteur à secteur. + + + Permettre la sauvegarde et la restauration des + clés principales. Quand un utilisateur doit + détruire ses clés, il sera possible + d'accéder à nouveau aux données en + restaurant les clés à partir de la + sauvegarde. + + + Permettre d'attacher un disque avec une clé + aléatoire à usage unique — utile pour + les partitions de pagination et les systèmes de + fichiers temporaires. + + + + Plus de caractéristiques concernant + geli peuvent être trouvées + dans la page de manuel de &man.geli.8;. + + Les points suivants décriront comment activer le + support pour geli dans le noyau &os; et + expliqueront comment créer et utiliser un + provider (ou partition) chiffré + geli. + + Afin de pouvoir employer geli, vous + devez utiliser &os; 6.0-RELEASE ou une version + ultérieure. Les privilèges du super-utilisateur + seront également nécessaire puisque il faudra + effectuer des modifications au niveau du noyau. + + + + Ajouter le support <command>geli</command> au + noyau + + Ajoutez les lignes suivantes au fichier de + configuration du noyau: + + options GEOM_ELI +device crypto + + Recompilez le noyau comme décrit dans la . + + Sinon, le module geli peut + être chargé au démarrage. Ajoutez la + ligne suivante au fichier + /boot/loader.conf: + + geom_eli_load="YES" + + Le système &man.geli.8; devrait + désormais être supporté par le + noyau. + + + + Générer la clé + principale + + L'exemple suivant décrira la méthode + pour générer un fichier clé qui sera + utilisé comme partie de la clé principale + pour le provider chiffré + monté sous le répertoire /private. Le fichier + clé fournira des données aléatoires + qui seront employées pour chiffrer la clé + principale. La clé principale sera + également protégée par une phrase + d'authentification. La taille des secteurs du + provider sera de 4Ko. De plus, sera + décrit comment attacher au système le + provider geli, créer un + système de fichiers dessus, utiliser ce + système de fichiers et enfin comment le + détacher. + + Il est recommandé d'utiliser une taille de + secteur plus grande (comme 4Ko) pour de meilleures + performances. + + La clé principale sera protégée + avec une phrase d'authentification et la source de + données pour le fichier clé sera + /dev/random. La taille des secteurs + de /dev/da2.eli, partition que nous + appelons provider, sera de + 4Ko. + + &prompt.root; dd if=/dev/random of=/root/da2.key bs=64 count=1 +&prompt.root; geli init -s 4096 -K /root/da2.key /dev/da2 +Enter new passphrase: +Reenter new passphrase: + + Il n'est pas obligatoire d'utiliser la phrase + d'authentification et le fichier clé; chacune de + ces méthodes de sécurisation de la + clé principale peut être utilisée + séparément. + + Si à la place du fichier clé un + - est passé, l'entrée + standard sera utilisée. Cet exemple montre comment + on peut utiliser plus d'un fichier clé: + + &prompt.root; cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2 + + + + Attacher le <emphasis>provider</emphasis> avec la + clé générée + + &prompt.root; geli attach -k /root/da2.key /dev/da2 +Enter passphrase: + + Le nouveau périphérique sera appelé + /dev/da2.eli. + + &prompt.root; ls /dev/da2* +/dev/da2 /dev/da2.eli + + + + Créer le nouveau système de + fichiers + + &prompt.root; dd if=/dev/random of=/dev/da2.eli bs=1m +&prompt.root; newfs /dev/da2.eli +&prompt.root; mount /dev/da2.eli /private + + Le système de fichiers chiffré devrait + être maintenant visible par &man.df.1; et disponible + à l'utilisation: + + &prompt.root; df -H +Filesystem Size Used Avail Capacity Mounted on +/dev/ad0s1a 248M 89M 139M 38% / +/devfs 1.0K 1.0K 0B 100% /dev +/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr +/dev/ad0s1d 989M 1.5M 909M 0% /tmp +/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var +/dev/da2.eli 150G 4.1K 138G 0% /private + + + + Démonter et détacher le + <emphasis>provider</emphasis> + + Une fois l'utilisation de la partition chiffrée + achevée et que la partition /private n'est plus + nécessaire, il est prudent de penser à + démonter et détacher la partition + geli chiffrée: + + &prompt.root; umount /private +&prompt.root; geli detach da2.eli + + + + Plus d'information sur l'utilisation de &man.geli.8; + peut être trouvée dans sa page de + manuel. + + + Utiliser la procédure <filename>rc.d</filename> + de <filename>geli</filename> + + La commande geli est fournie avec + une procédure rc.d qui peut + être employée pour simplifier l'utilisation de + geli. Un exemple de configuration de + geli à l'aide de &man.rc.conf.5; + sera: + + geli_devices="da2" +geli_da2_flags="-p -k /root/da2.key" + + Ces lignes configureront /dev/da2 + comme provider geli + avec une clé principale + /root/da2.key, de plus + geli n'utilisera pas de phrase + d'authentification pour attacher le + provider (notez que ceci n'est + utilisable que si l'option a + été passée durant la phase + geli init). Le système + détachera du noyau le provider + geli avant l'arrêt du + système. + + Plus d'information sur la configuration du + système rc.d est fournie dans la + section rc.d de ce + Manuel. + + +
+ + + + + + + Christian + Brüffer + Ecrit par + + + + + Chiffrage de l'espace de pagination + + espace de pagination + chiffrage + + + Sous &os;, le chiffrement de l'espace de pagination est + simple à mettre en place et est possible depuis &os; + 5.3-RELEASE. En fonction de la version de &os; utilisée, + différentes options sont disponibles et la configuration + peut légèrement varier. Depuis &os; 6.0-RELEASE, + les systèmes de chiffrage &man.gbde.8; ou &man.geli.8; + peuvent être utilisé à cet effet. Avec les + versions antérieures, seul &man.gbde.8; est disponible. + Les deux systèmes utilisent la procédure rc.d nommée + encswap. + + La section précédente, Chiffrer les partitions d'un + disque, contient une courte explication sur les + différents systèmes de chiffrage. + + + Pourquoi l'espace de pagination devrait être + chiffré? + + Comme pour le chiffrage des partitions d'un disque, + chiffrer l'espace de pagination a pour but la protection des + informations sensibles. Imaginez une application qui, par + exemple, traite des mots de passe. Tant que ces mots de passe + résident en mémoire tout va pour le mieux. + Cependant, si le système d'exploitation commence + à transférer des pages mémoires vers + l'espace de pagination en vue de libérer de la + mémoire pour d'autres applications, les mots de passe + peuvent être écrits en clair sur les plateaux du + disque et seront faciles à récupérer par + une personne malveillante. Chiffrer l'espace de pagination + peut être une solution contre ce scénario. + + + + Préparation + + + Pour le reste de cette section, + ad0s1b sera la partition + réservée à l'espace de + pagination. + + + Jusqu'ici l'espace de pagination n'a jamais + été chiffré. Il est fort possible qu'il + y ait déjà des mots de passe ou toute autre + donnée sensible de présents en clair sur les + plateaux du disque. Afin d'y remédier, les + données de la partition de pagination doivent + être écrasées avec des données + aléatoires: + + &prompt.root; dd if=/dev/random of=/dev/ad0s1b bs=1m + + + + Chiffrer de l'espace de pagination avec + &man.gbde.8; + + Si &os; 6.0-RELEASE ou une version plus récente est + utilisée, le suffixe .bde doit + être ajouté au nom de périphérique + sur la ligne du fichier /etc/fstab + correspondant à cet espace de pagination: + + # Device Mountpoint FStype Options Dump Pass# +/dev/ad0s1b.bde none swap sw 0 0 + + Pour les systèmes antérieurs à &os; + 6.0-RELEASE, la ligne suivante doit également + être ajoutée à + /etc/rc.conf: + + gbde_swap_enable="YES" + + + + Chiffrage de l'espace de pagination avec + &man.geli.8; + + La procédure pour le chiffrage de l'espace de + pagination avec &man.geli.8; est similaire à celle pour + l'utilisation de &man.gbde.8;. Le suffixe + .eli doit être ajouté au nom + de périphérique sur la ligne du fichier + /etc/fstab correspondant à cet + espace de pagination: + + # Device Mountpoint FStype Options Dump Pass# +/dev/ad0s1b.eli none swap sw 0 0 + + Par défaut, &man.geli.8; utilise l'algorithme + AES avec une longueur de clé de + 256bits. + + Les valeurs par défaut peuvent être + modifiées en utilisant l'option + geli_swap_flags dans le fichier + /etc/rc.conf. La ligne suivante demande + à la procédure rc.d encswap + de créer des partitions de pagination en utilisant + l'algorithme Blowfish avec une clé de 128 bits de + longueur, une taille de secteur de 4 kilo-octets et avec + l'option detach on last close (détacher + après démontage de la partition) + activée: + + geli_swap_flags="-a blowfish -l 128 -s 4096 -d" + + Veuillez vous référer à la + description de la commande onetime dans la + page de manuel &man.geli.8; pour une liste des options + possibles. + + + + Vérifier que cela fonctionne + + Une fois que le système a été + redémarré, le fonctionnement correct de l'espace + de pagination peut être vérifié en + utilisant la commande swapinfo. + + Si &man.gbde.8; est utilisé: + + &prompt.user; swapinfo +Device 1K-blocks Used Avail Capacity +/dev/ad0s1b.bde 542720 0 542720 0% + + Si &man.geli.8; est utilisé: + + &prompt.user; swapinfo +Device 1K-blocks Used Avail Capacity +/dev/ad0s1b.eli 542720 0 542720 0% +