Table des matières
Je décris ici les astuces de base pour configurer et gérer les systèmes, la plupart depuis la console.
screen(1) est un outil très utile pour ceux qui accèdent à un site distant par l’intermédiaire d'une connexion non fiable ou intermittente car il gère les interruptions de connexion au réseau.
Tableau 9.1. Liste de programmes gérant les interruptions de connexion au réseau
paquet | popcon | taille | description |
---|---|---|---|
screen |
V:89, I:323 | 952 | multiplexeur de terminal avec une émulation de terminal VT100/ANSI |
screen(1) ne permet pas uniquement de faire tourner plusieurs processus dans une fenêtre de terminal, mais aussi à un processus de l’interpréteur de commandes distant de survivre à d'éventuelles interruptions de la connexion. Voici un scénario typique de screen(1) :
vous-vous connectez à une machine distante ;
vous démarrez screen
sur une seule console ;
vous exécutez plusieurs programmes dans les fenêtres
screen
créées avec ^A c
(« Ctrl-A » suivi de « c ») ;
vous passez d'une des fenêtres multiples de screen
à
l’autre avec ^A n
(« Ctrl-A » suivi de
« n ») ;
vous avez alors besoin de quitter votre terminal, mais vous ne voulez pas perdre votre travail en cours perdant la connexion.
vous pouvez détacher la session
screen
par différentes méthodes :
débrancher brutalement votre connexion réseau ;
entrer ^A d
(« Ctrl-A » suivi de
« d ») et en quittant manuellement la connexion distante :
entrer ^A DD
(« Ctrl-A » suivi de
« DD ») pour détacher screen
et vous
déconnecter.
Vous vous reconnectez à la même machine distante (même depuis un autre terminal) ;
Vous lancez screen
avec « screen
-r
» ;
screen
réattache
magiquement toutes les fenêtres screen
précédentes avec
tous les programmes qui y tournent.
![]() |
Astuce |
---|---|
Avec |
Dans une session screen
, toutes les entrées clavier sont
envoyées vers votre fenêtre actuelle sauf les séquences de touche de
commande. Toutes les séquences de touche de commande
screen
sont entrées par ^A
(« Ctrl-A ») suivi d'un seule touche [plus les paramètres]. Voici
celles dont il est important de se souvenir.
Tableau 9.2. Liste des raccourcis clavier de screen
affectation | signification |
---|---|
^A ?
|
afficher l’aide de screen (afficher les raccourcis clavier) |
^A c
|
créer une nouvelle fenêtre et basculer vers celle-ci |
^A n
|
aller à la fenêtre suivante |
^A p
|
aller à la fenêtre précédente |
^A 0
|
aller à la fenêtre 0 |
^A 1
|
aller à la fenêtre 1 |
^A w
|
afficher la liste des fenêtres |
^A a
|
envoyer un Ctrl-A à la fenêtre actuelle en tant qu'entrée clavier |
^A h
|
écrire dans un fichier une copie de la fenêtre actuelle |
^A H
|
commencer et finir l’enregistrement de la fenêtre en cours vers un fichier |
^A ^X
|
verrouiller le terminal (protégé par un mot de passe) |
^A d
|
détacher la session screen du terminal |
^A DD
|
détacher la session screen et se déconnecter |
Consultez screen(1) pour davantage d'informations.
De nombreux programmes enregistrent leur activité dans le répertoire
« /var/log/
».
Démon de journal du noyau : klogd(8)
Démon de journal du système : rsyslogd(8)
Consultez Section 3.5.9, « Messages du système » et Section 3.5.10, « Messages du noyau ».
Voici les principaux analyseurs de journaux
(« ~Gsecurity::log-analyzer
» dans
aptitude(8)).
Tableau 9.3. Liste des analyseurs de journaux système
paquet | popcon | taille | description |
---|---|---|---|
logwatch |
V:26, I:29 | 2018 | analyseur de journal avec une sortie sympathique en Perl |
fail2ban |
V:65, I:74 | 414 | bannir les IP qui provoque des erreurs d'authentification multiples |
analog |
V:9, I:147 | 3187 | analyseur des journaux du serveur web |
awstats |
V:20, I:30 | 3101 | analyseur des journaux du serveur web puissant ayant de nombreuses fonctionnalités |
sarg
|
V:13, I:13 | 921 | générateur de rapport d'analyse de squid |
pflogsumm |
V:2, I:5 | 133 | résumer les entrée de journal de postfix |
syslog-summary |
V:2, I:13 | 84 | résumer le contenu du fichier journal syslog |
lire
|
V:1, I:1 | 5040 | analyseur de journaux et générateur de rapports ayant de nombreuses fonctionnalités |
fwlogwatch |
V:0, I:1 | 440 | analyseur des journaux du pare-feu |
squidview |
V:0, I:4 | 198 | surveiller et analyser les fichiers access.log de squid |
visitors |
V:0, I:2 | 293 | analyseur de journaux rapide pour le serveur web |
swatch |
V:0, I:1 | 112 | visualisateur de fichier journal avec correspondance d'expressions rationnelles, mise en évidence et « hooks » |
crm114 |
V:0, I:1 | 1066 | analyseur et filtre de données diverses, dont les pourriels (CRM114) |
icmpinfo |
V:0, I:1 | 84 | interpréter les messages ICMP |
![]() |
Note |
---|---|
CRM114 fournit une architecture de language pour écrire des filtres fuzzy avec la bibliothèque d'expressions rationnelles TRE. Un de ses utilisation courante est le filtrage des pourriels mais il peut aussi être utiliser pour l’analyse de journaux. |
La simple utilisation de script(1) (consultez Section 1.4.9, « Enregistrer les actions de l’interpréteur de commandes ») pour enregistrer l’activité de l’interpréteur de commandes produit un fichier avec des caractères de contrôle. Cela peut être évité en utilisant col(1) comme suit :
$ script Script started, file is typescript
faites quelque chose… et pressez Ctrl-D
pour quitter
script
.
$ col -bx <typescript >fichier_propre $ vim fichier_propre
si vous n'avez pas script
(par exemple pendant le
processus d'amorçage dans l’initramfs), vous pouvez alors utiliser ce qui
suit :
$ sh -i 2>&1 | tee typescript
![]() |
Astuce |
---|---|
Certains |
![]() |
Astuce |
---|---|
Vous pouvez utiliser
screen(1)
avec « |
![]() |
Astuce |
---|---|
Vous pouvez utiliser
emacs(1)
avec « |
Bien que des outils de visualisation de texte (« pager » tels que more(1) et less(1) (consultez Section 1.4.5, « Le visualisateur de fichiers ») et des outils personnalisés de mise en évidence et de formatage (consultez Section 11.1.8, « Mettre en évidence et formater des données en texte brut ») peuvent afficher des données textuelles de manière agréable, les éditeurs généraliste (consultez Section 1.4.6, « L’éditeur de texte ») sont plus souples et paramétrables.
![]() |
Astuce |
---|---|
Pour
vim(1)
et ses alias de visualisation de texte
view(1),
« |
Le format par défaut de la date et de l’heure de la commande
« "ls -l
» dépend des paramètres régionaux (consultez la valeur en Section 1.2.6, « Horodatage »). La variable « $LANG
»
est d'abord visée, elle peut être surchargée par la variable
« $LC_TIME
».
Le format réel de l’affichage pour chaque paramètre linguistique dépend de
la version de la bibliothèque C standard (paquet libc6
)
utilisée. Par exemple, les différentes versions de Debian ont des valeurs
par défaut différentes.
Si vous désirez vraiment personnaliser ce format d'affichage de la date et
de l’heure plus loin que ne le fait locale, vous pouvez définir la valeur de style d'heure avec le paramètre
« --time-style
» ou par la valeur de
« $TIME_STYLE
» (consultez
ls(1),
date(1),
« info coreutils 'ls invocation'
»).
Tableau 9.4. Exemples d'affichage de la date et de l’heure pour la commande
« ls -l
» avec wheezy
valeur de style pour l’heure | locale | affichage de la date et l’heure |
---|---|---|
iso
|
n'importe laquelle |
01-19 00:15
|
long-iso
|
n'importe laquelle |
2009-01-19 00:15
|
full-iso
|
n'importe laquelle |
2009-01-19 00:15:16.000000000 +0900
|
locale
|
C
|
Jan 19 00:15
|
locale
|
en_US.UTF-8
|
Jan 19 00:15
|
locale
|
es_ES.UTF-8
|
ene 19 00:15
|
+%d.%m.%y %H:%M
|
n'importe laquelle |
19.01.09 00:15
|
+%d.%b.%y %H:%M
|
C ou en_US.UTF-8
|
19.Jan.09 00:15
|
+%d.%b.%y %H:%M
|
es_ES.UTF-8
|
19.ene.09 00:15
|
![]() |
Astuce |
---|---|
Vous pouvez éviter d'entrer des options longues sur la lignes de commande en
utilisant les alias des commandes, par exemple « |
![]() |
Astuce |
---|---|
ISO 8601 est suivie pour ces formats iso. |
L’écho de l’interpréteur de commandes sur la plupart des terminaux peut être
colorisé en utilisant le code ANSI
d'échappement (consultez
« /usr/share/doc/xterm/ctlseqs.txt.gz
»).
Essayez, par exemple, ce qui suit :
$ ROUGE=$(printf "\x1b[31m") $ NORMAL=$(printf "\x1b[0m") $ INVERSE=$(printf "\x1b[7m") $ echo "${ROUGE}TEXTE-ROUGE${NORMAL} ${INVERSE}TEXTE-INVERSE${NORMAL}"
Les commandes colorisées sont pratique pour examiner la sortie d'une
commande dans l’environnement interactif. J'inclus ce qui suit dans mon
fichier « ~/.bashrc
».
if [ "$TERM" != "dumb" ]; then eval "`dircolors -b`" alias ls='ls --color=always' alias ll='ls --color=always -l’ alias la='ls --color=always -A' alias less='less -R' alias ls='ls --color=always' alias grep='grep --color=always' alias egrep='egrep --color=always' alias fgrep='fgrep --color=always' alias zgrep='zgrep --color=always' else alias ll='ls -l’ alias la='ls -A' fi
L’utilisation d'alias réserve les effets de couleurs à l’utilisation
interactives des commandes. Il a l’avantage sur l’exportation de la variable
d'environnement « export
GREP_OPTIONS='--color=auto'
» car la couleur peut être
affichée avec des programmes de visualisation (« pager » tels que
less(1).
Si vous souhaitez supprimer la couleur lors du tubage (« piping »
à destination d'autres programmes, utilisez plutôt
« --color=auto
» dans l’exemple ci-dessus pour
« ~/.bashrc
».
![]() |
Astuce |
---|---|
Vous pouvez désactiver ces alias dans l’environnement interactif en appelant
l’interpréteur de commandes par « |
Vous pouvez enregistrer l’activité de l’éditeur pour des répétitions complexes.
Pour Vim, de la manière suivante :
« qa
» : démarre l’enregistrement des
caractères entrés dans le registre appelé
« a
».
… activité de l’éditeur
« q
» : termine l’enregistrement des
caractères entrés.
« @a
» : exécute le contenu du registre
« a
».
Pour Emacs, de la manière suivante :
« :C-x (
» : commencer la définition d
'une macro clavier.
… activité de l’éditeur
« C-x )
» : terminer la définition d'une
macro clavier.
« C-x e
» : exécuter une macro clavier.
Il existe plusieurs manières d'enregistrer l’image graphique d'une
application X, y compris un affichage xterm
.
Tableau 9.5. Liste des outils de manipulation d'images
paquet | popcon | taille | commande |
---|---|---|---|
xbase-clients |
I:372 | 62 | xwd(1) |
gimp
|
V:124, I:468 | 15578 | Interface graphique du menu |
imagemagick |
V:228, I:500 | 419 | import(1) |
scrot
|
V:3, I:15 | 80 | scrot(1) |
Il existe des outils spécialisés pour enregistrer les modifications de la configuration avec l’aide du système DVCS.
Tableau 9.6. Liste de paquets pour enregistrer un historique de configuration dans VCS
paquet | popcon | taille | description |
---|---|---|---|
etckeeper |
V:19, I:23 | 243 | enregistrer les fichiers de configuration et leurs métadonnées avec Git (par défaut), Mercurial ou Bazaar (nouveau) |
changetrack |
V:1, I:1 | 148 | enregistrer les fichiers de configuration avec RCS (ancien) |
Je recommande l’utilisation avec
git(1)
du paquet etckeeper
, il met l’ensemble de
« /etc
» sous le contrôle de VCS. Son guide
d'installation et un tutoriel se trouvent dans
« /usr/share/doc/etckeeper/README.gz
».
Essentiellement, l’exécution de « sudo etckeeper
init
» initialise le dépôt git pour
« /etc
» exactement comme le processus décrit
dans Section 10.9.5, « Git pour l’enregistrement de l’historique de la configuration » mais avec
quelques scripts automatiques (« hook ») permettant une
configuration plus approfondie.
Alors que vous effectuez des modifications de votre configuration, vous pouvez aussi utiliser git(1) normalement pour l’enregistrer. Il enregistre parfaitement les modifications chaque fois que vous lancez des commandes de gestion de paquet.
![]() |
Astuce |
---|---|
Vous pouvez parcourir l’historique des modifications de
« |
Démarrer votre système avec un CD autonome de Linux ou avec un CD de l’installateur debian en mode secours (rescue) vous facilite la reconfiguration de l’enregistrement des données sur votre disque de démarrage. Consultez aussi Section 10.3, « Les données binaires ».
L'utilisation de l'espace disque peut être estimée à l'aide de programmes
fournis par les paquets mount
,
coreutils
et xdu
:
mount(8) indique tous les systèmes de fichiers (disques) montés.
df(1) indique l'espace disque occupé par les systèmes de fichiers.
du(1) indique l'espace disque occupé par une arborescence de répertoires.
![]() |
Astuce |
---|---|
La sortie de
du(1)
peut être renvoyée vers
xdu(1x)
pour réaliser une présentation graphique et interactive avec « |
Bien que fdisk(8) ait été considéré comme un standard pour la configuration de la partition du disque dur, il mérite une certaine attention. « Données de partition du disque », « table de partition » et « Étiquette de disque » sont tous des synonymes.
La plupart des PC utilisent le principe de l’Enregistrement Maître de démarrage (MBR) (« Master Boot Record ») pour enregistrer les données de partition du disque sur le premier secteur, c'est-à-dire, le secteur 0 LBA (512 octets).
![]() |
Note |
---|---|
Certains PC récent avec une Extensible Firmware Interface (EFI), ce qui comprend les Macs basés sur Intel, utilisent un principe de GUID Partition Table (GPT) pour enregistrer les données de partitionnement du disque ailleurs que sur le premier secteur. |
Alors que fdisk(8) a été l’outil standard de partitionnement de disque, parted(8) le remplace maintenant.
Tableau 9.7. Listes de paquets de gestion de la partition du disque
paquet | popcon | taille | GPT | description |
---|---|---|---|---|
util-linux |
V:897, I:999 | 1603 | Non pris en charge | divers utilitaires systèmes dont fdisk(8) etcfdisk(8) |
parted |
V:16, I:161 | 267 | Pris en charge | programme GNU de redimensionnement des partitions Parted |
gparted |
V:28, I:174 | 6045 | Pris en charge |
éditeur de partitions de GNOME basé sur libparted
|
gnu-fdisk |
V:3, I:15 | 215 | Pris en charge | remplacements GNU d'outils console comme fdisk(8), cfdisk(8), etc. |
gdisk
|
V:0, I:7 | 736 | Pris en charge | éditeur de partitions pour disque GPT |
gptsync |
V:0, I:2 | 72 | Pris en charge | synchronise une table de partition MBR classique avec une table GPT |
kpartx |
V:12, I:21 | 104 | Pris en charge | programme pour créer des mappages de périphériques pour les partitions |
![]() |
Attention |
---|---|
Bien que parted(8) prétend pouvoir créer et redimensionner aussi les systèmes de fichiers, il est plus sûr de toucher à ces choses-là en utilisant des outils spécialisés et bien maintenus tels que mkfs(8) (mkfs.msdos(8), mkfs.ext2(8), mkfs.ext3(8), …) et resize2fs(8). |
![]() |
Note |
---|---|
De manière à passer de GPT à MBR, il vous fait d'abord effacer les premier blocs du
disque directement (consultez Section 10.3.6, « Effacer le contenu d'un fichier ») et
utiliser « |
Bien que le reconfiguration de votre partition ou l’ordre d'activation des supports d'enregistrement amovibles puisse conduire à des noms de partitions différents, vous pouvez y accéder de manière homogène. Cela vous aidera aussi si vous avez plusieurs disques et que votre BIOS ne leur donne pas toujours le même nom de périphérique.
mount(8)
avec l’option « -U
» peut monter un
périphérique en mode bloc en utilisant l’UUID
plutôt que son nom de fichier de périphérique comme
« /dev/sda3
».
« /etc/fstab
» (consultez
fstab(5))
peut utiliser l’UUID.
Les chargeurs initiaux (Section 3.3, « Étage 2 : le chargeur initial ») peuvent aussi utiliser UUID.
![]() |
Astuce |
---|---|
Vous pouvez tester l’UUID d'un périphérique spécial en mode bloc avec blkid(8). |
![]() |
Astuce |
---|---|
Les nœuds de périphériques comme les supports d'enregistrement amovibles peuvent être rendus statiques en utilisant, si besoin, des règles udev. Consultez Section 3.5.11, « Le système udev ». |
Pour le système de fichiers ext3, le paquet
e2fsprogs
fournit les éléments suivants :
Les commandes
mkfs(8)
et
fsck(8)
font partie du paquet e2fsprogs
en tant que frontal à de
nombreux programmes dépendant du système de fichiers
(mkfs.fstype
etfsck.fstype
). Pour le
système de fichiers ext3, il y a
mkfs.ext3(8)
et
fsck.ext3(8)
(ils sont liés par un lien physique à
mke2fs(8)
ete2fsck(8)).
Des commandes semblables sont disponibles pour chaque système de fichiers pris en charge par Linux.
Tableau 9.8. Liste des paquets de gestion des systèmes de fichiers
paquet | popcon | taille | description |
---|---|---|---|
e2fsprogs |
V:598, I:999 | 2364 | utilitaires pour les systèmes de fichiers ext2/ext3/ext4 |
reiserfsprogs |
V:10, I:43 | 1200 | utilitaire pour le système de fichiers Reiserfs |
dosfstools |
V:49, I:508 | 201 | utilitaire pour le système de fichiers FAT (Microsoft :MS-DOS, Windows) |
xfsprogs |
V:23, I:86 | 3078 | utilitaire pour le système de fichiers XFS (SGI : IRIX) |
ntfs-3g |
V:187, I:485 | 1463 | utilitaire pour le système de fichiers NTFS (Microsoft : Windows NT, …) |
jfsutils |
V:3, I:19 | 1024 | utilitaire pour le système de fichiers JFS (IBM : AIX, OS/2) |
reiser4progs |
V:0, I:6 | 1296 | utilitaire pour le système de fichiers Reiser4 |
hfsprogs |
V:0, I:9 | 317 | utilitaire pour les systèmes de fichiers HFS et HFS Plus (Apple : Mac OS) |
btrfs-tools |
V:11, I:21 | 2250 | utilitaire pour le système de fichiers Btrfs |
zerofree |
V:1, I:12 | 14 | programme pour mettre à zéro les blocs libres des systèmes de fichiers ext2 et ext3 |
![]() |
Astuce |
---|---|
Le système de fichiers ext4 est le système de fichiers par défaut pour les systèmes Linux. Son utilisation est fortement recommandée, sauf cas spécifiques. |
![]() |
Astuce |
---|---|
Le système de fichiers Btrfs est disponible
dans le noyau Linux 3.2 (Debian |
![]() |
Avertissement |
---|---|
Vous ne devriez pas encore utiliser le système de fichiers Btrfs pour vos données essentielles avant que la fonctionnalité fsck(8) n'atteigne l'espace dynamique du noyau et qu'il soit pris en charge par le chargeur d'amorçage. |
![]() |
Astuce |
---|---|
Certains outils permettent l’accès au système de fichiers sans prise en charge par le noyau Linux (consultez Section 10.3.2, « Manipulation des fichiers sans monter le disque »). |
La commande mkfs(8) permet de créer un système de fichiers sur un système Linux. La commande fsck(8) permet de vérifier l’intégrité du système de fichiers et de le réparer sur un système Linux.
![]() |
Attention |
---|---|
En général, il n'est pas sûr de faire tourner |
![]() |
Astuce |
---|---|
Vous trouverez les résultats de la commande
fsck(8)
lancée depuis le script de démarrage dans
« |
![]() |
Astuce |
---|---|
Utilisez « |
La configuration statique de base du système de fichiers est donnée par
« /etc/fstab
». Par exemple,
# <système fic> <point montage> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 UUID=709cbe4c-80c1-56db-8ab1-dbce3146d2f7 / ext4 noatime,errors=remount-ro 0 1 UUID=817bae6b-45d2-5aca-4d2a-1267ab46ac23 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
![]() |
Astuce |
---|---|
Un UUID (consultez Section 9.3.3, « Accès à une partition en utilisant l’UUID ») peut être utilisé pour
identifier un périphérique bloc au lieu des noms de périphériques blocs
normaux comme « |
Les performances et les caractéristiques d'un système de fichiers peuvent être optimisées à l’aide des options de montage utilisées (consultez fstab(5) et mount(8)). Les principales options sont les suivantes :
l’option « defaults
» implique les options par
défaut :
« rw,suid,dev,exec,auto,nouser,async
»
(général) ;
les options « noatime
» ou
« relatime
» sont très efficace pour accélérer
la vitesse de lecture (général) ;
l’option « user
» permet à un utilisateur
normal de monter le système de fichiers. Cette option implique la
combinaison d'option « noexec,nosuid,nodev
»
(général, utilisée pour les CD et les disquettes) ;
la combinaison d'options
« noexec,nodev,nosuid
» est utilisée pour
améliorer la sécurité (général) ;
l’option « noauto
» limite le montage
uniquement à une opération explicite (général) ;
l’option « data=journal
» pour ext3fs peut
améliorer l’intégrité des données lors d'une panne de courant, elle
s'accompagne d'une légère baisse de la vitesse d'écriture.
![]() |
Astuce |
---|---|
Vous devez donner au noyau le paramètre de démarrage (consultez Section 3.3, « Étage 2 : le chargeur initial »), par exemple
« |
Les caractéristiques du système de fichiers peuvent être optimisées par l’intermédiaire de son superbloc en utilisant la commande tune2fs(8).
L’exécution de « sudo tune2fs -l /dev/hda1
»
affiche le contenu du superbloc du système de fichiers situé sur
« /dev/hda1
».
L’exécution de « sudo tune2fs -c 50 /dev/hda1
»
modifie la fréquence des vérifications du système de fichiers (exécution de
fsck
lors du démarrage) à 50 démarrages sur
« /dev/hda1
».
L’exécution de la commande « sudo tune2fs -j
/dev/hda1
» ajoute la possibilité de journalisation au
système de fichiers, c'est-à-dire la conversion de système de fichiers de
ext2 vers ext3 sur
« /dev/hda1
» (effectuez cela sur un système de
fichier non monté).
L’exécution de « sudo tune2fs -O extents,uninit_bg,dir_index
/dev/hda1 && fsck -pf /dev/hda1
» le convertit de
ext3 vers ext4 sur
« /dev/hda1
». (À effectuer sur un système de
fichiers non monté).
![]() |
Avertissement |
---|---|
La conversion du système de fichiers du périphérique de démarrage vers le système de fichiers ext4 doit être évitée jusqu'à ce que le système d'amorçage GRUB prennent correctement en charge le système de fichiers ext4 et que la version de noyau installée soit plus récente que 2.6.30. |
![]() |
Avertissement |
---|---|
Veuillez vérifier votre matériel et lire la page de manuel hdparam(8) avant de jouer avec la configuration de vos disques durs parce que ce peut être assez dangereux pour l’intégrité des données. |
Vous pouvez tester la vitesse de lecture d'un disque dur, par exemple
« /dev/hda
» par « hdparm -tT
/dev/hda
». Vous pouvez accélérer certains disques (E)IDE
avec « hdparm -q -c3 -d1 -u1 -m16 /dev/hda
» en
activant la prise en charge des E/S 32 bits (« (E)IDE 32-bit I/O
support »), en positionnant l’indicateur d'utilisation de dma
« using_dma flag », en positionnant l’indicateur de démasquage des
interruptions (« interrupt-unmask flag ») et en positionnant les
E/S multiples sur 15 secteurs (« multiple 16 sector I/O »)
(dangereux !).
Vous pouvez tester la fonctionnalité de cache d'un disque dur, par exemple
« /dev/sda
» par « hdparm -W
/dev/sda
». Vous pouvez désactiver le cache en écriture avec
« hdparm -W 0 /dev/sda
».
Vous pouvez réussir à lire un CD-ROM vraiment mal pressé sur un lecteur de
CD-ROM moderne rapide en le ralentissant avec « setcd -x
2
».
Les performances et l'usure du solid-state drive (SSD) peuvent être optimisées comme suit.
Utiliser le dernier noyau (>= 3.2).
Réduire les écritures sur le disque pour les accès en lecture.
Définir les options de montage « noatime
» ou
« relatime
» dans /etc/fstab
.
Activer la commande TRIM.
Définir l'option de montage « discard
» dans
/etc/fstab
pour les systèmes de fichiers ext4 et Btrfs,
les partitions de swap, etc. Consultez
fstab(5).
Définir l'option « discard
» dans
/etc/lvm/lvm.conf
pour LVM. Consultez
lvm.conf(5).
Définir l'option « discard
» dans
/etc/crypttab
pour dm-crypt. Consultez
crypttab(5).
Activer le schéma d'allocation d'espace disque optimisé pour SSD.
Définir l'option de montage « ssd
» dans
/etc/fstab
pour Brtfs.
Vider les données sur le disque toutes les dix minutes pour les ordinateur portables.
Définir l'option de montage « commit=600
» dans
/etc/fstab
. Consultez
fstab(5).
Configurer pm-utils pour utiliser laptop-mode même sous tension. Consultez le bogue Debian nº 659260.
![]() |
Avertissement |
---|---|
Modifier l'intervalle de vidage de données à dix minutes, au lieu de la valeur par défaut de cinq secondes, peut rendre les données vulnérables aux coupures de courant. |
Vous pouvez surveiller et enregistrer les disques durs conformes à SMART à l’aide du démon smartd(8).
Installez le paquet smartmontools
.
Identifiez vos disques durs en en affichant la liste avec df(1).
Supposons que le disque dur à surveiller soit
« /dev/hda
».
Contrôlez la sortie de « smartctl -a /dev/hda
»
pour voir si la fonctionnalité SMART est
effectivement activée.
Si elle ne l’est pas, activez-la avec « smartctl -s on -a
/dev/hda
».
Autorisez le fonctionnement du démon smartd(8) par l’action suivante :
décommentez « start_smartd=yes
» dans le
fichier « /etc/default/smartmontools
» ;
relancez le démon
smartd(8)
avec « sudo /etc/init.d/smartmontools
restart
».
![]() |
Astuce |
---|---|
Le démon
smartd(8)
peut être personnalisé par l’intermédiaire du fichier
|
Les applications créent normalement des fichiers temporaires dans le
répertoire de stockage temporaire « /tmp
». Si
« /tmp
» ne fournit pas assez d'espace, vous pouvez
indiquer un autre répertoire de stockage temporaire à l'aide de la variable
$TMPDIR
pour les programmes qui l'intègrent.
Les partitions créées sur le gestionnaire de volumes logiques (LVM) (« Logical Volume Manager ») (fonctionnalité de Linux) au moment de l’installation peuvent être facilement redimensionnées en y concaténant des extensions (« extents ») ou en en tronquant les extensions sur plusieurs périphériques de stockage sans reconfiguration majeure du système.
![]() |
Attention |
---|---|
Le déploiement du système LVM actuel peut dégrader la robustesse aux corruptions du système de fichiers offert par les systèmes de fichiers journalisés tels que ext3fs à moins que les performances du système ne soient sacrifiées en désactivant le cache d'écriture des disques durs. |
Si vous avez une partition vide (par exemple
« /dev/sdx
»), vous pouvez la formater avec
mkfs.ext3(1)
et la monter
(« mount(8) »)
sur un répertoire où vous avez besoin de davantage d'espace (vous devrez
copier les données d'origine).
$ sudo mv répertoire-travail ancien-répertoire $ sudo mkfs.ext3 /dev/sdx $ sudo mount -t ext3 /dev/sdx répertoire-travail $ sudo cp -a ancien-répertoire/* répertoire-travail $ sudo rm -rf ancien-répertoire
![]() |
Astuce |
---|---|
Vous pouvez aussi monter un fichier image de disque vide (consultez Section 10.2.5, « Réaliser le fichier image d'un disque vide ») en tant que périphérique de rebouclage (consultez Section 10.2.3, « Monter le fichier image dur disque »). L’utilisation réelle du disque croît avec les données réellement enregistrées. |
Si vous avez un répertoire vide (par exemple,
« /chemin/vers/répertoire-temporaire
») sur une
autre partition avec de l'espace disponible, vous pouvez le remonter avec
l'option « --bind
» vers un répertoire (par exemple
« répertoire-travail
») où vous avez besoin de place.
$ sudo mount --bind /chemin/vers/répertoire-temporaire répertoire-travail
![]() |
Astuce |
---|---|
Cette méthode est obsolète. Utilisez plutôt Section 9.3.14, « Extension de l'espace de stockage en remontant un autre répertoire » si possible. |
Si vous avez un répertoire vide (par exemple,
« /chemin/vers/répertoire-temporaire
») sur une
autre partition avec de l'espace disponible, vous pouvez créer un lien
symbolique vers ce répertoire avec
ln(8).
$ sudo mv répertoire-travail ancien-répertoire $ sudo mkdir -p /chemin/vers/répertoire-temporaire $ sudo ln -sf /chemin/vers/répertoire-temporaire répertoire-travail $ sudo cp -a ancien-répertoire/* répertoire-travail $ sudo rm -rf ancien-répertoire
![]() |
Avertissement |
---|---|
N'utilisez pas de « liens symboliques vers un répertoire » pour un
répertoire géré par le système comme par exemple
« |
![]() |
Attention |
---|---|
Certains logiciels peuvent ne pas bien fonctionner avec des « liens symboliques vers un répertoire ». |
Si vous avez de l'espace disponible sur une autre partition (par exemple
« /chemin/vers/
»), vous pouvez y créer un
répertoire et empiler cela vers un répertoire où vous avez besoin de place
avec aufs.
$ sudo mv répertoire-travail ancien-répertoire $ sudo mkdir répertoire-travail $ sudo mkdir -p /chemin/vers/répertoire/temporaire $ sudo mount -t aufs -o br:/chemin/vers/répertoire/temporaire:ancien-répertoire none répertoire-travail
![]() |
Attention |
---|---|
L’utilisation de aufs pour le stockage de données à long terme n'est pas une bonne idée car il est en cours de développement et les modifications de sa conceptions peuvent poser des problèmes. |
Avec un accès physique à votre PC, n'importe qui peut facilement obtenir les privilèges de l’administrateur et accéder à tous les fichiers de votre PC (consultez Section 4.7.4, « sécuriser le mot de passe de l’administrateur »). Cela signifie qu'un système mot de passe de connexion ne permet pas de sécuriser vos données personnelles ou sensibles en cas de vol de votre PC. Vous devez déployer des technologies de chiffrements des données pour assurer cette protection. Bien que GNU privacy guard (consultez Section 10.4, « Infrastructure de sécurité des données ») puisse chiffrer des fichiers, il demande quelques efforts de la part de l’utilisateur.
dm-crypt et eCryptfs facilitent de manière native le chiffrement automatique des données par l’intermédiaire de modules du noyau de Linux avec un minimum d'efforts de la part de l’utilisateur.
Tableau 9.9. Liste d'utilitaires de chiffrement des données
paquet | popcon | taille | description |
---|---|---|---|
cryptsetup |
V:46, I:63 | 295 | utilitaires pour chiffrer un périphérique en mode bloc (dm-crypt / LUKS) |
cryptmount |
V:3, I:5 | 342 | utilitaires pour chiffrer un périphérique en mode bloc (dm-crypt / LUKS), l’accent étant mis sur le montage et le démontage par un utilisateur normal |
ecryptfs-utils |
V:4, I:6 | 308 | utilitaires pour systèmes de fichiers empilés (« stackable » chiffrés (eCryptfs) |
Dm-crypt est un système de fichiers chiffré qui utilise device-mapper. Device-mapper effectue le « mapping » d'un périphérique en mode bloc sur un autre.
eCryptfs est un autre système de fichiers chiffré utilisant un système de fichiers empilables. Un système de fichiers empilables s'empile lui-même par dessus un répertoire existant d'un système de fichiers monté.
![]() |
Attention |
---|---|
Le chiffrement des données a un coût en matière de temps processeur, etc. Veuillez comparer ses avantages à son coût. |
![]() |
Note |
---|---|
Le système Debian dans son ensemble peut être installé sur un disque chiffré par l’installateur debian (lenny ou plus récent) en utilisant dm-crypt/LUKS et initramfs. |
![]() |
Astuce |
---|---|
Consultez Section 10.4, « Infrastructure de sécurité des données » pour un utilitaire de chiffrement de l’espace utilisateur : GNU Privacy Guard. |
Vous pouvez chiffrer le contenu des périphériques de masse amovible, par
exemple, une clé g. USB memory stick sur
« /dev/sdx
» en utilisant dm-crypt/LUKS. Il suffit
de le formater de la manière suivantes :
# badblocks -c 1024 -s -w -t random -v /dev/sdx # fdisk /dev/sdx ... "n" "p" "1" "return" "return" "w" # cryptsetup luksFormat /dev/sdx1 ... # cryptsetup luksOpen /dev/sdx1 sdx1 ... # ls -l /dev/mapper/ total 0 crw-rw---- 1 root root 10, 60 2008-10-04 18:44 control brw-rw---- 1 root disk 254, 0 2008-10-04 23:55 sdx1 # mkfs.vfat /dev/mapper/sdx1 ... # cryptsetup luksClose sdx1
Il peut alors être monté simplement comme un périphérique normal sur
« /media/<étiquette_disque>
» à
l’exception de la demande de mot de passe (consultez Section 10.1.10, « Périphériques d'enregistrement amovibles ») sous un environnement de bureau
moderne tel que GNOME en utilisant
gnome-mount(1).
La différence est que toutes les données qui y seront écrites seront
chiffrées. Vous pouvez aussi formater le support dans un format différent,
par exemple ext3 avec « mkfs.ext3 /dev/sdx1
».
![]() |
Note |
---|---|
Si vous êtes vraiment paranoïaque en ce qui concerne la sécurité des données, vous pourrez réécrire par dessus plusieurs fois dans l’exemple ci-dessus. Cette opération est cependant très exigeante en temps. |
Supposons que votre « /etc/fstab
» d'origine
comporte ce qui suit :
/dev/sda7 swap sw 0 0
Vous pouvez chiffrer la partition d'échange en utilisant dm-crypt par ce qui suit :
# aptitude install cryptsetup # swapoff -a # echo "cswap /dev/sda7 /dev/urandom swap" >> /etc/crypttab # perl -i -p -e "s/\/dev\/sda7/\/dev\/mapper\/cswap/" /etc/fstab # /etc/init.d/cryptdisks restart ... # swapon -a
Vous pouvez chiffrer automatiquement les fichiers se trouvant sous
« ~/Private/
» en utilisant eCryptfs et le paquet
ecryptfs-utils
.
Lancez
ecryptfs-setup-private(1)
et configurez « ~/Private/
» en suivant les
invites.
Activez « ~/Private/
» en lançant
ecryptfs-mount-private(1).
Déplacez les fichiers de données sensibles vers
« ~/Private/
» et faites les liens symboliques
à la demande.
Candidats : « ~/.fetchmailrc
»,
« ~/.ssh/identity
»,
« ~/.ssh/id_rsa
»,
« »~/.ssh/id_dsa
» et d'autres fichiers ayant
« go-rwx
»
Déplacez les répertoires ayant des données sensibles vers un sous-répertoire
de « ~/Private/
» et faites les liens
symboliques nécessaires.
Candidats : « ~/.gnupg
» et d'autres
répertoires avec « go-rwx
»
Créez le lien symbolique de
« ~/Desktop/Private/
» vers
« ~/Private/
» pour faciliter les opérations du
bureau.
Désactiver « ~/Private/
» en lançant
ecryptfs-umount-private(1).
Activez « ~/Private/
» à l’aide de
« ecryptfs-mount-private
» lorsque vous avez
besoin de vos données chiffrées.
![]() |
Astuce |
---|---|
Comme eCryptfs ne chiffre que sélectivement
les fichiers sensibles, son coût en matière de ressources système est bien
moindre que l’utilisation de dm-crypt sur
l’ensemble du système de fichiers racine ou sur le périphérique
« |
Si vous utilisez votre mot de passe de connexion pour envelopper les clés de chiffrement, vous pouvez automatiser le montage de eCryptfs par PAM (Pluggable Authentication Modules).
Insérez la ligne suivante juste avant
« pam_permit.so
» dans
« /etc/pam.d/common-auth
» :
auth required pam_ecryptfs.so unwrap
Insérez la ligne suivante en tant que toute dernière ligne de
« /etc/pam.d/common-session
:
session optional pam_ecryptfs.so unwrap
Insérez la ligne suivante comme première ligne active de
« /etc/pam.d/common-password
:
password required pam_ecryptfs.so
C'est assez pratique.
![]() |
Avertissement |
---|---|
Les erreurs de configuration de PAM peuvent vous interdire l’accès à votre propre système. Consultez Chapitre 4, Authentification. |
![]() |
Attention |
---|---|
Si vous utilisez votre mot de passe de connexion pour encapsuler les clés de chiffrement, vos données chiffrées sont aussi sûre que l’est votre mot de passe de connexion (consultez Section 4.3, « Mot de passe de qualité »). À moins que vous ne preniez le soin de définir un mot de passe fort, vos données encourent un risque lorsque quelqu'un lance un logiciel de casse de mots de passe après avoir volé votre ordinateur (consultez Section 4.7.4, « sécuriser le mot de passe de l’administrateur »). |
L’activité des programmes peut être surveillée et contrôlée à l’aide d'outils spécialisés.
Tableau 9.10. Liste des outils de surveillance et de contrôle de l’activité des programmes
paquet | popcon | taille | description |
---|---|---|---|
coreutils |
V:901, I:999 | 14184 | nice(1) : lancer un programme avec une priorité d'ordonnancement modifiée |
bsdutils |
V:826, I:999 | 189 | renice(1) : modifier la priorité d'ordonnancement d'un programme en cours d'exécution |
procps |
V:855, I:999 | 612 |
utilitaires du système de fichiers
« /proc » :
ps(1),
top(1),
kill(1),
watch(1),
…
|
psmisc |
V:672, I:947 | 721 |
utilitaires du système de fichiers
« /proc » :
killall(1),
fuser(1),
peekfd(1),
pstree(1)
|
time
|
V:74, I:876 | 78 | time(1) : lancer un programme qui indique l’utilisation des ressources du système en fonction du temps |
sysstat |
V:74, I:99 | 1311 | sar(1), iostat(1), mpstat(1), … : outils de mesure des performances du système pour Linux |
isag
|
V:0, I:9 | 126 | Générateur interactif de graphes de l’activité système pour sysstat |
lsof
|
V:155, I:924 | 420 |
lsof(8) :
afficher la liste des fichiers ouverts par un processus en cours
d'utilisation en utilisant l’option « -p
|
strace |
V:41, I:252 | 404 | strace(1) : tracer les appels système et les signaux |
ltrace |
V:3, I:24 | 188 | ltrace(1) : tracer les appels de bibliothèque |
xtrace |
V:0, I:1 | 336 | xtrace(1) : tracer la communication entre un client X11 et le serveur |
powertop |
V:8, I:186 | 473 | powertop(1) : information concernant la puissance électrique utilisée sur les portables basés sur Intel |
cron
|
V:894, I:998 | 300 | faire tourner des processus en arrière plan selon un calendrier depuis le démon cron(8) |
anacron |
V:432, I:492 | 163 | ordonnanceur de type cron pour les systèmes qui ne tournent pas 24 heures sur 24 |
at
|
V:508, I:874 | 101 | at(1) ou batch(1) : lancer un travail à une heure déterminée ou en dessous d'un niveau de charge donné |
![]() |
Astuce |
---|---|
Le paquet |
Afficher la durée du processus indiqué dans la commande.
# time une_commande >/dev/null real 0m0.035s # temps horloge (temps réel écoulé) user 0m0.000s # temps en mode utilisateur sys 0m0.020s # temps en mode noyau
Une valeur de politesse (« nice » est utilisée pour contrôler la priorité d'ordonnancement du processus.
Tableau 9.11. Liste des valeurs de politesse pour la priorité d'ordonnancement
valeur de politesse | priorité d'ordonnancement |
---|---|
19 | la plus base priorité d'un processus (poli) |
0 | très haute priorité de processus pour un utilisateur |
-20 | très haute priorité d'un processus pour root (non poli) |
# nice -19 top # très poli # nice --20 wodim -v -eject speed=2 dev=0,0 disk.img # très rapide
Parfois, une valeur extrême de politesse (« nice ») fait plus de mal que de bien au système. Utilisez cette commande avec précautions.
La commande ps(1) sous Debian comporte à la fois les fonctionnalités de BSD et de SystemV, elle aide à identifier l’activité des processus de manière statique.
Tableau 9.12. Liste des styles de la commande ps
style | commande typique | fonction |
---|---|---|
BSD |
ps aux
|
afficher %CPU %MEM |
System V |
ps -efH
|
afficher le PPID |
Les processus fils zombies (« defunct ») peuvent être tués par
l’identifiant de processus de leur paren identifié dans la champ
« PPID
»
La commande pstree(1) affiche une arborescence des processus.
top(1) sous Debian a de riches fonctionnalités et aide à identifier de manière dynamique quels sont les processus qui ont une activité curieuse.
Tableau 9.13. Liste des commandes pour top
touche de commande | description de la réponse |
---|---|
h ou ?
|
afficher l’aide |
f
|
définir / réinitialiser le champ |
o
|
réordonner les champ affichés |
F
|
définir le champ-clé pour le tri |
k
|
tuer un processus |
r
|
modifier la politesse d'un processus |
q
|
quitter la commande top .
|
Vous pouvez afficher la liste des fichiers ouverts par un processus avec un identifiant de processus (PID), par exemple de 1 en faisant ce qui suit :
$ sudo lsof -p 1
PID=1 est habituellement le programme init
.
Vous pouvez tracer l’activité d'un programme avec strace(1), ltrace(1) ou xtrace(1) pour les appels système, les appels bibliothèque ou la communication entre le serveur et le client X11.
Vous pouvez tracer les appels système de la commande ls
de la manière suivante :
$ sudo strace ls
Vous pouvez aussi identifier les processus qui utilisent des fichiers par
fuser(1),
par exemple pour « /var/log/mail.log
» en
faisant ce qui suit :
$ sudo fuser -v /var/log/mail.log UTIL. PID ACCÈS COMMANDE /var/log/mail.log: root 2946 F.... rsyslogd
Vous voyez que le fichier « /var/log/mail.log
»
est ouvert en écriture par la commande
rsyslogd(8).
Vous pouvez aussi identifier le processus qui utilisent des sockets par
fuser(1),
par exemple, pour « smtp/tcp
» par ce qui
suit :
$ sudo fuser -v smtp/tcp USER PID ACCESS COMMAND smtp/tcp: Debian-exim 3379 F.... exim4
Vous savez maintenant que exim4(8) tourne sur votre système pour gérer les connexions TCP du port SMTP (25).
watch(1) execute un programme de manière répétitive avec un intervalle constant tout en affichant sa sortie en plein écran.
$ watch w
Cela permet d'afficher, mis à jour toutes les deux secondes, qui est connecté au système.
Il existe plusieurs manières de répéter une boucle de commande entre des
fichiers correspondant à une condition, par exemple, correspondant au motif
« glob » « *.ext
».
Méthode de la boucle « for» » de l’interpréteur de commandes (consultez Section 12.1.4, « Boucles de l’interpréteur de commandes ») :
for x in *.ext; do if [ -f "$x"]; then commande "$x" ; fi; done
combinaison de find(1) et de xargs(1) :
find . -type f -maxdepth 1 -name '*.ext' -print0 | xargs -0 -n 1 commande
find(1)
avec l’option « -exec
» avec une
commande :
find . -type f -maxdepth 1 -name '*.ext' -exec commande '{}' \;
find(1)
avec l’option « -exec
» avec un court script de
l’interpréteur :
find . -type f -maxdepth 1 -name '*.ext' -exec sh -c "commande '{}' && echo 'succès'" \;
Les exemple ci-dessus ont été écrits afin d'assurer une prise en compte correcte de noms de fichiers étranges tels que ceux qui comportent des espaces. Consultez Section 10.1.5, « Idiomes pour la sélection de fichiers » pour une utilisation avancée de find(1).
Vous pouvez définir le lancement d'un processus depuis l’interface utilisateur graphique (GUI).
Sous l’environnement de bureau GNOME, un programme peut être lancé avec les paramètres corrects par un double-clic sur l’icône de lancement, par glisser-déposer de l’icône d'un fichier sur l’icône du lanceur ou par le menu « Ouvrir avec… » que l’on obtient par un clic droit sur l’icône d'un fichier. KDE peut aussi faire la même chose.
Voici un exemple sous GNOME pour créer une icône de lanceur pour mc(1) lancé dans gnome-terminal(1).
Créez un programme exécutable « mc-term
» en
effectuant ce qui suit :
# cat >/usr/local/bin/mc-term <<EOF #!/bin/sh gnome-terminal -e "mc \$1" EOF # chmod 755 /usr/local/bin/mc-term
Créez un lanceur sur le bureau comme suit :
Faites un clic-droit sur le bureau et sélectionnez « ;Créer un
lanceur…
» ;
Définissez « Type » à
« Application
» ;
Définissez « Nom » à « mc
» ;
Définissez « Commande » à « mc-term
%f
» ;
Cliquez « Valider ».
Créez une association « ouvrir avec » comme suit :
Faites un clic-droit sur le dossier pour sélectionner « Ouvrir
avec une autre application …
» :
Cliquer pour ouvrir fenêtre « Utiliser une commande
personnalisée » et entrez « mc-term %f
».
Cliquez « Ouvrir ».
![]() |
Astuce |
---|---|
Le lanceur est un fichier de « |
Certains programmes lancent automatiquement d'autres programmes. Voici des points-clés pour la personnalisation de ce processus :
Menu de configuration des applications :
bureau GNOME : « Système » → « Préférences » → « Applications préférées »
bureau KDE : « K » → « Centre de contrôle » → « Composants KDE » → « Sélection de composant »
navigateur Iceweasle : « Éditer » → « Préférences » → « Applications »
mc(1) :
« /etc/mc/mc.ext
»
des variables d'environnement telles que
« $BROWSER
»,
« $EDITOR
»,
« $VISUAL
» et
« $PAGER
» (consultez
eviron(7))
le système
update-alternatives(8)
pour des programmes tels que « editor
»,
« view
»,
« x-www-browser
»,
« gnome-www-browser
» et
« www-browser
» (consultez Section 1.4.7, « Définir un éditeur de texte par défaut »)
le contenu des fichiers « ~/.mailcap
» et
« /etc/mailcap
» qui associe un type MIME avec un programme (consultez
mailcap(5))
le contenu des fichiers « ~/.mime.types
» et
« /etc/mime.types
» qui associe l’extension du
nom de fichier avec un type MIME (consultez
run-mailcap(1))
![]() |
Astuce |
---|---|
update-mime(8)
met à jour le fichier ≤ |
![]() |
Astuce |
---|---|
Le paquet |
![]() |
Astuce |
---|---|
De façon à faire tourner une application de console telle que
|
# cat /usr/local/bin/mutt-term <<EOF #!/bin/sh gnome-terminal -e "mutt \$@" EOF chmod 755 /usr/local/bin/mutt-term
Utilisez kill(1) pour tuer (ou envoyer un signal à) un processus avec son identifiant de processus.
Utilisez killall(1) ou pkill(1) pour faire la même chose avec le nom de commande du processus et d'autres attributs.
Tableau 9.14. Liste des signaux couramment utilisés avec la commande kill
valeur du signal | nom du signal | fonction |
---|---|---|
1 | HUP | redémarrer le démon |
15 | TERM | tuer normalement |
9 | KILL | tuer « dur » |
Exécutez de la manière suivante la commande at(1) pour planifier un travail qui s'exécute une fois
$ echo 'command -args'| at 3:40 monday
Utilisez cron(8) pour planifier des tâches qui s'exécutent régulièrement. Consultez crontab(1) et crontab(5).
Vous pouvez planifier le lancement des processus en tant qu'utilisateur
normal, par exemple toto
en créant un fichier
crontab(5)
file comme « /var/spool/cron/crontabs/toto
»
avec la commande « crontab -e
».
Voici un exemple de fichier crontab(5).
# utilise /bin/sh pour exécuter les commandes, quoi que dise /etc/passwd SHELL=/bin/sh # envoie un courrier électronique à Paul contenant tous les résultats, # quelle que soit la personne à qui appartienne la crontab MAILTO=paul # Minute Heure JourDuMois Mois JourDeLaSemaine commande # est exécuté à 00:05 chaque jour 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # est exécuté à 14:15 le 1e de chaque mois -- le résultat est envoyé à Paul # par courrier électronique 15 14 1 * * $HOME/bin/monthly # est exécuté à 22:00 chaque jour de la semaine(1-5), ennuie Joe. # % pour une nouvelle ligne, dernier % pour cc: 0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%.%% 23 */2 1 2 * echo "run 23 minutes after 0am, 2am, 4am ..., on Feb 1" 5 4 * * sun echo "run at 04:05 every sunday" # est exécuté à 03:40 le premier lundi de chaque mois 40 3 1-7 * * [ "$(date +%a)" == "Mon" ] && command -args
![]() |
Astuce |
---|---|
Sur un système qui ne tourne pas en permanence, installez le paquet
|
![]() |
Astuce |
---|---|
Vous pouvez lancer périodiquement les scripts de maintenance planifiée du
système,depuis le compte de l’administrateur en les plaçant dans
« |
Une assurance contre le mauvais fonctionnement du système est fournie par l’option de compilation du noyau « Magic SysRq key » (touche SAK) qui est maintenant une valeur par défaut pour les noyaux de Debian. Presser Alt-SysRq (NDT : Alt-Sys ou Alt-Impr écran sur un clavier français) suivi par une des touches suivantes permet de reprendre par magie le contrôle du système.
Tableau 9.15. Listes des touches de commande SAK (« Secure attention keys »)
touche suivant Alt-Sys | description de l’action |
---|---|
r
|
restaurer le clavier depuis le mode raw (brut)à après un plantage de X |
0
|
changer le niveau de journalisation de la console à 0 afin de réduire les messages d'erreurs |
k
|
kill (tuer) tous les processus sur la console virtuelle actuelle |
e
|
envoyer un SIGTERM à tous les processus, sauf init(8) |
i
|
envoyer un SIGKILL à tous les processus, sauf init(8) |
s
|
synchroniser tous les systèmes de fichiers montés |
u
|
remonter en lecture seule tous les systèmes de fichiers montés (umount) |
b
|
reboot (redémarrer) le système sans effectuer de synchronisation ni de démontage |
La combinaison de « Alt-Sys s », « Alt-Sys u » et « Alt-Sys r » permet de se tirer de situation vraiment désastreuses.
Consultez
« /usr/share/doc/linux-doc-2.6.*/Documentation/sysrq.txt.gz
».
![]() |
Attention |
---|---|
la fonctionnalité Alt-SysRq peut être considérée comme un risque de sécurité
permettant à des utilisateurs d'accéder à des fonctions ayant le privilège
de l’administrateur. Placer « |
![]() |
Astuce |
---|---|
Depuis un terminal SSH, etc., vous pouvez utiliser la fonctionnalité
Alt-SysRq en écrivant ver
« |
Vous pouvez rechercher qui se trouve sur le système par les commandes suivantes :
who(1) affiche qui est connecté.
w(1) affiche qui est connecté et ce qu'il font.
last(1) affiche une liste des derniers utilisateurs connectés.
lastb(1) affiche une liste des utilisateurs s'étant mal connectés.
![]() |
Astuce |
---|---|
« |
Vous pouvez envoyer un message à toutes les personnes connectée au système avec wall(1) en faisant ce qui suit :
$ echo "Nous allons arrêter le système dans une heure" | wall
Pour les périphériques similaires à PCI (AGP, PCI-Express,
CardBus, ExpressCard, etc.),
lspci(8)
(probablement avec l’option « -nn
») est un bon
point de départ pour l’identification du matériel
Vous pouvez aussi identifier le matériel en lisant le contenue de
« /proc/bus/pci/devices
» ou en parcourant
l’arborescence de répertoires se trouvant sous
« /sys/bus/pci
» (consultez Section 1.2.12, « procfs et sysfs »).
Tableau 9.16. Listes des outils d'identification du matériel
paquet | popcon | taille | description |
---|---|---|---|
pciutils |
V:173, I:974 | 889 | utilitaires PCI de Linux : lspci(8) |
usbutils |
V:277, I:916 | 630 | utilitaires USB de Linux : lsusb(8) |
pcmciautils |
V:54, I:175 | 121 | utilitaires PCMCIA pour Linux 2.6 : pccardctl(8) |
scsitools |
V:1, I:8 | 316 | collection d'outils pour la gestion des périphériques SCSI : lsscsi(8) |
procinfo |
V:2, I:25 | 164 |
informations sur le systèmes obtenue dans
« /proc » :lsdev(8)
|
lshw
|
V:12, I:87 | 653 | informations concernant la configuration matérielle : lshw(1) |
discover |
V:53, I:690 | 66 | système d'identification du matériel : discover(8) |
Bien que la plupart de la configuration du matériel puisse être gérée au moyen des outils graphiques qui accompagnent les environnement de bureau graphiques modernes comme GNOME et KDE, c'est une bonne idée de connaître certaines méthodes de base permettant de le configurer.
Tableau 9.17. Liste des outils de configuration du matériel
paquet | popcon | taille | description |
---|---|---|---|
hal
|
V:182, I:245 | 1495 | Couche d'abstraction matériel (HAL) : lshal(1) |
console-tools |
V:156, I:328 | 956 | Police de la console Linux et utilitaires de table de caractères |
x11-xserver-utils |
V:368, I:563 | 485 | utilitaires pour le serveur X server : xset(1), xmodmap(1) |
acpid
|
V:530, I:938 | 188 | démon servant à gérer les événements délivrés par l’Interface avancée de gestion de la configuration et de l’alimentation ACPI (« Advanced Configuration and Power Interface ») |
acpi
|
V:57, I:730 | 70 | utilitaire d'affichage des informations des périphériques ACPI |
apmd
|
V:10, I:122 | 252 | démon de gestion es événements délivrés par la gestion avancée de l’alimentation APM (« Advanced Power Management ») |
noflushd |
V:0, I:0 | 248 | démon permettant d'arrêter la rotation des disques durs inactifs |
sleepd |
V:0, I:1 | 148 | démon permettant de mettre un ordinateur portable en veille lorsqu'il est inactif |
hdparm |
V:218, I:568 | 284 | optimisation de l’accès aux disques durs (consultez Section 9.3.8, « Optimisation du disque dur ») |
smartmontools |
V:71, I:243 | 1156 | contrôler et surveiller les systèmes de stockage en utilisant S.M.A.R.T. |
setserial |
V:10, I:23 | 141 | collection d'outils pour gérer les ports série |
memtest86+ |
V:4, I:71 | 2342 | collection d'outils pour gérer la mémoire physique |
scsitools |
V:1, I:8 | 316 | collection d'outils pour gérer le matériel SCSI |
tpconfig |
V:2, I:5 | 164 | utilitaire pour configurer les pavés tactiles (touchpad) |
setcd
|
V:0, I:2 | 28 | optimisation de l’accès au lecteur de CD |
big-cursor |
I:1 | 68 | curseurs de souris plus grands pour X |
Ici, ACPI est une infrastructure de gestion de l’alimentation électrique du système plus récente qu'APM.
![]() |
Astuce |
---|---|
La gestion de la fréquence d'horloge des processeurs modernes est gérée par
des modules du noyaux tels que |
Ce qui suit permet de définir l’heure du système et du matériel à MM/DD hh:mm, CCYY :
# date MMDDhhmmCCYY # hwclock --utc --systohc # hwclock --show
Sur un système Debian l’heure est normalement affichée en heure locale mais l’heure système et matérielle utilisent habituellement l’heure TU(GMT).
Si l’heure matérielle (BIOS) est réglée en TU, modifiez le réglage pour
« UTC=yes
» dans le fichier
« /etc/default/rcS
».
Si vous désirez ajuster l’heure de votre système par l’intermédiaire du
réseau, vous pouvez envisager l’utilisation du service NTP avec un paquet tel que ntp
,
ntpdate
ou chrony
.
Consultez ce qui suit :
HOWTO Gérer de manière précise la date et l’heure (« Managing Accurate Date and Time HOWTO »)
Le paquet ntp-doc
![]() |
Astuce |
---|---|
ntptrace(8)
du paquet |
Il y a plusieurs composants pour configurer la console en mode caractères et les fonctionnalités du système ncurses(3).
Le fichier « /etc/terminfo/*/*
»
(terminfo(5))
La variable d'environnement
« $TERM
»(term(7))
setterm(1), stty(1), tic(1) et toe(1)
Si l’entrée terminfo
pour xterm
ne
fonctionne pas avec un xterm
non Debian, modifiez votre
type de terminal dans « $TERM
» de
« xterm
» pour une version version limitée en
fonctionnalités comme « xterm-r6
» lorsque
vous-vous connectez à distance à un système Debian. Consultez
« /usr/share/doc/libncurses5/FAQ
» pour
davantage d'informations. « dumb
» est le plus
petit dénominateur commun pour « $TERM
».
Les pilotes de périphériques des cartes sons pour les versions actuelles de Linux 2.6 sont fournies par Advanced Linux Sound Architecture (ALSA). ALSA fournit un mode d'émulation du système Open Sound System (OSS) précédent pour des raisons de compatibilité.
Lancez « dpkg-reconfigure linux-sound-base
»
pour indiquer au système de son d'utiliser ALSA en mettant en liste noire
les modules du noyau. À moins que vous n'ayez un matériel très récent pour
le son, l’infrastructure udev devrait pouvoir configurer votre système de
son.
![]() |
Astuce |
---|---|
Utilisez « |
![]() |
Astuce |
---|---|
Si vous n'arrivez pas à obtenir de sons, il est possible que votre
haut-parleur soit connecté à une sortie muette (« muted »). Les
système de son modernes ont de nombreuses
sorties.
alsamixer(1)
du paquet |
Les logiciels applicatifs peuvent être configurés pour non seulement pour accéder au périphériques sonores directement mais aussi pour y accéder par l’intermédiaire d'un système de serveur de son.
Tableau 9.18. Liste des paquets son
paquet | popcon | taille | description |
---|---|---|---|
linux-sound-base |
V:265, I:365 | 128 | paquet de base pour les systèmes de son ALSA et OSS |
alsa-base |
V:18, I:510 | 130 504 | Fichiers de configuration du pilote ALSA |
alsa-utils |
V:368, I:512 | 1998 | utilitaires de configuration et d'utilisation d'ALSA |
oss-compat |
V:96, I:184 | 53 |
Compatibilité OSS sous ALSA évitant les erreurs « /dev/dsp not
found »
|
jackd
|
V:6, I:32 | 32 | serveur du kit de connexion audio JACK. (JACK) (faible latence) |
libjack0 |
I:104 | 137 | bibliothèque du kit de connexion JACK. (JACK) (faible latence) |
nas
|
V:1, I:1 | 267 | serveur du système audio réseau (NAS) |
libaudio2 |
V:177, I:481 | 179 | bibliothèque du serveur audio réseau (NAS) |
pulseaudio |
V:151, I:193 | 4722 | serveur PulseAudio, remplaçant d'ESD |
libpulse0 |
V:280, I:562 | 802 | PulseAudio bibliothèque du client, remplace ESD |
libgstreamer0.10-0 |
V:370, I:549 | 3919 | GStreamer : moteur de son de GNOME |
libxine1 |
I:184 | 1 | xine : ancien moteur de son de KDE |
libphonon4 |
I:263 | 574 | Phonon : moteur de son de KDE |
Il y a habituellement un moteur de son commun pour chacun des environnements de bureau les plus courants. Chaque moteur de son utilisé par l’application peut choisir de se connecter à un serveur de son différent.
Pour désactiver l’écran de veille, utilisez les commandes suivantes :
Tableau 9.19. Liste des commandes pour désactiver l’économiseur d'écran
environnement | commande |
---|---|
Console Linux |
setterm -powersave off
|
Système X Window (couper l’économiseur d'écran) |
xset s off
|
X Window (désactive dpms) |
xset -dpms
|
X Window (interface de configuration graphique et économiseur d'écran) |
xscreensaver-command -prefs
|
On peut toujours débrancher le haut-parleur du PC pour désactiver les
bips. La suppression du module du noyau pcspkr
le fait
pour vous.
Ce qui suit évite que le programme
readline(3)
utilisé
parbash(1)
ne bippe lors d'un « \a
» (ASCII=7).
$ echo "set bell-style none">> ~/.inputrc
Le message de démarrage du noyau dans
« /var/log/dmesg
» donne exactement la taille
de la mémoire disponible.
free(1) et top(1) affichent des informations concernant les ressources mémoire sur le système actif.
# grep '\] Memory' /var/log/dmesg [ 0.004000] Memory: 990528k/1016784k available (1975k kernel code, 25868k reserved, 931k data, 296k init) $ free -k total used free shared buffers cached Mem: 997184 976928 20256 0 129592 171932 -/+ buffers/cache: 675404 321780 Swap: 4545576 4 4545572
![]() |
Astuce |
---|---|
Ne vous inquiétez pas de la taille importante de
« |
Pour mon MacBook avec 1Go=1048576k DRAM (la mémoire vidéo en prend une partie), je peux voir ce qui suit :
Tableau 9.20. Taille mémoire affichée
affiché | taille |
---|---|
Taille totale dans dmesg | 1016784k = 1Go - 31792k |
Libre dans dmesg | 990528k |
Total sous l’interpréteur de commandes | 997184k |
Libre sous l’interpréteur de commandes | 20256k (mais réellement 321780k) |
Une mauvaise maintenance du système peut rendre votre système vulnérable à une attaque externe.
Pour la vérification de la sécurité et de l’intégrité du système, vous pouvez démarrer avec ce qui suit :
Le paquet debsums
, consultez
debsums(1)
et Section 2.5.2, « Fichier « Release » de plus haut niveau et authenticité ».
Le paquet chkrootkit
, consultez
chkrootkit(1).
La familles de paquets clamav
, consultez
clamscan(1)
et
freahclam(1).
Tableau 9.21. Liste d'outils pour la vérification et la sécurité et de l’intégrité du système
paquet | popcon | taille | description |
---|---|---|---|
logcheck |
V:22, I:30 | 218 | démon pour poster à l’administrateur les anomalies des fichiers journaux du système |
debsums |
V:21, I:41 | 199 | utilitaire pour vérifier les fichiers des paquets installés d'après leur somme de contrôle MD5 |
chkrootkit |
V:16, I:55 | 920 | détecteur de rootkit. |
clamav |
V:22, I:91 | 593 | utilitaire anti-virus pour UNIX ‑ interface en ligne de commandes. |
tiger
|
V:7, I:9 | 2374 | signale les vulnérabilités du système pour la sécurité |
tripwire |
V:6, I:7 | 9049 | vérificateur d'intégrité des fichiers et répertoires |
john
|
V:6, I:22 | 472 | outils de casse des mots de passe actifs |
aide
|
V:2, I:3 | 1351 | Environnement avancé de détection d'intrusion (« Advanced Intrusion Detection Environment ») - bibliothèque statique |
bastille |
V:0, I:1 | 1960 | outil de renforcement de la sécurité |
integrit |
V:0, I:1 | 440 | programme de vérification de l’intégrité des fichiers |
crack
|
V:0, I:1 | 160 | programme pour deviner les mots de passe |
Voici un script simple pour rechercher des fichiers typiques ayant des permissions incorrectes d'écriture pour tout le monde.
# find / -perm 777 -a \! -type s -a \! -type l -a \! \( -type d -a -perm 1777 \)
![]() |
Attention |
---|---|
Comme me paquet |
Debian distribue des noyaux Linux modulaires sous forme de paquets pour les architectures prises en compte.
Le noyau Linux 2.6 possède quelques fonctionnalités remarquable comparé à 2.4.
Les périphériques sont créés par le système udev (consultez Section 3.5.11, « Le système udev »).
Les accès en lecture et écriture aux périphériques CD et DVD IDE CD/DVD
n'utilisent plus le module ide-scsi
.
Les fonctions de filtrage des paquets réseau utilisent les modules
iptable
du noyau.
De nombreuses fonctionnalité du noyau peuvent être configurées par l’intermédiaire de paramètres du noyau de la manière suivante :
Paramètres du noyau initialisés par le gestionnaire d'amorçage (consultez Section 3.3, « Étage 2 : le chargeur initial »)
Paramètres du noyau modifiés par sysctl(8) lors du fonctionnement du système pour ceux auxquels on a accès par l’intermédiaire de sysfs (consultez Section 1.2.12, « procfs et sysfs »)
Paramètres des modules définis par les paramètres de modprobe(8) lors de l’activation d'un module (consultez Section 10.2.3, « Monter le fichier image dur disque »)
Consultez « kernel-parameters.txt(.gz)
» et
d'autres documents en rapport dans la documentation du noyau de Linux
(« /usr/share/doc/linux-doc-2.6.*/Documentation/filesystems/*
»)
fournie par le paquet linux-doc-2.6.*
.
La plupart des programmes normaux n'ont
pas besoin des en-têtes du noyau et peuvent de fait être cassés si vous les
utilisez directement pour la compilation. Il devront être compilés avec les
en-têtes se trouvant dans
« /usr/include/linux
» et
« /usr/include/asm
» qui sont fournis, sur les
systèmes Debian, par le paquet libc6-dev
(créé à partir
du paquet source glibc
).
![]() |
Note |
---|---|
Pour compiler certains programmes spécifiques au noyau, comme les modules du
noyau, à partir de sources externes et le démon de montage automatique
( |
Debian a sa propre manière de compiler le noyau et les modules associés.
Tableau 9.22. Liste des paquets-clés à installer pour la compilation du noyau sur un système Debian
paquet | popcon | taille | description |
---|---|---|---|
build-essential |
I:477 | 48 |
paquets essentiels pour la construction de paquets Debian :
make , gcc , …
|
bzip2
|
V:491, I:812 | 91 | utilitaires de compression et de décompression des fichiers bz2 |
libncurses5-dev |
V:25, I:216 | 1008 | bibliothèques de développement et documentations pour ncurses |
git
|
V:130, I:414 | 13134 | git :: système distribué de contrôle de version utilisé par le noyau de Linux |
fakeroot |
V:56, I:494 | 317 | fournit l’environnement fakeroot pour construire le paquet sans être administrateur (« root ») |
initramfs-tools |
V:408, I:985 | 323 | outil pou construire une image mémoire initiale (« initramds ») (spécifique à Debian) |
dkms
|
V:79, I:209 | 191 | prise en charge dynamique des modules du noyau (dynamic kernel module support : DKMS) (générique) |
devscripts |
V:16, I:91 | 1526 | scripts d'assistance pour un responsable de paquet Debian (spécifique à Debian) |
Si vous utilisez un initrd
in Section 3.3, « Étage 2 : le chargeur initial », veuillez lire les informations
correspondantes dans
initramfs-tools(8),
update-initramfs(8),
mkinitramfs(8)
and
initramfs.conf(5).
![]() |
Avertissement |
---|---|
Ne mettez pas de liens symboliques vers le répertoire de l’arborescence des
source (par exemple « |
![]() |
Note |
---|---|
Lors de la compilation du dernier noyau de Linux sous un système Debian
|
![]() |
Note |
---|---|
Le gestionnaire de modules
dynamique du noyau (« dynamic kernel module support
(DKMS) » est une nouvelle architecture indépendant de la
distribution conçue pour permettre la mise à jour de modules individuels du
noyau sans modifier l’ensemble du noyau. Cela sera approuvé pour la
maintenance des modules externes à l’arborescence du noyau pour
|
Pour construire des paquets binaires d'un noyau personnalisé à partir des
sources du noyau amont, vous devriez utiliser la cible
« deb-pkg
» fournie pour cela.
$ sudo apt-get build-dep linux-2.6 $ cd /usr/src $ wget http://www.kernel.org/pub/linux/kernel/v3.2/linux-<version>.tar.bz2 $ tar -xjvf linux-<version>.tar.bz2 $ cd linux-<version> $ cp /boot/config-<version> .config $ make menuconfig ... $ make deb-pkg
![]() |
Astuce |
---|---|
Le paquet linux-source-<version> fournit les sources du noyau Linux
avec les correctifs Debian en tant que
« |
Pour construire des paquets binaires particuliers à partir du paquet source
Debian, vous devriez utiliser les cibles
« binary-arch_<architecture>_<jeu_de_fonctionnalités>_<saveur>
»
dans « debian/rules.gen
».
$ sudo apt-get build-dep linux-2.6 $ apt-get source linux-2.6 $ cd linux-2.6-* $ fakeroot make -f debian/rules.gen binary-arch_i386_none_686
Consultez les renseignements complémentaires :
wiki Debian : KernelFAQ ;
wiki Debian : DebianKernel ;
Manuel du noyau Linux Debian : http://kernel-handbook.alioth.debian.org.
Le pilote de matériel est le code s'exécutant sur le système cible. Le
plupart des pilotes de matériel sont maintenant disponibles sont forme de
logiciels libres et font partie des paquets Debian du noyau dans la section
main
.
Pilote de processeur graphique
Pilote Intel (main
)
Pilote AMD ou ATI (main
)
Pilote NVIDIA (main
pour le pilote nouveau et non-free
pour les
pilotes binaires pris en charge par le constructeur)
Pilote de Softmodem
Paquets martian-modem et sl-modem-dkms (non libres
)
Le microprogramme est le code ou les données chargées sur le périphérique (par exemple le microcode de processeur, le code de rendu exécuté sur les processeurs graphiques, ou les données de FPGA ou de CPLD, etc.) Certains paquets de microprogramme sont disponibles sous forme de logiciel libre, mais beaucoup de paquets de microprogramme ne le sont pas car ils contiennent des données binaires sans source.
firmware-linux-free (main
)
firmware-linux-nonfree (non libre
)
firmware-linux-* (non libre
)
*-firmware (non libre
)
intel-microcode (non libre
)
amd64-microcode (non libre
)
Veuillez remarquer que les paquets de non-free
et
contrib
ne font pas partie du système Debian. La
configuration pour activer et désactiver les sections
non-free
et contrib
est décrite en
Section 2.1.4, « Bases concernant l’archive Debian ». Vous devriez être conscient des
aspects négatifs associés à l'utilisation de paquets de
non-free
et contrib
décrits en Section 2.1.5, « Debian est totalement libre ».
L’utilisation d'un système virtualisé nous permet de faire tourner simultanément plusieurs instances du système sur une plateforme unique.
![]() |
Astuce |
---|---|
Consultez http://wiki.debian.org/SystemVirtualization . |
Il a plusieurs paquets associés à la virtualization l’émulation du système sous Debian au-delà d'un simple chroot. Certains paquets vous facilitent la mise en place d'un tel système.
Tableau 9.23. Liste des outils de virtualisation
paquet | popcon | taille | description |
---|---|---|---|
schroot |
V:9, I:13 | 2648 | outil spécialisé pour l’exécution d'un paquet binaire de Debian dans un chroot |
sbuild |
V:0, I:3 | 456 | outil pour construire des paquets binaires de Debian depuis les sources Debian |
pbuilder |
V:3, I:25 | 993 | constructeur personnel de paquets pour des paquets Debian |
debootstrap |
V:12, I:93 | 226 | amorcer un système Debian de base (écrit en sh) |
cdebootstrap |
V:1, I:13 | 66 | amorcer le système Debian (écrit en C) |
rootstrap |
V:0, I:1 | 97 | outil pour construire des images d'un système de fichiers de Linux complet |
virt-manager |
V:8, I:25 | 6132 | Gestionnaire de machine virtuelle : application du gestionnaire de bureau pour la gestion des machines virtuelles |
libvirt-bin |
V:54, I:86 | 4467 | programmes pour la bibliothèque libvirt |
user-mode-linux |
V:0, I:3 | 24015 | User-mode Linux (noyau) |
bochs
|
V:0, I:2 | 3018 | Bochs :: émulateur PC IA-32 |
qemu
|
I:60 | 370 | QEMU : émulateur de processeur générique rapide |
qemu-system |
V:35, I:62 | 80774 | QEMU : binaires pour l’émulation d'un système complet |
qemu-user |
V:5, I:58 | 47014 | QEMU : binaires pour l’émulation en mode utilisateur |
qemu-utils |
V:12, I:115 | 1496 | QEMU : utilitaires |
qemu-kvm |
V:51, I:92 | 5040 | KVM : virtualisation complète sur les plateformes x86 ayant une virtualisation assistée par le matériel |
virtualbox-ose |
V:8, I:30 | 118 | VirtualBox : solution de virtualisation x86 sur i386 et amd64 |
xen-tools |
V:1, I:15 | 604 | outil pour gérer le serveur virtuel XEN de debian |
wine
|
I:112 | 80 | Wine : implémentation de l’API Windows (suite standard) |
dosbox |
V:5, I:26 | 2526 | DOSBox : émulateur x86 emulator avec graphisme Tandy/Herc/CGA/EGA/VGA/SVGA, son et DOS |
dosemu |
V:2, I:9 | 4820 | DOSEMU : l’émulateur DOS de Linux |
vzctl
|
V:6, I:9 | 657 | OpenVZ solution de virtualisation de serveur - outils de contrôle |
vzquota |
V:6, I:9 | 204 | OpenVZ solution de virtualisation de serveur - outils de quota |
lxc
|
V:2, I:7 | 707 | Conteneurs Linux outils de l’espace utilisateur |
Consultez l’article de Wikipedia Comparaison de machines pour plateforme virtuelle pour une comparaison détaillées entre les différentes solutions de plateformes de virtualisation.
![]() |
Note |
---|---|
Certaines fonctionnalités décrites ici ne sont disponibles que dans
|
![]() |
Note |
---|---|
Les noyaux par défaut de Debian prennent en charge KVM depuis |
La virtualisation met en œuvre plusieurs étapes :
Créer un système de fichiers vide (une arborescence de fichiers ou une image disque).
L’arborescence de fichiers peut être créée par « mkdir -p
/path/to/chroot
».
L’image disque brute peut être créée à l’aide de dd(1) (consultez Section 10.2.1, « Créer le fichier image du disque » et Section 10.2.5, « Réaliser le fichier image d'un disque vide »).
qemu-img(1) peut être utilisé pour créer et convertir des fichiers d'image disque pris en charge par QEMU.
Les formats de fichier brut et VMDK peuvent être utilisés en tant que formats courants par les outils de virtualisation.
Monter l’image disque dans le système de fichiers avec mount(8) (optionnel).
Pour l’image disque brute, le montage doit être fait avec un périphérique de rebouclage ou des périphériques device mapper (consultez Section 10.2.3, « Monter le fichier image dur disque »).
Le montage des images disques prises en charge par QEMU seront montées en tant que périphériques réseau en mode bloc> (consultez Section 9.8.3, « Monter le fichier image du disque virtuel »).
Peupler le système de fichiers cible avec les données requises.
L’utilisation de programmes tels que debootstrap
et
cdebootstrap
facilitent ce processus (consultez Section 9.8.4, « Système protégé (chroot) »).
Utiliser les installateurs des systèmes d'exploitation sous l’émulation du système complet.
Lancer un programme dans l’environnement virtualisé.
chroot fournit un environnement virtualisé de base, suffisant pour y compiler des programmes, y faire tourner des applications en mode console et des démons.
QEMU fournit une émulation de processeur interplateformes.
QEMU avec KVM fournit une émulation système complète avec la virtualisation assistée par le matériel.
VirtualBox fournit une émulation du système complet sur i386 amd64 avec ou sans la virtualisation assistée par le matériel.
Pour le fichier image disque brut, consultez Section 8.3, « Les paramètres linguistiques (« locale ») ».
Pour d’autre fichiers d’images disques virtuels, vous pouvez utiliser
qemu-nbd(8)
pour les exporter en utilisant le protocole network block device et en les montant à
l’aide du module nbd
du noyau.
qemu-nbd(8) gère les formats de disques pris en compte par QEMU : QEMU gère les formats de disques suivants raw, qcow2, qcow, vmdk, vdi, bochs, cow (user-mode Linux copy-on-write), parallels, dmg, cloop, vpc, vvfat (VFAT virtuelle) et host_device.
Le network block device peut gérer
des partitions de la même manière que le périphérique de rebouclage (« loop
device » (consultez Section 10.2.3, « Monter le fichier image dur disque »). Vous pouvez monter la première
partition de « disk.img
» de la manière
suivante :
# modprobe nbd max_part=16 # qemu-nbd -v -c /dev/nbd0 disk.img ... # mkdir /mnt/part1 # mount /dev/nbd0p1 /mnt/part1
![]() |
Astuce |
---|---|
Vous ne pouvez exporter que la première partition de
« |
chroot(8) propose la plupart des moyen simple de faire tourner simultanément plusieurs instances de l’environnement GNU/Linux sur un même système sans redémarrer.
![]() |
Attention |
---|---|
Les exemple ci-dessous supposent que le système père et le système chroot partagent tous les deux la même architecture de processeur. |
Vous pouvez apprendre comment configurer et utiliser chroot(8) en lançant le programme pbuilder(8) sous script(1) comme suit :
$ sudo mkdir /sid-root $ sudo pbuilder --create --no-targz --debug --buildplace /sid-root
Vous pouvez voir comment
debootstrap(8)
ou
cdebootstrap(1)
installent les données du système pour l’environnement
sid
sous « /sid-root
».
![]() |
Astuce |
---|---|
debootstrap(8) ou cdebootstrap(1) sont utilisés pour installer Debian avec l’installateur Debian. Ils peuvent aussi être utilisés pour installer Debian sur un système sans utiliser de disque d'installation de Debian, mais en provenance d'une autre distribution GNU/Linux. |
$ sudo pbuilder --login --no-targz --debug --buildplace /sid-root
Vous pouvez voir ci-après comment un shell système tournant sous
l’environnement sid
est créé :
Copier la configuration locale (« /etc/hosts
»,
« /etc/hostname
»,
« /etc/resolv.conf
»)
Monter le système de fichiers « /proc
»
Monter le système de fichiers « /dev/pts
»
Créer « /usr/sbin/policy-rc.d
» qui existe
toujours avec 101
Lancer « chroot /sid-root bin/bash -c 'exec -a -bash
bin/bash'
»
![]() |
Note |
---|---|
Certains programmes sous chroot peuvent demander l’accès à davantage de
fichiers du système parent pour fonctionner que ceux que fournit
|
![]() |
Note |
---|---|
Le fichier « |
![]() |
Astuce |
---|---|
Les buts d'origine du paquet spécialisé d'environnement protégé (chroot)
|
![]() |
Astuce |
---|---|
De même, le paquet |
Je vous recommande d’utiliser QEMU ou VirtualBox sur un système Debian
stable
afin de faire tourner des système de bureau
multiples en utilisant la virtualisation. Cela vous permet de lancer
des application de bureau de Debian unstable
et
testing
sans les risques qui leur sont habituellement
associés.
Comme QEMU pur est très lent, il est recommandé de l’accélérer avec KVM lorsque le sysètme hôte le prend en charge.
L’image disque virtuelle « virtdisk.qcow2
» qui
contient le système Debian system pour QEMU peut
être crée en utilisant debian-installer: Small CDs de la
manière suivante :
$ wget http://cdimage.debian.org/debian-cd/5.0.3/amd64/iso-cd/debian-503-amd64-netinst.iso $ qemu-img create -f qcow2 virtdisk.qcow2 5G $ qemu -hda virtdisk.qcow2 -cdrom debian-503-amd64-netinst.iso -boot d -m 256 ...
Vous trouverez des astuces supplémentaires sur le wiki Debian : QEMU.
VirtualBox est fourni avec des outils ayant une interface graphique Qt et est assez intuitive. Son interface graphique et ses outils en ligne de commandes sont expliqués dans le Manuel de l’utilisateur de VirtualBox et le Manuel de l’utilisateur VirtualBox (PDF).
![]() |
Astuce |
---|---|
Faire tourner d’autres distributions de GNU/Linux comme Ubuntu et Fedra sous une virtualisation est une bonne manière d’en étudier les astuces de configuration. D’autres systèmes d’exploitation propriétaires peuvent aussi tourner de manière agréable sous la virtualisation GNU/Linux. |