Vous êtes sur la page 1sur 81

Marc SCHAEFER Epervier 15 2053 Cernier Ing. inf. dipl.

EPFL

Conseil et ralisations en informatique libre http://www.cril.ch/

Email : Tl. : Fax : Mobile :

schaefer@alphanet.ch +41 32 841 40 14 +41 32 841 40 81 +41 79 502 56 92

Support de cours de prparation de lexamen LPI-101


Marc SCHAEFER schaefer@alphanet.ch

C+R
25 avril 2008

Informatique libre

LPI-101

RELEASE

Revision : 1.16

Cernier, le 25 avril 2008

Avant-propos
Ce cours est bas sur mon exprience dadministration systme UNIX depuis 1987, ainsi que de mes expriences faites ds 1995 sur GNU/Linux et en particulier avec Debian GNU/Linux, un systme de qualit, la fois but personnel et en entreprise, comme conseiller indpendant, ingnieur systme et dveloppeur. Il est galement bas sur mes expriences de formateur en logiciels libres et notamment sur GNU/Linux, notamment dans le cadre des formations postgrades ES en cours du soir lESNIG Neuchtel depuis 2000, ainsi que de nombreuses formations que jai proposes en entreprise ou dans le cadre dassociations comme /ch/open ou le GULL. Il est galement bas sur la lecture de documentations systmes (page man, info), ainsi que de ressources Internet. Ralis dans le but dune certication, le cours tente de suivre exactement le programme obligatoire, de donner les points essentiels, tout en proposant un contexte solide et des exemples jour. Jessaie absolument dviter le bachottage uniquement en vue de la certication : le but est que la personne qui suit ce cours puisse en bncier largement pour son travail de tous les jours, notamment en apprenant comment trouver linformation et analyser les problmes. Ce cours crit saccompagne normalement dextraits dautres cours, dont les droits sont en gnral galement en licence FDL, parfois co-crits par dautres auteurs. Il insiste surtout sur les complments ncessaires pour la certication. Bon apprentissage !

Licence et droits dauteurs


Ce cours est c 2006-2007 CRIL - Marc SCHAEFER. Vous avez cependant le droit de le copier, transmettre, modier et redistribuer, dans la mesure o vous respectez les termes de la licence GFDL et considrez linvariant (les 2 premires pages). Si vous ne dsirez pas accepter les termes de la licence, je vous donne malgr tout le droit de consulter ce cours sans restrictions (ce qui devrait tre vident !) Dans tous les cas, vous devez accepter le fait que je dcline toute responsabilit quant lutilisation que vous pourriez faire de ce cours et ne mengage en rien ce propos.

Marc SCHAEFER Ing. inf. dipl. EPFL Conseil et ralisations en informatique libre (CRIL) http://www.cril.ch/

Table des matires


1 Architecture et matriel 1.1 BIOS . . . . . . . . . . . . . . . . 1.2 Cartes modems et son . . . . . . . . 1.3 Priphriques SCSI . . . . . . . . . 1.4 Conguration de cartes dexpansion 1.5 Priphriques de communication . . 1.6 Priphriques USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 6 10 15 17 19 20 21 23 25 27 28 29 30 32 35 36 37 40 41 42 46 49 51 53 54 55 56 58 59 61 63 65 66 67 69 70 71

2 X Window System 2.1 The X Window System . . . . . . . . . . . . . . . . . . . . 2.2 Conguration de XFree86 . . . . . . . . . . . . . . . . . . 2.3 Conguration dun gestionnaire de connexion . . . . . . . . 2.4 Conguration dun gestionnaire de fentre et des ressources 2.5 Travail distant et scurit . . . . . . . . . . . . . . . . . . . 3 Installation et gestion des packages 3.1 Dnition du partitionnement . . . . . . . . . . . 3.2 Conguration du dmarrage . . . . . . . . . . . 3.3 Compilation et installation locale depuis la source 3.4 Gestion des bibliothques dynamiques . . . . . . 3.5 Systme de packaging Debian . . . . . . . . . . 3.6 Systme de packaging Red Hat . . . . . . . . . . 4 Priphriques et standard de hirarchie FHS 4.1 Cration de partitions et de systmes de chiers 4.2 Maintenir lintgrit des systmes de chiers . 4.3 Montage et dmontage . . . . . . . . . . . . . 4.4 Gestion des quotas . . . . . . . . . . . . . . . 4.5 Gestion des permissions daccs aux donnes . 4.6 Propritaires et groupes . . . . . . . . . . . . . 4.7 Liens symboliques et durs . . . . . . . . . . . 4.8 Trouver et placer les chiers . . . . . . . . . . 5 Commandes UNIX et GNU 5.1 Travailler en ligne de commande . . . . . . . . 5.2 Filtres de traitement de texte . . . . . . . . . . 5.3 Gestion des chiers . . . . . . . . . . . . . . . 5.4 Fichiers, pipes et redirections . . . . . . . . . . 5.5 Crer, surveiller et tuer des processus . . . . . . 5.6 Modication des priorits dexcution . . . . . 5.7 Recherche textuelle avec expressions rgulires 5.8 Edition de texte avec vi . . . . . . . . . . . . . 6 Corrig des exercices

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

LPI-101 '

Chapitre 1: Architecture et matriel p. 4

1. Architecture et matriel
Contenu du chapitre
introduction gnrale au support du matriel sous GNU/Linux conguration du BIOS, de cartes modems et son, de priphriques SCSI, de cartes dexpansion conguration de priphriques de communication (y compris accs Internet) conguration de priphriques USB

Buts du chapitre
savoir quel sous-systme gre quel type de priphriques savoir comment dterminer lidentication dun priphrique savoir comment congurer manuellement certains priphriques savoir o trouver linformation (systme, Internet) connatre les dtails spciques pour certains bus et types de priphriques

&

support de cours additionnel : cours Matriel


Ce premier chapitre traite principalement du matriel et de la place de celui-ci dans GNU/Linux, ainsi que des outils et moyens disposition pour dterminer le type de priphrique et son identication, activer et congurer celui-ci. Des cas pratiques sont tudis. Le dmarrage bas niveau et la gomtrie des disques sont galement traits.

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 1: Architecture et matriel BIOS

p. 5

'

BIOS 1.1
Rsum des concepts importants
diffrence entre CHS/LBA/LARGE (mapping incompatible entre nombre de blocs et (cylindre, tte, secteurs)) et raison de lemploi du mode LBA (> 1024 cylindres) pour des disques jusqu 8 GB activation et dactivation de priphriques intgrs dans le BIOS et raison (interruptions libres) conguration du mode derreur du BIOS (p.ex. serveur sans clavier) conguration du dmarrage (disque, CD, oppy, etc) /proc, dmesg, hdparm, . . .

Lectures supplmentaires
http://www.tldp.org/HOWTO/Large-Disk-HOWTO.html
&

Exercices
1. dterminez le mode de mapping actuel via le log du kernel (indication : dmesg) 2. activez et dsactivez certains priphriques (p.ex. port parallle) et vriez leur prsence/absence dans le systme 3. vriez que vous pouvez dmarrer sans clavier 4. vriez que le systme ne dmarre que sur le disque-dur 5. donnez deux mthodes pour dterminer la mmoire totale disponible dans le systme (indication pour la 2e mthode : grep et quelque chose dans /proc) 6. consultez la page man de hdparm et : (a) consultez la gomtrie du disque (b) dterminez ltat de consommation / alimentation / conomie dnerge du disque (c) vriez si le DMA est activ, changez ltat et testez la performance (d) comment rendre le disque en lecture seulement (ne pas le faire) 7. en consultant les lectures supplmentaires ci-dessus, rpondez aux questions suivantes : (a) avec votre version du kernel (uname -r), avez-vous des problmes avec des grands disques ? (b) si le kernel na pas de problme, quels peuvent tre les autres problmes ? (c) quoi peut servir loption lba32 de LILO ? que faut-il faire avec un grand disque sans loption lba32 ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 1: Architecture et matriel Cartes modems et son

p. 6

'

Cartes modems et son 1.2


Modems sous GNU/Linux : principes gnraux
soit modem srie connect un UART (port srie RS-232C/V24-V28) soit modem interne (intgr la carte-mre ou carte PCI/ISA) soit mulant un UART supplmentaire soit pilote spcique, voire Winmodem soit modem externe USB compatible CDC/ACM (Communication Device Class, Abstract Control Model), via pilote acm.o incompatible les modems ADSL ou cble ne sont pas traits ici

Compatibilit
bonne pour les UARTs, bonne en USB compatible CDC, mauvaise bonne pour les Winmodems

&

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 1: Architecture et matriel Cartes modems et son

p. 7

'

Winmodem
Un modem simpli sans intelligence, qui est gr par le systme hte (DSP). Utilise plus de ressources, pilote propritaire (sil existe). Moins cher en gnral.

Conguration
Le port srie standard est en gnral congur automatiquement. Parfois il faut faire appel setserial puis sarranger pour que le systme sauvegarde cette conguration. Sil sagit dune carte ISA PNP, loutil isapnp est ncessaire. Le BIOS PnP peut aussi faire la conguration automatiquement.

Priphrique
/dev/ttyS0, ou /dev/ttyI0 (mulation ISDN), ou encore /dev/usb/ttyACM0, . . .
& '

% $

Dial-in
Rception dappel par GNU/Linux via contrle de tty (un getty), p.ex. getty, agetty, mgetty. Le tout est gr par init, congur dans /etc/inittab. Aprs changement lancer telinit q pour recharger la conguration. 5

Dial-out
Fonctionnement typique dun accs Internet : ouverture du priphrique (p.ex. /dev/ttyS0), verrouillage (p.ex. chier dans /var/lock), composition et interactivit (chat), lancement du programme ncessaire (p.ex. pppd). Gnralement : programme de terminal : minicom, simpli : cu accs Internet : pppd, wvdial, wvdialconf automatique : dip, diald, pppd historique : UUCP, SLIP/CSLIP, FTN
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

&

LPI-101

Chapitre 1: Architecture et matriel Cartes modems et son

p. 8

'

Carte son
Lancienne mthode de conguration est via lutilitaire ncurses (mode texte) sndconfig. Il dtectera la carte son et proposera une conguration par dfaut, ou un mode manuel o lon choisit la carte son. Les modications aux chiers /etc/isapnp.conf et /etc/conf.modules (ou /etc/modules.conf) sont automatiques. Un test automatique est effectu.

largement obsolte aujourdhui avec les autodtecteurs


&

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 1: Architecture et matriel Cartes modems et son

p. 9

'

Rsum des concepts importants


compatibilit : diffrence modem-UART ou Winmodem (et o trouver les pilotes ventuellement) IRQ, E/S et DMA uniques et correctes cartes PNP : conguration ISA PNP conguration carte son de base conguration modem pour dial-up (y compris PPP/CSLIP/SLIP) et dial-in (getty) setserial, getty, agetty, mgetty, /etc/inittab, telinit q, minicom, sndconfig, isapnp, pnpdump, /etc/isapnp.conf, pppd, slmodem.

Lectures supplmentaires
http://www.tldp.org/HOWTO/Modem-HOWTO.html http://linmodems.org/ http://www.tldp.org/HOWTO/Winmodems-and-Linux-HOWTO.html http://www.linux-usb.org/USB-guide/x332.html

&

Exercices
1. quelle est la diffrence entre un modem interne, un modem externe sur port srie (RS-232/V24V28) et un modem USB ? 2. o trouver les pilotes pour un Winmodem propritaire ? 3. dterminez le nom de priphrique du modem et congurez-le pour 115 kBit/s (setserial) 4. activez le dial-in sur ce modem (/etc/inittab, telinit q) et vriez que le processus getty concern tourne (utilisez plutt agetty de prfrence), comprenez les diffrents arguments ! 5. comment crer les priphriques (chiers spciaux de type priphriques) UNIX pour 4 modems USB compatibles CDC ? 6. comment crer une conguration minicom ? 7. quel utilitaire peut-tre utilis pour congurer simplement une carte son ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 1: Architecture et matriel Priphriques SCSI

p. 10

'

Priphriques SCSI 1.3


Principes gnraux
protocole trs rpandu ! SCSI Parallel Interface (SPI) 50 (narrow ) ou 68 broches (wide ) 8 respectivement 16 priphriques (SCSI ID 0-7 ou 0-15) plusieurs bus incompatibles lectriquement vitesses de 1 320 MByte/s, ngociable pour chaque quipement terminaison de bus ncessaire chaque extrmit, y compris demi-bus longueurs de bus variables Host Adapter (HA), carte SCSI ID unique (SCSI ID) pour chaque priphrique. Le HA galement ! concept de LUN nombreux types de priphriques
& SCSI est un protocole trs gnral qui est beaucoup plus rpandu que lon pourrait penser : il est prsent par exemple dans linterface 50 ou 68 broches SCSI parallle bien connue (SCSI Parallel Interface, SPI), mais aussi dans le bus USB notamment pour les priphriques de stockage, FireWire (IEEE-1394), FibreChannel, iSCSI (SCSI sur TCP/IP), etc. Linterface SCSI parallle (SPI) propose deux largeurs de bus : 50 (narrow , 8 bits) ou 68 broches (wide , 16 bits) pour 8 respectivement 16 priphriques (SCSI ID 0-7 ou 0-15). Le bus large est, mme frquence de bus, 2 fois plus rapides pour les transferts de donnes. Electriquement, ces bus sont soit Single-Ended , Differential ou aujourdhui Low-Voltage Differential (LVD) . Le type de bus dnit la vitesse maximum (frquence max) du bus, qui va de 1 320 MByte/s aujourdhui en tenant compte de la largeur de bus. La vitesse est ngocie pour chaque quipement. Une terminaison de bus ncessaire chaque extrmit, y compris demi-bus (p.ex. un bus interne narrow et un bus externe wide : la carte doit tre termine uniquement sur les 8 bits suprieurs : High On, Low Off puis les deux bus doivent tre termins leur extrmit (p.ex. sur un priphrique). Les longueurs des bus (mesurs depuis les extrmits les plus longues) sont variables suivant la vitesse congure et le type de bus : p.ex. 12m pour LVD, 3m pour Ultra-SCSI (40 MByte/s en wide, 20 MByte/s en narrow). Si des quipements plus anciens sont connects au bus, le bus entier passe au fonctionnement lectrique compatible (p.ex. SE) si support, puis ngocie une vitesse plus faible pour cet quipement. Chaque priphrique a un ID unique (SCSI ID), y compris le HA, congur par des cavaliers ou par logiciel ; un protocole dassignation automatique (SCAM, SCSI Congured Auto Magically ) na jamais t dploy. Les types de priphriques supports sont : disque, cassette, scanner, CD-ROM, graveur, communic 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 1: Architecture et matriel Priphriques SCSI

p. 11

cation, processeur, etc. Des priphriques complexes peuvent tre dcomposs en sous-priphriques adresss par LUN (Logical Unit) : p.ex. changeur de cassette

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 1: Architecture et matriel Priphriques SCSI

p. 12

'

BIOS SCSI
liste des priphriques avec leur type, description courte et ID (vt. aussi LUN) possibilit de modier le SCSI ID du HA (usuellement 7 sur les cartes SCSI des PC) possibilit de congurer le SCSI ID/LUN de dmarrage possibilit de modier les paramtres des priphriques un un (vitesse, largeur de bus, ignorer, etc) possibilit de modier les paramtres de terminaison du bus fonctions de vrication et de formatage bas-niveau pour les disques

BIOS systme
Conguration ordre IDE/SCSI

& Le PC accde au bus SCSI via un Host Adapter (HA), soit une carte SCSI, qui comporte en rgle gnrale un BIOS spcique qui permet de dnir les paramtres de ngociation (vitesse, largeur de bus, etc) pour chaque priphrique, congurer le HA lui-mme (numro ID SCSI, terminaison, dmarrage ID/LUN) et offre des outils de test et de formatage pour les disques. Le BIOS systme permet parfois de congurer lordre de dmarrage entre SCSI et IDE.

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 1: Architecture et matriel Priphriques SCSI

p. 13

'

SCSI et (GNU/)Linux
logiciellement Linux voit en gnral les disques SATA et graveurs ainsi que les priphriques de stockage USB comme des priphriques SCSI (/dev/sda1, /dev/scd0, /dev/st0, /dev/sg0, . . .) (via p.ex. ide-scsi.o ou usb-storage.o). IDE/ATA : pour ce faire ajouter hdc=ide-scsi, pour ici un graveur sur /dev/hdc, la ligne de commande du kernel (sera accd via /dev/scd0, et pour le gravage transparent via /dev/sgX) option de kernel max_scsi_luns=1 pour problme au dmarrage on peut ajouter/supprimer un priphrique dynamiquement (hotplug) via echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi ("Host Channel Id Lun" ; voir aussi remove-single-device) les outils scsi_infoa permettent de visualiser des paramtres des disques, formater ou faire dautre soprations spciques.
a

10

nom rel de la commande : scsiinfo

& Exemple de /proc/scsi/scsi : machine:~# cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: TSSTcorp Model: CD/DVDW SH-W162C Type: CD-ROM Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: MAXTOR Model: ATLAS10K4_36SCA Type: Direct-Access Host: scsi1 Channel: 00 Id: 03 Lun: 00 Vendor: MAXTOR Model: ATLAS10K4_36SCA Type: Direct-Access

Rev: TS10 ANSI SCSI revision: 02 Rev: DFV0 ANSI SCSI revision: 03 Rev: DFV0 ANSI SCSI revision: 03

On voit ici deux bus virtuels (un form probablement de ide-scsi, et un dun HA SCSI avec 2 disques-durs).

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 1: Architecture et matriel Priphriques SCSI

p. 14

'

Rsum des concepts importants


11 BIOS SCSI BIOS systme : ordre de dmarrage SCSI/IDE/SATA kernel : options de dmarrage (LUNs, ide-scsi) outils SCSI spciques scsi_info, /proc/scsi, /proc/scsi/scsi, ide-scsi.o, /etc/fstab, /dev/scd0, /dev/cdrom, cdrecord.

Lectures supplmentaires
http://www.tldp.org/HOWTO/CD-Writing-HOWTO.html http://www.tldp.org/HOWTO/SCSI-2.4-HOWTO/ http://www.paralan.com/sediff.html http://www.scsita.org/

&

Exercices
1. quy a-t-il dans /proc/scsi ? 2. combien de priphriques peuvent tenir place sur un bus SCSI narrow ? 3. comment rendre possible le gravage sur un graveur IDE/ATA ? Que devez-vous faire ensuite pour pouvoir tout de mme monter des CD-R comme avant ? 4. vous dmarrez votre systme, et lors de la dtection SCSI, un priphrique est vu tous les LUNs et/ou bloque, que proposez-vous ? 5. si vous enlevez le disque 2 SCSI ID, et quil reste les 0 et 3, que se passe-t-il pour le nom usuel du disque 3 ? 6. comment dterminez-vous le nom de priphrique pour cdrecord ? 7. comment obtenez-vous des informations sur un disque SCSI ? (proposez 2 commandes)

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 1: Architecture et matriel Conguration de cartes dexpansion

p. 15

'

Conguration de cartes dexpansion 1.4


Rsum des concepts importants
dtection par le BIOS conguration automatique (PCI, PCMCIA, ISA PNP), voire manuelle (ISA pur) viter le partage de ressources (IRQ p.ex.) dans le cas gnral lspci, /proc/pci, /proc/dma, /proc/interrupts, /proc/ioports, pnpdump, isapnp, /etc/isapnp.conf, setpci.

12

Lectures supplmentaires
http://www.tldp.org/HOWTO/PCI-HOWTO.html http://www.faqs.org/docs/Linux-HOWTO/SMP-HOWTO.html http: //www.roestock.demon.co.uk/isapnptools/isapnpfaq.html
& Exemple isapnp : mls-firewall:~# cat /proc/isapnp Card 1 EDI0216:PLUG & PLAY ETHERNET CARD PnP version 1.0 Logical device 0 EDI0216:Unknown Supported registers 0x2 Compatible device PNP80d6 Device is active Active port 0x260 Active IRQ 11 [0x2] Active memory 0xd8000ff,0xff Resources 0 Priority preferred Port 0x260-0x3e0, align 0x1f, size 0x20, 10-bit address decoding IRQ 3,4,5,2/9,10,11,12,15 High-Edge

Ensuite, avec pnpdump, crer un chier de conguration squelette pour /etc/isapnp.conf, y modier des paramtres ventuels (comme p.ex. activer ou dsactiver des jeux de conguration, choisir une interruption, etc) qui seront lus et appliqus. Des cartes non PNP ou fonctionnant mal peuvent ncessiter un chargement explicite du pilote ou la spcications doptions dans /etc/conf.modules (ou /etc/modules.conf), voire le char-

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 1: Architecture et matriel Conguration de cartes dexpansion

p. 16

gement manuel dans /etc/modules.

Exercices
1. listez les interruptions, les ports dE/S, les canaux DMA et les priphriques PCI dtects (deux mthodes). Y-a-t-il des interruptions partages ? 2. comptez le nombre de priphriques PCI (wc -l) 3. y-a-t-il des bridges PCI ou ISA ? 4. consultez la page man de lspci et : (a) afchez un arbre du bus PCI (lspci) (b) listez uniquement les priphriques du fabricant Intel 5. consultez la page man de setpci et : (a) dterminez le rle de cet utilitaire (b) montrez un exemple daccs un registre 6. utilisez-vous un XT-PIC ou un APIC ? 7. y-a-t-il des cartes ISA-PNP sur votre machine ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 1: Architecture et matriel Priphriques de communication

p. 17

'

Priphriques de communication 1.5


Trait dans la section modem, sauf : diffrence routeur/switch DSL isdn4linux, mulation /dev/ttyI, MSN

13

&

Diffrence routeur-switch/modem DSL Un routeur/switch est adress directement en IP sur Ethernet. On congure simplement la carte rseau comme dhabitude1 , en indiquant ladresse IP du routeur congurable par GUI WWW voir la documentation constructeur comme passerelle par dfaut, et en activant ventuellement le DHCP. Cette mthode est un peu plus chre mais la plus simple. Un modem DSL est accd soit comme un modem USB (il faut donc des pilotes USB, ventuellement pour ce modem spcique, peut-tre propritaires voire inexistants !), soit via Ethernet dans un mode spcial (PPPoE). Dans ce cas, aucune conguration IP nest ncessaire sur cette interface. Les donnes IP/PPP sont changes simplement via Ethernet plutt quUSB. Cette variante sappelle PPP-overEthernet (PPPoE) et est plus simple congurer sous GNU/Linux que la variante USB. Dans les deux cas, cest pppd qui est utilis pour lchange de trames IP via PPP. Emulation de tty en ISDN De manire utiliser des cartes ISDN PCI ou USB avec des logiciels sattendant une interface srie et des commandes AT Hayes, le sous-systme isdn4linux implmente une couche de compatibilit tty (isdn-tty). Les priphriques sont usuellement nomms /dev/ttyI0 et suivants, supportent le jeu de commande AT. Certains pilotes supportent le fax ou la voix via ce biais galement, encore quen gnral cela sera utilis pour des connexions numriques X.75 (p.ex. change de chiers). Pour un fonctionnement correct, le MSN (Multiple Subscriber Number , le numro de tlphone) utilis doit tre congur, soit via des commandes AT, soit via loutil isdnctrl. Enn, le mode
1

commandes ifconfig, chier /etc/network/interfaces, cf LPI-102

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 1: Architecture et matriel Priphriques de communication

p. 18

synchrone (ipppd) nutilise pas ces mulations de tty.

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 1: Architecture et matriel Priphriques USB

p. 19

'

Priphriques USB 1.6


Rsum des concepts importants
hirarchie des pilotes types de Host Controller (courant : usb-uhci.o, Compaq : usb-ohci.o, rapide : usb-ehci.o) listage : lsusb, usbview, /proc/bus/usb recherche de pilote manuelle : usbmodules hotplug, le kernel lance /etc/hotplug/pci.agent, /etc/hotplug/usb.agent ; /etc/init.d/hotplug au dmarrage du systme. applications USB gphoto2 --summary

14

&

Classes de pilotes Si les priphriques USB sont en gnral supports par des pilotes kernel gnriques (p.ex. disque-dur ou USB stick via usb-storage), parfois des pilotes kernel spciques sont ncessaires, malheureusement certains propritaires. Dans deux cas, des pilotes spciques ne sont pas ncessaires dans le kernel : scanners on utilise un pilote en user-space, dans sane camras les camras (pas en mode stockage) sont accds via le pilote user-space libgphoto, p.ex. via GIMP ou KDE.

Exercices
1. de quel type(s) de Host Controller dispose votre machine ? (indication : aussi lsmod) 2. listez le bus USB

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 2: X Window System p. 20

'

2. X Window System
Contenu du chapitre
conguration de XFree86 (y.c. serveur de fontes) conguration dun gestionnaire de connexion (Display Manager, DM) conguration dun gestionnaire de fentre et des ressources X11 travail distant et scurit X11

15

Buts du chapitre
connatre la structuration de X savoir congurer un serveur X savoir congurer un serveur de fontes savoir congurer un environnement graphique simple X tre capable douvrir des sessions distantes (TCP ou tunnel SSH) tout en grant la scurit X11

&

support de cours additionnel : Guide UNIX


Ce chapitre traite principalement de X11, le systme de fentrage multi-plateforme multi-cran multiapplication standard ainsi que de la mise en place simple dun gestionnaire de connexion (y compris pour un serveur de terminaux), de la conguration dun gestionnaire de fentres et des ressources X11, du travail dans lenvironnement ainsi que de la scurit X11.

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 2: X Window System The X Window System

p. 21

'

The X Window System 2.1


Rsum des concepts importants
X11 rseau client-serveur (invers !) display-manager, window-manager, session-manager serveur de fontes (polices) optionnel aujourdhui extensions pour performance pas dans le kernel (mais . . .) XFree86 (et X.org aujourdhui) implmente un serveur X LPI traite de XFree86 3.3.x

16

Lectures supplmentaires
http://en.wikipedia.org/wiki/X_Window_System http://www.x.org/
& The X Window System, X, X11, X11R6 est le systme de fentrage standard sous UNIX. Le nom X vient du fait que le systme de fentrage prcdent sappelait w, comme Window System. Dvelopp originalement au MIT ds 1984, la version utilise aujourdhui, X11R61 , dispose dune implmentation libre originellement pour plateforme IA32 (i386), mais qui aujourdhui est multi-plateforme : X.Org. Des implmentations propritaires existent galement. Le principe gnral de X repose sur un modle client-serveur rseau, o le serveur est celui qui offre les services daccs lcran : cela signie que bien souvent le client tourne sur un serveur UNIX, et le serveur dsigne le poste de travail qui afche les donnes du client. Cela signie aussi que le support de Terminal Services est un simple effet de bord du protocole et non pas un ajout aprs-coup. Sauf peut-tre pour quelques applications modernes qui utilisent des extensions locales, comme par exemple laccs direct au frame buffer de lcran pour des raisons de performance et ne supporteraient pas un mode plus lent. XDMCP (X Display Manager Control Protocol) offre des services de localisation dun displaymanager, ce qui permet de se connecter graphiquement depuis un terminal X. Les composants de X sont : client une application qui dsire afcher quelque chose serveur X ce qui contrle lafchage (peut dans certains cas tre un client galement) terminal X quivalent de serveur X, en gnral plutt ddi et sans applications locales
1

X11R7 annonc en dcembre 2005.

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 2: X Window System The X Window System

p. 22

window-manager client particulier qui gre le placement, la dcoration des fentres et les actions sur celles-ci display-manager client X spcial, disposant souvent dun serveur XDMCP. session-manager gestion des applications lances, support de sauvegarde/restauration de leur contexte. desktop-environment combinaison dun session-manager, dun window-manager et doutils spcialiss (comme des menus, une barre des tches, un gestionnaire de chiers, etc). Les fontes peuvent tre bitmap ou gnres (True Type p.ex.). Elles sont accdes soit du systme de chiers par le serveur X directement, soit via un serveur de polices qui peut tre centralis. Sous GNU/Linux et la plupart des systmes dexploitation, le serveur X nest pas implment dans le kernel mais est une application privilgie. Une partie de limplmentation matrielle peut, cependant, se situer dans le kernel (frame-buffer, DGA (Direct Graphics Access), etc).

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 2: X Window System Conguration de XFree86

p. 23

'

Conguration de XFree86 2.2


Rsum des concepts importants
conguration du chier /etc/X11/XF86Config, via divers outils, comme : XF86Setup, xf86config adaptation ne avec xvidtune dmarrage/arrt de diverses manires, p.ex. via telinit 5 et telinit 3 si congur dans /etc/inittab serveur de fontes xfs

17

Lectures supplmentaires
http://www.tldp.org/HOWTO/XFree86-HOWTO/ http://www.linuxfibel.de/xf86setup.htm

& En gnral, la conguration automatique fonctionne bien. Parfois il faut ladapter ou la modier pour diffrentes raisons. Il y a plusieurs niveaux de conguration : 1. GUI de conguration : en gnral, elle se borne choisir parmi des prcongurations dans le chier de conguration de X11, /etc/X11/XF86Config1 2. auto-dtecteur / auto-installateur 3. interface de conguration Debian dpkg-reconfigure xserver-xfree862 (peut cohabiter avec des modications manuelles) 4. conguration avec XF86Setup (XFree86 3.x seulement), graphique en Tcl/Tk 5. conguration en mode texte avec xf86config 6. conguration standard via XFree86 -configure3 Parfois il faut modier le chier de conguration /etc/X11/XF86Config la main. On peut aussi employer lutilitaire xvidtune pour modier des paramtres trs nement et graphiquement, ou encore Xfine2. Sous GNU/Linux, le serveur X peut tre dmarr de plusieurs manires suivant la distribution et les besoins : Version 4 : /etc/X11/XF86Config-4 ; actuellement /etc/X11/xorg.conf 2 ds Debian etch et Ubuntu : dpkg-reconfigure xserver-xorg 3 xorg -configure
c 2006-2007 CRIL - Marc SCHAEFER

xserver-xorg

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 2: X Window System Conguration de XFree86

p. 24

1. via une entre dans /etc/inittab, par exemple dans le niveau dexcution 5 : telinit 5 pour dmarrer telinit 3 pour stopper 2. via le lancement dun service dans le niveau 2 par exemple, voir un des display-managers : /etc/init.d/*dm et /etc/rc2.d/*dm, ou manuellement (ici display-manager kdm) : /etc/init.d/kdm start pour dmarrer /etc/init.d/kdm stop pour stopper 3. manuellement, via la commande xinit ou startx : startx - :1 pour dmarrer lcran virtuel 1 si le 0 est dj pris xinit - :1 idem, moins spcique GNU/Linux (sous votre utilisateur, pas root). On peut spcier dans votre chier .xinitrc quel windowmanager et quels clients doivent tre spcis (aussi .xsession). 4. on peut aussi dmarrer le display-manager manuellement, simplement en tapant p.ex. xdm (display-manager xdm). Pour arrter de manire brusque, on peut faire CTRL-ALT-BACKSPACE, ce qui tue le serveur X (mais sil y a un display-manager actif, il le relancera !) Le font server xfs (ou xfstt pour True Type) est install simplement, puis on doit indiquer au serveur X quil doit le contacter, puis le redmarrer. Exemple de conguration : Section "Files" FontPath ...

"unix/:7100"

# local font server

Exercices
1. comment est dmarr le serveur X dans votre distribution ? (est-ce via /etc/inittab ou via /etc/init.d/*dm ?) 2. que se passe-t-il si vous tapez cat /dev/psaux et que vous dplacez la souris ? (sortez avec CTRL-C). 3. dmarrez un deuxime serveur X sous votre utilisateur : (a) revenez la console 1 : CTRL-ALT-F1 (b) connectez-vous sous votre utilisateur (c) lancez un serveur X manuellement sur le 2e cran virtuel avec : startx -- :1 (d) passez dun serveur X lautre avec CTRL-ALT-F7 et CTRL-ALT-F8 (e) tuez le 2e avec CTRL-ALT-BACKSPACE 4. quel chier permet dindiquer startx quel window manager / quelle session dmarrer ? 5. un font-server est-il congur ? sinon installez-le, congurez-le et vriez quil est utilis (p.ex. via XFree86 2>/tmp/start-log) 6. congurez votre serveur X avec : xf86config 7. congurez votre serveur X avec : XFree86 -configure 8. adaptez les paramtres avec xvidtune
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 2: X Window System Conguration dun gestionnaire de connexion

p. 25

'

Conguration dun gestionnaire de connexion 2.3


Rsum des concepts importants
gestionnaire de connexion (Display Manager, DM) protocole XDMCP /etc/inittab, /etc/init.d/*dm, /etc/rc?.d/*dm, /etc/X11/{x,k,g}dm/*

18

Lectures supplmentaires
http://www.ltsp.org/

& Le principe gnral est que si lon dsire un login graphique, on utilise un Display Manager. Les choix sont xdm, kdm, gdm pour respectivement une version simple, KDE et GNOME. Le Display Manager permet de lancer une session sous un utilisateur particulier (quel que soit lenvironnement (windowmanager, bureau, etc) dsir et aussi par exemple une session sans chec (failsafe ) qui comporte en gnral un simple terminal (xterm). Le Display Manager gre un ou plusieurs crans de faon xe (et lance les serveurs X considrs ou y accde (terminaux X)). Il supporte galement, optionnellement, un protocol nomm XDMCP, X Display Manager Control Protocol, qui a pour but de permettre des terminaux et serveurs X dinterroger un DM pour obtenir la liste des DM disponibles (chooser) ou daccder directement un DM donn sur un rseau. Le dmarrage automatique du DM est gr comme dj vu dans la section prcdente. On retrouve les congurations dans /etc/X11/xdm/, /etc/X11/gdm/ et /etc/kde3/kdm/ par exemple.

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 2: X Window System Conguration dun gestionnaire de connexion

p. 26

Exercices
1. activez et dsactivez le Display Manager 2. changez le message de bienvenue du Display Manager 3. changez le nombre de couleurs (bitplanes) du Display Manager 4. activez le protocole XDMCP pour votre voisin 5. lancez de faon permanente un deuxime serveur X (chier Xservers) 6. testez (a) X -query localhost :1 (b) X -indirect localhost :1 (c) sous votre utilisateur et sous X11 : Xnest -query localhost :1 (d) de mme pour le XDMCP de votre voisin ! 7. dsactivez le XDMCP et vriez p.ex. avec netstat -anp

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 2: X Window System Conguration dun gestionnaire de fentre et des ressources

p. 27

'

Conguration dun gestionnaire de fentre et des ressources 2.4


Rsum des concepts importants
gestionnaire de fentres (Window Manager, WM) gestionnaire de bureau / denvironnement (p.ex. GNOME et KDE) conguration par utilisateur dans .Xresources .xinitrc, .Xdefaults

19

Lectures supplmentaires
http://www.linuxdocs.org/HOWTOs/XWindow-User-HOWTO-6.html

& On peut congurer les paramtres dafchage dans votre chier .Xresources (ou .Xdefaults). Il existe de nombreux Window Managers, comme fvwm2, WindowMaker, olwm, tvtwm, etc.

Exercices
1. lancez un xterm avec la couleur de fond rouge (indication : rouge cest red) 2. modiez votre .Xresources de manire ce quxterm se lance toujours avec un fond rouge. Activez durant la session via xrdb -merge .Xresources. Faut-il faire un lien symbolique de .Xdefaults pour que cela soit actif chaque session ? 3. quelles autres proprits sont modiables ? consultez notamment man xterm et aussi /etc/X11/app-default/XTerm. 4. installez le package menu, le window-manager blackbox et malgr la mise en garde modiez le menu dans /etc/X11/blackbox/blackbox-menu et mettez jour avec update-menus. 5. connectez-vous en failsafe et lancez gnome-session. Quittez. Observez.

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 2: X Window System Travail distant et scurit

p. 28

'

Travail distant et scurit 2.5


Rsum des concepts importants
variables DISPLAY, XAUTHORITY commandes xhost, xauth chier Xservers ssh -X user@host

20

Lectures supplmentaires
Guide UNIX, section X Window

&

Exercices
1. est-ce que votre serveur X local autorise les connexions TCP distantes ? sinon, activez-le et vriez que telnet localhost 6000 accepte une connexion. (indication : cherchez un chier Xservers, p.ex. /etc/X11/xdm/Xservers, ou /etc/kde3/kdm/Xservers, ou encore pour gdm la variable DisallowTCP dans le chier /etc/gdm/gdm.conf) 2. autorisez toute la machine de votre voisin vous connecter sur votre serveur. Exprimentez le lancement de xclock, xterm. 3. interdisez laccs par adresse IP, vriez. 4. dsactivez les connexions distantes et vriez avec telnet localhost 6000. 5. connectez-vous la machine de votre voisin via ssh et lancez des application X11 sur votre machine via le tunnel SSH. Que valent la variable DISPLAY et le cookie dauthentication X11 ? (indication : vriez que le serveur SSH autorise X11Forwarding, cf /etc/ssh/sshd_config). 6. depuis votre session graphique : (a) faites su - pour devenir root dans un xterm (b) faites su pour devenir root dans un xterm (c) lancez un xterm dans la premire session root. (d) lancez un xterm dans deuxime session root. Que se passe-t-il ? Consultez le man de su pour comprendre la diffrence. (e) que faire pour que root ait les droits daccs votre cran localement ? (trois mthodes : une avec une variable denvironnement, une avec xauth, une dernire moins sre avec xhost)
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 3: Installation et gestion des packages p. 29

'

3. Installation et gestion des packages


Contenu du chapitre
dnition dun schma de partitionnement conguration dun programme de dmarrage compiler et installer un programme source grer les bibliothques dynamiques systme de packaging Debian systme de packaging Red Hat

21

Buts du chapitre
savoir planier la structure des systmes de chiers et partitions de manire correcte savoir congurer LILO et grub savoir dployer correctement des logiciels non packags savoir grer les packages installs

&

supports de cours additionnels : cours Installation et packaging


Ce chapitre traite principalement de la planication dinstallation dun systme (notamment partitionnement), de la gestion dun systme install (y compris adaptation de la conguration des programmes de dmarrage courants), notamment linstallation manuelle de logiciels non packags (depuis leur source : compilation, installation, dinstallation ; y compris bibliothques partages), ainsi que bien sr les outils les plus courants de gestion de packages.

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 3: Installation et gestion des packages Dnition du partitionnement

p. 30

'

Dnition du partitionnement 3.1


Rsum des concepts importants
mmoire dchange (swap ) motivations des choix emplacement de /boot (< cylindre 1024) performance suivant type dapplication, indpendance limite plusieurs types de fs points de montage, partitions, systme de chiers : / (racine, root), /var, /home /bin/mount, /sbin/mkswap, /sbin/fdisk, /sbin/mkfs.*, /sbin/swapon

22

Lectures supplmentaires
&

http://www.debian.org/releases/stable/i386/ch06s03.html. en#di-partition
Une installation de base ne ncessite que deux1 partitions, la partition racine / et une partition de swap (mmoire virtuelle). Le kernel Linux 2.4 est notamment plus performant lorsquun swap est disponible : il peut ainsi y dplacer des donnes non frquemment utilises et donc gagner en performance disque (puisque les caches disques sont alloues de la mmoire libre). On peut galement subdiviser le systme en plusieurs partitions si dsir. Les raisons dun tel partitionnement plus n sont : maintenir le dmarrage sous la limite de 1024 cylindres (disques IDE et anciens BIOS) : petit / spar de /usr, ou carrment partition de dmarrage /boot. performance : p.ex. plusieurs priphriques swap distribus sur plusieurs partitions de disques-durs diffrents ; sparation des logs et des queues (/var/log et /var/spool) sur un serveur de mail trs charg (noter que cela augmente le risque de panne !) indpendance la rinstallation ou au changement de distribution : mettre /home sur un rpertoire spar limiter le risque de casse en cas de problme, ou assurer une limite sans quotas par utilisateurs/groupes spcier des options de montages spciales pour la performance (noatime, async) ou pour la scurit (noexec, nosuid, etc) utiliser plusieurs systmes de chiers diffrents (p.ex. supports ou non par le boot-loader grub ; ou pour des utilisations varies). La performance est souvent un problme nglig, mais il est essentiel. Un bon partitionnement peut on peut utiliser un chier de swap la place dune partition (moins efcace) ; on peut aussi se passer totalement de swap dans des cas trs particuliers, mais en rgle gnrale il faut lviter.
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 3: Installation et gestion des packages Dnition du partitionnement

p. 31

contribuer amliorer la performance globale du systme. Il faut commencer par dnir les tches ou les applications que le systme doit excuter. / peu modi, donnes caches : peut tre mont depuis un disque lent. /var varie beaucoup (en particulier /var/log) : on a intrt le placer sur un disque rapide /usr disque rapide conseill p.ex. dans le cas dun serveur dapplication (Terminal Server) La rapidit dun disque est la fois facteur de sa vitesse brute (lie la vitesse de rotation et sa densit) et de la latence (dure de dplacement des ttes). Une fois quun systme est install, la fragmentation peut diminuer, au fur et mesure de lutilisation, la performance dun systme de chier. Sous GNU/Linux, ce problme est presque inexistant tant que les systmes de chiers ne sont pas remplis compltement. Cest une des raisons pour laquelle on peut rserver une partie de la place disque pour le super-utilisateur. Le partitionnement lui-mme se fait avec la commande fdisk, ou dautres implmentations comme cfdisk. On initialize une partition de swap avec mkswap, et un systme de chiers avec les diverses instances de mkfs (p.ex. mkfs.ext2 ou mke2fs, mkfs.ext3 ou mke2fs -j, etc) Une fois initialis, une partition de swap est active avec swapon. Un systme de chiers est rattach un rpertoire existant de larborescence via mount. Il remplace le contenu ventuel du rpertoire temporairement. De manire automatiser le montage des systmes de chiers et lactivation du swap, on modie /etc/fstab.

Exercices
1. quel est le rle des options -a et -s de swapon ? 2. quel est le rle de loption -a de la commande mount ? 3. laissez tourner la commande vmstat quelques temps et dterminez si le systme swappe de manire active. 4. combien de swap est utilis ? dsactivez tous les espaces de swap et comparez. 5. proposez un schma de partitionnement pour une application particulire et justiez.

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 3: Installation et gestion des packages Conguration du dmarrage

p. 32

'

Conguration du dmarrage 3.2


Rsum des concepts importants
tapes du dmarrage Master Boot Record (MBR) : rst stage boot loader second stage boot loader : LILO ou grub /etc/lilo.conf, /boot/grub/grub.confa lilo ( chaque modication), grub-install (une fois)

23

Lectures supplmentaires
http://tldp.org/HOWTO/LILO.html http://www.cri74.org/linux/howto/grub-howto.html http://www.tldp.org/HOWTO/Multiboot-with-GRUB.html http://www.tldp.org/HOWTO/Bootdisk-HOWTO/index.html http://www.tldp.org/HOWTO/Software-RAID-HOWTO.html
a

Debian et drivs : /boot/grub/menu.lst

& Le chargeur de premier niveau (rst stage boot loader ) peut tre soit le MBR standard MS-DOS ou celui livr par GNU/Linux (package mbr sous Debian), ou encore LILO. Le MBR consiste en les 2 premiers bloc du disque : un bloc de dmarrage et un bloc contenant la table des partitions. La taille de bloc est usuellement de 512 bytes. Le chargeur de deuxime niveau nest, dans le cas de LILO, ncessaire que si LILO est install dans une partition dmarrable, et non pas dans le MBR. Une partition dmarrable est dnote par le drapeau A dans vdisk et ne peut tre quune partition Linux, et pas de swap. Si LILO est install dans le MBR, le dmarrage est possible de nimporte quelle partition Linux ou non Linux (sauf swap), y compris partitions logiques ou dautres disques. Si un autre programme de dmarrage est prfr (p.ex. NTLOADER.EXE, on peut aussi dmarrer GNU/Linux avec ce chargeur). En cas de congurations trs particulires (p.ex. dmarrage sur un disque que le BIOS ne considre pas pour le dmarrage), il faut installer LILO dans le MBR du premier disque. On peut alors, en gnral, faire en sorte que LILO charge son kernel et linitrd ventuel dun autre disque.

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 3: Installation et gestion des packages Conguration du dmarrage

p. 33

Exemple de /etc/lilo.conf : # BIOS moderne, disque large lba32

# Eventuellement: correspondance noms Linux <-> numro pour le BIOS #disk=/dev/hde #bios=0x81 #disk=/dev/sda #bios=0x80 boot=/dev/hda # ici install dans le MBR #boot=/dev/hda1 # ici serait install dans une partition root=/dev/hda3 # partition de / (racine) # Choix de boot sector (mise en page diffrente) install=/boot/boot-menu.b map=/boot/map # 2 secondes delay=20 vga=normal # Arguments du kernel (par dfaut) append="ide-scsi=hdc" default=linux # Image Linux (pas dinitrd) image=/vmlinuz label=linux append="hdc=ide-scsi ide2=autotune" # Image non Linux other=/dev/hda4 label=OTHER

Comme LILO mmorise la suite des adresses de blocs charger l o il est install, il faut le relancer (/sbin/lilo) si lon modie limage charger (kernel, initrd ou paramtres de cong). Par contre, grub utilise le systme de chiers et ne doit pas tre relanc lorsquon change quelque chose. Comme inconvnient, grub ne supporte pas le chargement depuis LVM ou RAID ou des systmes de chiers trs spciques. En cas de problme de dmarrage, on peut dmarrer sur un CD, monter les systmes de chiers p.ex. sous /mnt, puis lancer lilo -r /mnt (ou encore chroot /mnt /sbin/lilo) de manire lancer LILO dans le contexte du systme install.
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 3: Installation et gestion des packages Conguration du dmarrage

p. 34

Exercices
1. crez une disquette de dmarrage contenant uniquement un kernel, et modiez les options ad-hoc via rdev 2. crez une disquette de dmarrage via SYSLINUX 3. dmarrez un autre systme avec grub (ou memtest86) 4. passez de grub LILO pour le dmarrage de votre machine 5. mettez un message spcique et un mot de passe sur votre LILO, que devez-vous faire ? que faudrait-il encore faire pour scuriser la machine ? 6. quoi sert le package mbr ? 7. pouvez-vous dmarrer sur le RAID logiciel avec Linux ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 3: Installation et gestion des packages Compilation et installation locale depuis la source

p. 35

'

Compilation et installation locale depuis la source 3.3


Rsum des concepts importants
tlcharger, vrier, extraire, congurer, compiler, installer gzip, gunzip, bzip2, tar configure, make, make install 24 cours installation depuis source

Lectures supplmentaires

&

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 3: Installation et gestion des packages Gestion des bibliothques dynamiques

p. 36

'

Gestion des bibliothques dynamiques 3.4


Rsum des concepts importants
ldd ldconfig, /etc/ld.so.conf, LD_LIBRARY_PATH, LD_PRELOAD /lib, /usr/lib

25

&

Exercices
1. quel est le chemin de recherche actuel du systme en ce qui concerne les bibliothques dynamiques ? 2. de quelles bibliothques partages (dynamiques) dpend le logiciel /bin/ls ? et /usr/bin/konqueror ? et /sbin/ldconfig ? comparez aussi avec file. 3. lancez /usr/lib/mozilla-firefox/firefox-bin, quel est le problme ? corrigezle manuellement temporairement. proposez ensuite 3 solutions (variable denvironnement permanente, wrapper, conguratio systme active) et testez-les. 4. quel est le rle de la commande fakeroot ? quel est son principe technique (indication : prchargement dune bibliothque dinterception) ? 5. que faire si la conguration systme des bibliothques est sabote ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 3: Installation et gestion des packages Systme de packaging Debian

p. 37

'

Systme de packaging Debian 3.5


Rsum des concepts importants
/etc/dpkg/dpkg.cfg, /etc/apt/apt.conf, /etc/apt/sources.list /var/lib/dpkg/* dpkg, dpkg-reconfigure apt-get alien dselect

26

Lectures supplmentaires
http://www.debian.org/doc/manuals/apt-howto/ http: //people.debian.org/~debacle/refcard/refcard-fr-a4.pdf
& Les commandes principales : Commande dpkg get-selections dpkg set-selections dpkg -l description obtenir ltat des packages congurer ltat des packages liste des packages (optionnel : argument de recherche, pouvant contenir des jokers du shell, exemple : dpkg -l *truc*) obtenir des informations sur un package install installer manuellement un package installer un package et ses dpendances supprimer un package manuellement (optionnellement : --purge, pour supprimer galement les congurations) supprimer un ou plusieurs packages et ses/leurs dpendances (optionnellement : --purge, pour supprimer galement les congurations) recongurer avec debconf correction de problmes de dpendances vrier les chiers installs

dpkg -s PACKAGE dpkg -i package.deb apt-get install PACKAGE dpkg -r PACKAGE apt-get remove PACKAGE

dpkg-recongure PACKAGE apt-get install -f debsums -ca

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 3: Installation et gestion des packages Systme de packaging Debian

p. 38

Pour faire des recherches dans des packages non installs, on peut utiliser : Commande apt-cache search RECHERCHE apt-cache show package apt-get update apt-get upgrade apt-get -u dist-upgrade http ://packages.debian.org/ http ://www.apt-get.org/ http ://volatile.debian.net/ http ://www.backports.org/ Les chiers de conguration : Commande /etc/apt/sources.list /etc/apt/apt.conf description liste des sources dinstallation conguration par dfaut dAPT description recherche dans les sources installables dtails sur un package il faut bien sr que la liste des packages soit jour ! mise jour des packages automatise mise jour une distribution recherche dun chier dans un package non install, dans dautres versions, etc. packages non ofciels packages changeant souvent (anti-virus, etc) ports de versions plus rcentes

On peut utiliser apt-setup1 (ou apt-cdrom directement pour les CD/DVD) pour ajouter des sources dinstallation. Pour reconstruire un package depuis sa source, on tlcharge le package source manuellement ou via apt-get source, puis on utilise dpkg-buildpackage :

schaefer@shakotay:~$ mkdir /tmp/tt schaefer@shakotay:~$ cd /tmp/tt schaefer@shakotay:/tmp/tt$ apt-get source hello Reading Package Lists... Done Building Dependency Tree... Done Need to get 405kB of source archives. Get:1 http://archive.alphanet.ch sarge/main hello 2.1.1-4 (dsc) [562B] Get:2 http://archive.alphanet.ch sarge/main hello 2.1.1-4 (tar) [389kB] Get:3 http://archive.alphanet.ch sarge/main hello 2.1.1-4 (diff) [15.4kB Fetched 405kB in 0s (3090kB/s) dpkg-source: extracting hello in hello-2.1.1 schaefer@shakotay:/tmp/tt/hello-2.1.1$ cd hello-2.1.1 schaefer@shakotay:/tmp/tt/hello-2.1.1$ dpkg-buildpackage -us -uc \ -rfakeroot [ ... ] dpkg-deb: building package hello in ../hello_2.1.1-4_i386.deb. [ ... ]

plus disponible ds Debian etch.


Disponible sous licence GFDL, invariant: les 2 premires pages

c 2006-2007 CRIL - Marc SCHAEFER

LPI-101

Chapitre 3: Installation et gestion des packages Systme de packaging Debian

p. 39

On peut aussi consulter un chier de package directement sans linstaller : Commande dpkg-deb -c package.deb dpkg-deb -x package.deb /tmp/tt dpkg-deb -I package.deb description listage du contenu du chier de package extraire manuellement informations

aptitude est un frontal qui permet deffectuer les mmes oprations quapt-get mais aussi de dterminer, par exemple, les packages installs localement et/ou non maintenus par Debian, en particulier aprs une mise jour.

Exercices
1. consultez les manpages de dpkg, dpkg-reconfigure, alien, apt-cache et apt-get 2. essayez les diverses commandes proposes ci-dessus. 3. consultez quelques chiers sous /var/lib/dpkg 4. comment dterminer dans quel package se trouve ls (package dj install). Et si le package ntait pas dj install ? 5. dterminez la liste des packages installs. 6. quels packages ont -dev dans leur nom ? 7. examinez lentte de la sortie de dpkg -l | more et expliquez les 2 premiers caractres. 8. quelle commande proposeriez-vous pour tlcharger chaque nuit les packages candidats une mise jour, sans les installer proprement dit ? (indication : man apt-get) 9. changez le frontend de debconf et exprimentez 10. tlchargez manuellement un package Debian qui na pas ses dpendances satisfaites et installezle via dpkg. Corrigez le problme avec apt-get install -f. Est-ce une bonne ide dinstaller des packages qui ne sont pas dans Debian standard ? comment en obtenir la liste (aussi p.ex. aprs une mise jour) ? 11. o trouvez-vous des packages plus rcents maintenus pour la version stable ? 12. comment dterminez-vous quels packages ne sont pas des packages disponibles dans les listes de sources disponibles ? 13. ajoutez une source dinstallation (p.ex. un backport) et installez un logiciel. 14. que fait loption APT::Get::Assume-Yes ? 15. tlchargez la source unstable du package hello, et recrez le package binaire. Interrogez le package sans linstaller. Installez le. Vriez que la version installe est plus rcente. 16. quoi peut-il servir de mettre un package en tat hold ?

17. documentez-vous sur le pinning , loption -t dapt-get ainsi que sur les syntaxes apt-get insta apt-get install package+ et apt-get install package=VERSION. 18. doit-on tre root pour gnrer des packages ? et pour les installer ? 19. trouvez, via http://www.rpmfind.net/, le package hello, convertissez-le en package Debian avec alien et installez-le. 20. lancez dselect et essayez de comprendre plus ou moins comment cette chose fonctionne.

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 3: Installation et gestion des packages Systme de packaging Red Hat

p. 40

'

Systme de packaging Red Hat 3.6


Rsum des concepts importants
/etc/rpmrc, /usr/lib/rpm/* rpm, grep

Lectures supplmentaires
27 http://www.rpm.org/RPM-HOWTO/ http://fr.wikipedia.org/wiki/Red_Hat_Package_Manager http://www.rpmfind.net/ de quoi installer nimporte quoi

&

Commande rpm -qf /bin/ls rpm -qpi package.rpm rpm -qpl package.rpm rpm -i package.rpm rpm -U package.rpm rpm -e package.rpm rpm --rebuild PACKAGE-SOURCE rpm -qa | grep package rpm -qi package rpm -Va

description dterminer (q, query) dans quel package (f) se trouve /bin/ls obtenir des informations (iq) du chierpackage (p) package.rpm sans linstaller liste du contenu du package non install installer un package mettre jour un package supprimer un package reconstruire un package chercher le package package dans la liste des packages installs informations sur un package install. vrier le systme et dterminer les chiers manquants.

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS p. 41

'

4. Priphriques et standard de hirarchie FHS


Contenu du chapitre
partitionnement, cration, montage, dmontage et maintenance de systmes de chiers gestion des quotas gestion des permissions daccs aux donnes gestion des propritaires et groupes des donnes liens symboliques et durs trouver et placer les chiers au bon endroit

28

Buts du chapitre
savoir grr les donnes dun systme UNIX, y compris le placement standardis de celles-ci supports de cours additionnels : cours UNIX
&

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Cration de partitions et de systmes de chiers

p. 42

'

Cration de partitions et de systmes de chiers 4.1


Rsum des concepts importants
systme de chiers priphrique de type bloc (block device ) MAJOR, MINOR pilote kernel partitionnement fdisk, mkfs

29

& Un priphrique de type bloc est un priphrique adress, du point de vue UNIX, par un numro de bloc. Les blocs sont de taille xe, usuellement 512 bytes par bloc. On y accde par un chier spcial de type priphrique bloc : schaefer@voyager:/data/home/schaefer$ ls -l /dev/hda brw-rw---- 1 root disk 3, 0 Mar 31 15:31 /dev/hda Les numros 3, 0 correspondent aux numros de MAJOR et de MINOR. Le MAJOR est en gnral le type gnral de priphrique associ un pilote kernel donn : schaefer@voyager:/data/home/schaefer$ grep ide /proc/devices 3 ide0 22 ide1

Quant au MINOR, cest un point dentre dans le priphrique lui-mme (p.ex. numro de disque sur un bus, numro de partition, etc). On cre ces entres (chiers spciaux) via la commande mknod, ou via le script MAKEDEV : root@voyager:/dev # mknod hda b 3 0 root@voyager:/dev # mknod hda1 b 3 1 root@voyager:/dev # ./MAKEDEV isdnmodem

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Cration de partitions et de systmes de chiers

p. 43

Ces entres gurent rellement sur le disque (et sont crs automatiquement linstallation de base, voire plus tard linstallation de packages particuliers) ou dans un systme de chiers dynamique virtuel. Loutil fdisk dobtenir la table des partitions et la gomtrie dun disque-dur, ainsi quen mode interactif de partitionner celui-ci : root@voyager:~ # fdisk -l /dev/hda Disk /dev/hda: 60.0 GB, 60060155904 bytes 255 heads, 63 sectors/track, 7301 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/hda1 * /dev/hda2 /dev/hda5 /dev/hda6 /dev/hda7 /dev/hda8 Start 1 5 5 1221 3653 1099 End 4 7299 1098 3652 7299 1220 Blocks 32098+ 58597087+ 8787523+ 19535008+ 29294496 979933+ Id 83 5 83 83 83 82 System Linux Extended Linux Linux Linux Linux swap

Partition table entries are not in disk order root@voyager:~ # fdisk /dev/hda Command (m for help): p Disk /dev/hda: 60.0 GB, 60060155904 bytes 255 heads, 63 sectors/track, 7301 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/hda1 * /dev/hda2 /dev/hda5 /dev/hda6 /dev/hda7 /dev/hda8 Start 1 5 5 1221 3653 1099 End 4 7299 1098 3652 7299 1220 Blocks 32098+ 58597087+ 8787523+ 19535008+ 29294496 979933+ Id 83 5 83 83 83 82 System Linux Extended Linux Linux Linux Linux swap

Les oprations principales de fdisk sont : p crer une partition 1. partition primaire (1-4), tendue (1 max) ou logique (dans la partition tendue) 2. numro de partition (si primaire ou tendue) 3. cylindre de dbut de la partition (RETURN pour valeur propose) 4. dimension de la partition (valeur absolue en cylindres ou tailles comme 16M, 5000M ou 5G, etc) d supprimer une partition (numro) t changer le type de la partition (numro, type ; l pour liste) w pour inscrire les changements
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Cration de partitions et de systmes de chiers

p. 44

q pour quitter La cration dun systme de chiers se fait via la commande mkfs (et ses drivs : mkfs.ext3 ou mke2fs -j, etc). Un systme de chiers peut aussi tre mont partir dun priphrique bloc mul sur un chier (pour pour essais, maintenance dinitrd, ou chiffrement de donnes) : % # Cration dun fichier de 16 MB contenant des NULs % dd if=/dev/zero of=un_fichier bs=1024k count=16 16+0 records in 16+0 records out 16777216 bytes transferred in 0.093541 seconds (179356606 bytes/sec) % # Cration dun systme de fichiers ext3 % mke2fs -j -i 65536 -b 4096 -c -L test -m 10 un_fichier mke2fs 1.35 (28-Feb-2004) un_fichier is not a block special device. Proceed anyway? (y,n) y Filesystem label=test OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 256 inodes, 4096 blocks 409 blocks (9.99%) reserved for the super user First data block=0 1 block group 32768 blocks per group, 32768 fragments per group 256 inodes per group Checking for bad blocks (read-only test): done Writing inode tables: done Creating journal (1024 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 30 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. % # Montage de ce systme de fichiers # mkdir /mnt/test # mount -o loop un_fichier /mnt/test # df /mnt/test /tmp/un_fichier

16336

4124

10576

29% /mnt

Exercices
1. dans lexemple ci-dessus, quels droits doit-on avoir pour crer le systme de chiers ? monter le systme de chiers ? et dans le cas gnral (pourquoi) ? 2. crez plusieurs systmes de chiers diffrents (p.ex. ext2, ext3, reiserfs, vfat, xfs) et comparez
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Cration de partitions et de systmes de chiers

p. 45

p.ex. les mta-donnes POSIX. Utilisez pour ce faire loption -t de mkfs, ou les utilitaires spciques mkfs.* 3. comment faire une vrication simple du mdia avant de crer le systme de chiers ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Maintenir lintgrit des systmes de chiers

p. 46

'

Maintenir lintgrit des systmes de chiers 4.2


Rsum des concepts importants
dmontage non propre, vrication, journalisation espace disque et inodes du, df fsck, e2fsck mke2fs tune2fs, debugfs, dumpe2fs

30

& Au dmarrage du systme, le chier /etc/fstab est consult et les systmes de chiers non marqus noauto sont monts automatiquement. Sils nont pas t dmonts proprement, une passe de vrication et dauto-correction simple est lance (fsck, le system check ) et ils ne sont monts quaprs. Si une dfectuosit qui ne peut tre rpare automatiquement est dtecte, une rparation manuelle est faire (le systme reste en mode mono-utilisateur), p.ex. avec e2fsck /dev/hda3 pour rparer un systme de chiers ext2 ou ext3 situ sur la partition 3 du matre du primaire IDE/ATA. Dans tous les cas, par dfaut, une vrication automatique est faite tous les 190 jours ou tous les 30 montages (30 redmarrages en gnral). Les seuls cas o le lancement de fsck est possible est si un systme de chiers est mont read-only (mount / -o remount,ro) ou sil nest pas mont. Le cas de / est spcial : il est mont en lecture seulement. En cas de panne franche du systme (p.ex. panne de courant), une partie des donnes dans le cache naura pu tre crite. Le rle de fsck est dviter lapparition de donnes incorrectes (p.ex. en tronquant les chiers au dernier endroit encore correct) en contrlant ltat des mtadonnes. Sur de grands systmes de chiers, cette opration peut prendre un temps considrable. En consquence, les systmes de chiers journaliss ont fait leur apparition (p.ex. ext3) : ils permettent dassurer une certaine atomicit des oprations sur les mtadonnes (optionnellement aussi sur les donnes) via lutilisation dun journal, qui est rejou en cas de panne, trs rapidement : cela vite lutilisation de fsck et une perte de temps. Il est donc recommand, sur un systme de chiers journalis dune certaine taille de supprimer

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Maintenir lintgrit des systmes de chiers

p. 47

la vrication automatise rgulire, via la commande tune2fs, de manire viter des temps dattente en cas de redmarrage, et de planier un fsck manuel rgulier (p.ex. tous les 3 mois), mme sur un systme de chiers journalis ! Ce nest pas obligatoire, mais cela vous donnera un sentiment de scurit supplmentaire. Ce sera aussi loccasion de vrier que votre systme redmarre on oublie souvent ce quest le dmarrage dun systme GNU/Linux . . . :) La commande fsck prend les arguments : -A vrier tous les systmes de chiers lists dans /etc/fstab -t restreindre un type pour -A -C progress bar -a rparer automatiquement -r rparer interactivement La commande tune2fs permet dobtenir ou de modier les paramtres dun systme de chiers. -L nom congurer le label (nom) du systme de chiers -l lister les informations du superblock du systme de chiers -i duree conguration de lintervalle entre les vrications automatiques (0 : jamais). -c nombre conguration du nombre de montage entre les vrications automatiques (0 : jamais). La commande dumpe2fs permet dobtenir des informations internes dun systme de chiers. -b afcher la liste des blocks mauvais (bad blocks ) -h afcher uniquement les informations du superblock La commande debugfs permet de consulter les mtadonnes directement, p.ex. pour restaurer un chier effac ce qui est trs difcile par dfaut sur un systme UNIX. Ses commandes principales sont : help aide sur les commandes stat informations sur un objet du fs logdump ext3 : sauver le journal dans un chiers Lespace disque disponible est rsum via la commande df (on peut y donner un argument de rpertoire, la sortie sera alors limite au systme de chiers sur lequel se rpertoire se trouve). Les systmes de chiers POSIX ont une deuxime limite en plus de la place disponible : le nombre dinodes (de chiers et de rpertoires) maximum. On peut visualiser ces valeurs avec df -i. Loption -a montrera galement les systmes de chiers virtuels (p.ex. /proc). La commande du permet dobtenir la taille utilise par des chiers et rpertoires, arrondie aux blocs utiliss, aussi rcursivement. Ses options sont : -a tous les objets sont afchs (pas seulement les rpertoires) -b afcher la taille non arrondie au blocs, et en unit bytes -c effectuer un total -h format plus humain

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Maintenir lintgrit des systmes de chiers

p. 48

Ses arguments sont les objets que lon dsire compter (rpertoires, chiers, etc).

Exercices
1. vriez un systme de chiers non mont avec fsck Vous pouvez forcer la vrication si fsck pense que le fs est propre. 2. comment rparer automatiquement un fs ? comment rpondre oui toutes les questions ? 3. comment rparer un fs ext3 alors que le superblock a t dtruit ? 4. obtenez les informations du superblock dun systme de chiers laide de la commande tune2fs (et/ou dumpe2fs) 5. changez les paramtres de vrication de manire ce que la vrication automatique ne soit plus faite sur la racine. 6. peut-on ajouter une journalisation sur un fs ext2 ? comment ? 7. combien dinodes reste-t-il sur / ? combien de blocs ? combien de bytes ? et en mgabytes ou gigabytes ? (humain) 8. listez tous les systmes de chiers monts, y compris les systmes de chiers virtuels cachs. 9. ne listez que les systmes de chiers dun type donn. 10. combien de place prend le rpertoire /boot ? 11. triez les sous-rpertoires de /usr par taille dcroissante

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Montage et dmontage

p. 49

'

Montage et dmontage 4.3


Rsum des concepts importants
montage et point de montage /etc/fstab mount, umount 31

& Un systme de chiers est une organisation de donnes et de mtadonnes (permissions, nom de chier, propritaire, ACL, attributs tendus, fork ) organise en gnrale hirarchiquement (arbre en gnral). Sous UNIX, on y accde en rattachant le block device qui contient le lesystem larborescence systme un point de montage systme via le concept de montage (mount ing). Un systme de chiers ne peut tre dmont que sil nest plus utilis. La commande lsof ou fuser -m permet de dterminer les processus utilisant un fs. Les options de montage sont : noauto pas de montage au dmarrage exec on peut excuter des programmes depuis ce fs suid le SUID est actif user un utilisateur peut monter ce fs unhide systmes de chiers CD-ROM : montrer les noms et leurs aliases async E/S asynchrone sync E/S synchrone ro en lecture seulement defaults rw, suid, dev, exec, auto, nouser, async La commande mount elle-mme supporte loption additionnelle remount (qui permet de changer les options de montage dun fs dj mont).

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Montage et dmontage

p. 50

Exercices
1. comment automatiser le montage dun systme de chiers au dmarrage ? 2. comment autoriser le montage dun systme de chiers par les utilisateurs et ne pas le monter automatiquement au dmarrage (p.ex. oppy, CD-ROM, etc) 3. comment vrier un systme de chiers alors quil est mont et ne peut tre dmont compltement (indication : consultez les options remount,ro et remount,rw de la commande mount). 4. comment mounter sans modier ltat de montage /etc/mtab ? 5. comment assurer au montage des requtes dE/S synchrones ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Gestion des quotas

p. 51

'

Gestion des quotas 4.4


Rsum des concepts importants
quota, repquota quotaon, edquota

Lectures supplmentaires
32 http://www.tldp.org/HOWTO/Quota.html

& Linux supporte deux types de quotas : les quotas par utilisateurs, et les quotas par groupe. De plus, un quota spcie 2 genres de limites : les limites sur les chiers et objets et les limites sur le nombre de blocs utiliss (place disque). Enn, un quota peut tre dur ou faible (hard and soft quota). Un quota dur interdit lallocation de plus de ressources. Un quota faible est un avertissement et se change en quota dur aprs un certain dlai. On active les quotas en ajoutant loption usrquota et/ou grpquota dans /etc/fstab, en crant les chiers de gestion des quotas, les renseignant sur ltat actuel avec quotacheck puis en activant les quotas avec quotaon -av (pour tous les systmes de chiers avec quota). apt-get install quota cd /tmp dd if=/dev/zero of=a_file bs=1024k count=100 mke2fs -j a_file mount a_file -o loop /mnt mount /mnt -o usrquota,remount # Quotas version 2 touch /mnt/aquota.user chmod 600 /mnt/aquota.user quotacheck -v /mnt

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Gestion des quotas

p. 52

# Quotas version 1 rm -f /mnt/aquota.user quotacheck -mcF vfsold /mnt chmod 600 /mnt/quota.user quotaon /mnt

Exercices
1. ajoutez des quotas par groupe et par utilisateur sur /home. 2. ditez les quotas de votre utilisateur, puis de votre groupe 3. ditez les congurations gnrales de quota (edquota -t) 4. afchez vos quotas avec quota, et ceux dun autre utilisateur ou groupe. 5. afchez un rapport de quota avec repquota 6. copiez une conguration de quota dun utilisateur lautre

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Gestion des permissions daccs aux donnes

p. 53

'

Gestion des permissions daccs aux donnes 4.5


Rsum des concepts importants
permissions UNIX : chmod, umask attributs ext[23] : chattr

Lectures supplmentaires
33 cours scurit

&

Exercices
1. comment changer rcursivement des permissions ? 2. quoi sert la permission t sur un rpertoire ? et sur un chier excutable ? 3. que se passe-t-il si le bit sgid est mis sur un rpertoire ? 4. comment rendre un chier immutable ou en ajout seulement avec la commande chattr. Est-ce que cela fonctionne aussi sur un fs ni ext2, ni ext3 ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Propritaires et groupes

p. 54

'

Propritaires et groupes 4.6


Rsum des concepts importants
chown, chgrp

Lectures supplmentaires
34 cours scurit

&

Exercices
1. pouvez-vous changer le propritaire dun chier, en tant quutilisateur normal ? 2. quels groupes pouvez-vous choisir pour un chier ? 3. comment changer lutilisateur et le groupe simultanment ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Liens symboliques et durs

p. 55

'

Liens symboliques et durs 4.7


Rsum des concepts importants
ln -s (soft/symlink) et ln (hardlink) option -f (force) soft-link (-s) : concept doriginal et de lien ; risque de dangling link hard-link : limit au mme systme de chiers ; lien dans la structure POSIX du systme de chiers (partage dinode : mtadonnes ; et de donnes) ; pas de concept doriginal.

35

&

Exercices
1. comment trouver, avec find, des dangling links (liens symboliques ne pointant pas/plus sur un chier existant) 2. exprimentez avec les liens symboliques sur des rpertoires : y-a-t-il une diffrence entre ls lien et ls lien/ ? 3. vriez que le concept de hardlink na pas doriginal. 4. est-ce que find suit les liens symboliques ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Trouver et placer les chiers

p. 56

'

Trouver et placer les chiers 4.8


Rsum des concepts importants
chercher en temps rel : find dans le path : which dans le systme : whereis dans un index (BD) : locate, slocate, updatedb, /etc/updatedb.conf

36

Lectures supplmentaires
man 7 hier http://www.pathname.com/fhs/

&

Exercices
1. quelle est la diffrence fondamentale entre find et locate ? 2. comment regnrer la base de donnes utilise par locate ? 3. quelle est la diffrence entre locate et slocate ? 4. o se trouve en gnral la conguration systme dun programme ? 5. o se trouvent les congurations par utilisateur ? 6. o installez-vous des logiciels maintenus localement ? 7. o sont installs en gnral des logiciels optionnels ? 8. o sont installs les binaires prvus pour le superutilisateur ? et lorsquils ne sont pas essentiels au dmarrage ? 9. o se trouve le rpertoire utilisateur de root sous GNU/Linux ? 10. o se trouvent les priphriques ? 11. o se trouvent les chiers utiliss par le dmarrage de la machine ? 12. o se trouvent les bibliothques partages par dfaut (2 rponses) ? 13. o sont les points de montage temporaires ? 14. o se trouvent les chiers temporaires ? 15. quel genre de donnes se trouvent dans /usr ? 16. o sont en gnral les chiers de X11 ? 17. o sont les documentations des packages installs ?
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 4: Priphriques et standard de hirarchie FHS Trouver et placer les chiers

p. 57

18. o sont les jeux ? 19. o sont les chiers de dnition de dveloppement pour le C ? (chiers includes ) 20. o sont les donnes non essentielles au dmarrage et partageables sur plusieurs machines (en lecture seulement) 21. o peut-on placer les sources ? 22. o place-t-on les donnes systmes qui changent ? les logs ? les queues ? les donnes de cache ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 5: Commandes UNIX et GNU p. 58

'

5. Commandes UNIX et GNU


Contenu du chapitre
travailler en ligne de commande ltres de traitement de texte gestion de chiers chiers, pipes et redirections crer, surveiller, modier les priorits et tuer des processus recherche textuelle avec expressions rgulires dition de texte avec vi

37

Buts du chapitre
savoir travailler efcacement et trouver linformation sur son systme UNIX savoir grer les processus du systme savoir utiliser lditeur vi supports de cours additionnels : cours UNIX et shell et exercices, Guide UNIX
&

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 5: Commandes UNIX et GNU Travailler en ligne de commande

p. 59

'

Travailler en ligne de commande 5.1


Rsum des concepts importants
. bash, man echo, exec, pwd, env, export, unset set paramtres positionnels manuels options du shell ~/.bash_history, ~/.profile

38

Lectures supplmentaires
Guide UNIX et cours shell info bash (package bash-doc)
& Le shell bash a dj t dcrit lors du cours shell. Nous donnons ici quelques complments utiles et quelques exercices supplmentaires. Le shell excute les commandes en les cherchant dans un ordre dni : 1. dans les alias 2. dans les mots-cls comme if, for, while, case, do, . . . 3. dans les fonctions dnies 4. dans les commandes internes (cd, help, type, . . .) 5. nalement dans le $PATH (programmes excutables, scripts excutables, notamment avec #! she-bang, etc) Lordre de sourcing des scripts initiaux au login est le suivant : (document dans la section INVOCATION du man de bash) 1. /etc/profile 2. ~/.bash_profile, ou ~/.bash_login ou ~/.profile (ce dernier compatible sh/ksh) Dans le cas dun sous-shell (pas un shell de login), les chiers /etc/bash.bashrc puis ~/.bashrc sont sourcs. La commande set permet de dnir manuellement les paramtres positionnels ($1 ... ${N}), ou dactiver des options du shell : -o no clobber (pas dcrasement) -v verbose : debugging -e exit on error

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 5: Commandes UNIX et GNU Travailler en ligne de commande

p. 60

Exercices
1. quelles sont les variables dnies dans votre shell ? comparez le rsultat des commandes env et set (indication : env | sort -u > /tmp/env.out et diff) 2. visualisez et modiez la variable PS1 3. quoi servent les chiers .bashrc, .bash_profile et .bash_logout ? ajoutez du debugging (echo) et dterminez quelle occasion ces scripts sont excuts (comparez en particulier un login, p.ex. sur une console texte, et le lancement dun nouveau sous-shell ou dun xterm) 4. quelle est la diffrence entre programme et exec programme ? 5. quelle sont les diffrences entre VAR=valeur; programme export VAR=valeur; programme env VAR=valeur programme 6. documentez-vous sur la commande passwd et rpondez aux questions suivantes : (a) comment ladministrateur peut bloquer et dbloquer un compte ? (b) comment changer les dlais minimum et minimum de validit dun mot de passe ? (c) quels chiers passwd peut-il accder/modier ? 7. quy-a-t-il dans le chier .bash_history et comment peut-on contrler ses paramtres ? 8. .profile et .bash_profile sont-ils quivalents ? 9. quelle est la diffrence entre la commande interne kill et lexcutable /bin/kill ? mme question pour echo. 10. crez un script dans votre bin, excutez-le avec son chemin entier, puis changez le PATH de manire pouvoir le lancer sans spcier son emplacement puis assurez-vous qu chaque nouvelle connexion et nouvel xterm la modication de $PATH soit active ! 11. et si vous vouliez faire de mme, mais pour tous les utilisateurs du systme ? 12. quoi sert la commande apropos ? et loption -k de man ? trouvez les commandes qui permettent de compresser des donnes. 13. utilisez la commande date pour afcher la date en format ISO (2006-03-24)

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 5: Commandes UNIX et GNU Filtres de traitement de texte

p. 61

'

Filtres de traitement de texte 5.2


Rsum des concepts importants
cat, cut, expand, fmt, head, join, nl, od, paste, pr, sed, sort, split, tac, tail, tr, unexpand, uniq, wc

Lectures supplmentaires
39 Guide UNIX et manpages

&

Exercices
1. documentez-vous sur chacun des programmes lists ci-dessus 2. coupez un gros chier en petits morceaux (a) comment le recrer ? (b) vriez la taille en bytes du chier, sans utiliser ls (c) comment vrier que le chier na pas t corrompu (indication : md5sum, cmp, diff) 3. afchez uniquement les champs utilisateur, rpertoire par dfaut et shell par dfaut du chier /etc/passwd, spars par des espaces, le tout tri sur le nom dutilisateur . 4. dterminez la liste des shells effectivement utiliss par les utilisateurs du systme, sans doublons 5. comparez la longueur en bytes dun chier aprs traitement par expand et unexpand 6. gnrez un long texte avec fortune -l et repaginez-le 50 caractres par ligne. 7. afchez les 7 premires lignes de /etc/passwd, la dernire ligne de /etc/group, les changements en continu dun chier de log, toutes les lignes de /etc/group sauf la premire. 8. numrotez les lignes de /etc/motd 9. vriez que les ns de lignes des chiers sous UNIX sont composes du caractre LF (linefeed ), code hexadcimal 0x0a uniquement. 10. comment prparer un chier pour impression en double interligne ? 11. remplacez toutes les occurences de /bin/bash par /bin/sh dans /etc/passwd en stockant le rsultat dans /tmp/passwd
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 5: Commandes UNIX et GNU Filtres de traitement de texte

p. 62

12. afcher les lignes dun chier, lenvers 13. remplacer les minuscules par les majuscules correspondantes dans un chier 14. laide des chiers /etc/passwd et /etc/group, crez un chier dont chaque ligne contiennent un utilisateur et le nom de son groupe (indication : commencez par trier sur des chiers temporaires !) 15. (difcile) numrotez les lignes de /etc/motd sans utiliser nl ni cat -n (indication : utilisez la commande seq et les backticks ou le $() ainsi quuniquement des commandes vues ici) 16. quel est le problme avec la commande cut lorsquil y a plus dun espace sparateur ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 5: Commandes UNIX et GNU Gestion des chiers

p. 63

'

Gestion des chiers 5.3


Rsum des concepts importants
cp, mkdir, mv, rm, rmdir, touch ls find le globbing (expansion des jokers *?{}[]~)

40

& Cest le shell qui soccupe de lexpansion des arguments, que cela soit les variables denvironnement, les oprateurs ou $(), les calculs, et les wildcards (jokers, mtacaractres du shell).

Exercices
1. documentez-vous sur chacun des programmes lists ci-dessus 2. comment crer toute une hirarchie de rpertoire dun seul coup ? comment la supprimer (deux mthodes) ? comment spcier la permission utilise ? 3. peut-on supprimer un rpertoire qui nest pas vide avec rmdir ? 4. comment crer un chier avec une date de modication dans le pass ? 5. comment copier plusieurs chiers la fois dans un rpertoire ? en conservant leurs permissions ? copier aussi les sous-rpertoires ? 6. comment viter lcrasement avec cp et mv ? quelle est la conguration par dfaut ? comment la changer ? est-ce une bonne ide ? 7. quels sont les deux rles de mv ? 8. trouvez au moins une autre faon de crer un chier que la commande touch 9. testez et documentez les options principales de ls -l -F -a -R -d -1
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 5: Commandes UNIX et GNU Gestion des chiers

p. 64

peut-on les combiner ? comment ? 10. faites une recherche complexe avec find, par exemple les chiers dont le nom comprend un s, de taille infrieure 64 kilobytes, appartenant root et de type chier (par opposition block device, etc), dont le dernier accs est plus rcent que hier 11. comment excuter une commande pour chaque chier trouv avec find ? et avec conrmation ? 12. comparez les commandes suivantes, prvoyez et testez : (a) echo ceci est mon repertoire: $HOME: * (b) echo ceci est mon repertoire: \$HOME: * (c) echo "ceci est mon repertoire: $HOME: *" (d) echo "ceci est mon repertoire: \$HOME: *" (e) echo ceci est mon repertoire: $HOME: * (f) echo ceci est mon repertoire: \$HOME: * 13. comparez et expliquez : (a) ls /bin/*cho (b) ls /bin/*cho (c) ls "/bin/*cho" (d) ls /bin/\*cho 14. montrez deux faons dafcher un texte avec une apostrophe 15. comment afcher la taille dun chier de manire plus intuitive (kilobytes, mgabytes, etc) avec ls ? 16. quoi peut servir le caractre tilda ~ (deux rles principaux, consultez man bash, paragraphe Tilde Expansion) 17. que fait la commande rename et en quel langage est-elle crite ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 5: Commandes UNIX et GNU Fichiers, pipes et redirections

p. 65

'

Fichiers, pipes et redirections 5.4


Rsum des concepts importants
tee, xargs <, <<, >, >>, |, 41

&

Exercices
1. quels sont les 3 ots standard ouverts par dfaut pour chaque processus sous UNIX ? 2. comment peut-on rediriger un ot dans un autre ? dans un chier ? 3. comment fonctionne un HERE document (<<EOF) 4. comment afcher les chiers dont le nom contient la date du jour ? 5. quoi servent les commandes xargs et tee ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 5: Commandes UNIX et GNU Crer, surveiller et tuer des processus

p. 66

'

Crer, surveiller et tuer des processus 5.5


Rsum des concepts importants
&, bg, fg, jobs kill, nohup ps, top numro de processus usuels, de jobs (%N) et spciaux (p.ex -1) kill -9

42

& La commande nohup permet de lancer un processus protg contre le signal de raccrochage SIGHUP, avec sa sortie dans un chier nohup.out.

Exercices
1. quelle est la diffrence entre jobs et ses processus ? comment lister lun et lautre ? comment lister tous les processus du systme ? 2. quest-ce quapporte le lancement avec & ? 3. comment lister les signaux que kill peut envoyer ? quel signal est envoy par dfaut ? 4. que fait la commande killall sous GNU/Linux ? et sous Solaris ? 5. comment tuer un processus sans lui permettre dintercepter lopration ? (ni p.ex. sauver ses donnes)

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 5: Commandes UNIX et GNU Modication des priorits dexcution

p. 67

'

Modication des priorits dexcution 5.6


Rsum des concepts importants
nice, renice

43

& UNIX est un systme multitche premptif en temps partag. Cela signie que lon peut associer des priorits aux processus (de -20 19, la priorit -20 tant la plus grande et 19 la plus faible). Comme UNIX est temps partag (time-sharing ) les priorits ne sont pas absolues mais pondres par le bout de temps CPU dj consomm par le processus (quantum ). Cela signie quun processus de priorit suprieure ne va pas bloquer compltement les processus de priorits infrieures, seulement les ralentir de manire trs importante. Linux propose aussi, pour des besoins spciques, des processus de classe temps rel qui sont de priorit plus grande que les processus time-sharing et bloquants. La priorit par dfaut est 0. La commande ps (et top) indiquent les processus de priorit augmente (ngative) par un < et les processus de priorites diminues (positives) par N, comme nice .

Exemples
% sleep 3600 & [2] 10265 schaefer@voyager:/data/home/schaefer$ renice 0 10265: old priority 0, new priority 0 schaefer@voyager:/data/home/schaefer$ renice 1 10265: old priority 0, new priority 1 schaefer@voyager:/data/home/schaefer$ renice 1 10265: old priority 1, new priority 1 schaefer@voyager:/data/home/schaefer$ renice 0 renice: 10265: setpriority: Permission denied
c 2006-2007 CRIL - Marc SCHAEFER

10265 10265 10265 10265

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 5: Commandes UNIX et GNU Modication des priorits dexcution

p. 68

schaefer@voyager:/data/home/schaefer$ renice -1 10265 renice: 10265: setpriority: Permission denied schaefer@voyager:/data/home/schaefer$ renice -19 10265 renice: 10265: setpriority: Permission denied schaefer@voyager:/data/home/schaefer$ renice 19 10265 10265: old priority 1, new priority 19

Exercices
1. y-a-t-il dj des processus prioritaires ou non prioritaires sur votre systme ? 2. lancez un sleep 3600 de manire non prioritaire, puis augmentez sa priorit, et diminuez la : quelles oprations se font sous root ? 3. comment diminuer la priorit de tous les processus dun utilisateur ? dun terminal (process group) ?

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 5: Commandes UNIX et GNU Recherche textuelle avec expressions rgulires

p. 69

'

Recherche textuelle avec expressions rgulires 5.7


Rsum des concepts importants
grep, sed regexp (expressions rgulires) 44

& Il est important de ne pas confondre les wildcards ou jokers du shell et les regexp expressions rgulires. Beaucoup dutilitaires proposent le support de regexp en interne, notamment pour des recherches de sous-chanes ou des remplacements. Il nexiste malheureusement pas quun seul type de regexp, mais les diffrences sont surtout dans ltendue des possibilits, la base reste compatible. La commande sed permet de remplacer des textes dans un chier. Elle applique une ou plusieurs commandes sur un ot (stream ) de donnes. Sa syntaxe gnrale est : sed [address1][,address2][!]command[options] [files...] Les adresses sont des expressions rgulires ou des numros de lignes.

Exercices
1. tudiez les options -i, -l, -c, -n et -v de grep. 2. quelle est la diffrence entre grep et egrep ? 3. que font les commandes (a) sed 1,3s/aa/bb/g < file (b) sed /here/,$d < file (c) sed /ll/,/ff/!s/maison/house/g 4. que dsigne la regexp a{1,3} ?
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 5: Commandes UNIX et GNU Edition de texte avec vi

p. 70

'

Edition de texte avec vi 5.8


Rsum des concepts importants
recherche : /, ? dplacement dun caractre : h, j, k, l dplacement : G, H, L modication : i, c, d, dd, p, o, a on retourne au mode dplacement avec ESC sauver/quitter/charger/forcer ZZ, :w, :q, :e, :w! commandes : :!COMMANDE (en mode dplacement uniquement)

45

Lectures supplmentaires
rsum des commandes vi vimtutor (package vim)
&

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 6: Corrig des exercices p. 71

6. Corrig des exercices


Architecture et matriel
BIOS 1. 2. 3. 4. 5. 6. dmesg | grep CHS= (cong du BIOS, enable/disable on-chip peripherals) (cong du BIOS, halt on errors/not keyboard) (cong du BIOS, ordre de dmarrage) free et grep MemTotal /proc/meminfo (a) hdparm -g /dev/hda (b) hdparm -C /dev/hda (c) hdparm -v /dev/hda ; hdparm -d1 /dev/hda ; hdparm -d0 /dev/hda ; hdparm -t -T /dev/hda (d) hdparm -r 1 /dev/hda 7. (a) non, voir uname -r et le HOWTO Large Disk (b) dautre OS qui scratchent les donnes de GNU/Linux dmarrage non fonctionnel : petite partition (c) support gros disque ; sans lba32, crez une petite partition /boot ou / entirement sous cylindre 1024

Cartes modems et son 1. pilotes spciques ou gnriques selon les cas propritaires (Winmodem) 2. voir les HOWTOs et linmodem.org 3. /dev/ttyS0, setserial /dev/ttyS0 spd_vhi 4. voir example comment dans /etc/inittab, activer avec telinit q 5. mknod, ou script MAKEDEV 6. minicom -s 7. sndconfig Priphriques SCSI 1. la liste des priphriques SCSI (avec des dtails) et le numro SCSI ID et LUN, class par carte SCSI (relle ou virtuelle come ide-scsi ou usb-storage) 2. 7 (8 si lon considre que le HA est un priphrique) 3. pour un graveur sur le matre du secondaire IDE, congurer p.ex. LILO avec append="hdc=ide-scsi", redmarrer. Ensuite diter /etc/fstab et/ou crer un lien symbolique : ln -s /dev/scd0 /dev/cdrom. Noter quavec des distributions rcentes avec udev, on modierait plutt /etc/udev/rules.d/z25_persistent-cd.rules
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 6: Corrig des exercices p. 72

4. 5. 6. 7.

append="max_scsi_luns=1" dans LILO p.ex. il change de /dev/sdb /dev/sda cdrecord -scanbus scsiinfo -a /dev/sda ou hdparm -gv /dev/sda

Cartes dexpansion 1. for i in interrupts ioports dma pci do cat /proc/$i; done grep , /proc/interrupts 2. lspci | wc -l 3. lspci | grep bridge 4. (a) lspci -t (b) lspci -d 8086: 5. (a) interroger et congurer des cartes PCI (b) setpci -d *:* latency_timer=40 6. cat /proc/interrupts 7. apt-get install isapnptools, puis pnpdump Priphriques USB 1. lsmod | grep usb 2. lsusb

X Window System
Conguration de XFree86 1. dans la Debian, le dmarrage est fait via un script dinit du niveau 2 5 (/etc/rc[2-5].d/*dm), lanc par init lorsque le niveau 2-5 est atteint. Dans la Red Hat et drivs, la conguration est directement faite dans /etc/inittab, et le niveau 3 est sans X (avec rseau) et le niveau 5 avec X et rseau. 2. on voit de lactivit dans le protocole de la souris (utile pour debugging, p.ex. dterminer quel port est utilis pour une souris srie). 3. manipulations simples 4. le chier .xinitrc (sous Debian GNU/Linux et les autres distributions modernes, ce chier est remplac par .xsession : le plus simple est de faire un lien symbolique de lun lautre). 5. Debian installe un font-server par dfaut si lon installe le paquet x-window-system. On peut vrier quil est bien lanc avec ps auxw | grep xfs et voir quil est bien utilis en regardant les logs du serveur X, p.ex. via XFree86 2>/tmp/start-log, ou en vriant que la section Files du chier /etc/X11/XF86Config (ajouter -4 pour Debian) contient bien une entre pour le serveur de fonte (socket UNIX port 7100). 6. manipulation simple. Lier ensuite /dev/mouse la souris rellement utilise (p.ex. /dev/psaux si lon ne donne pas le priphrique manuellement). 7. XFree86 -configure. La conguration est gnre dans /root/ et peut tre teste. 8. xvidtune permet de gnrer des ModeLines.
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 6: Corrig des exercices p. 73

Conguration dun gestionnaire de connexion 1. Sous Debian, /etc/init.d/xdm stop et start ; sous Red Hat, telinit 3 et telinit 5. 2. /etc/X11/xdm/Xresources, champ xlogin*greeting 3. /etc/X11/xdm/Xservers, option -depth (ou -bpp) 4. /etc/X11/xdm/xdm-config, commenter avec ! DisplayManager.requestPort: 0, puis autoriser dans /etc/X11/xdm/Xaccess, dcommenter * et aussi loption CHOOSER si dsir (lire les commentaires). 5. ajouter :1 local /usr/X11R6/bin/X vt8 -dpi 100 -nolisten tcp dans le chier /etc/X11/xdm/Xservers 6. (a) login sur le serveur localhost (b) choix du login (chooser) (c) login sur le serveur localhost, avec client spcial X dans X (d) manipulation simple 7. manipulation simple Conguration dun gestionnaire de fentres et des ressources 1. xterm -background red (ou -bg red) 2. xterm*background: red 3. 4. 5. on voit que les dcorations des fentres et menus sont grs par le window-manager Travail distant et scurit 1. non, car -nolisten tcp dans /etc/X11/xdm/Xservers 2. xhost +1.2.3.4, o 1.2.3.4 est ladresse IP ou le nom de la machine de votre voisin. Votre voisin fait ensuite xclock -display 1.2.3.5:0, o 1.2.3.5 est votre adresse IP ou le nom de votre machine (ou encore export DISPLAY=1.2.3.5:0; xclock) 3. xhost -1.2.3.4, xhost 4. -nolisten tcp 5. ssh -X 1.2.3.4 (suppose que /etc/ssh/sshd_config autorise le X11Forwarding). La variable DISPLAY montre un serveur X virtuel gr par SSH (tunnel). Utiliser xauth list pour la liste des cookies. 6. (a) su conserve les variables et le rpertoire courant du shell ayant appel le su ; su fait lquivalent dun nouveau login, la variable DISPLAY nest pas passe !

(b) export XAUTHORITY=~user/.Xauthority, avec user le nom de lutilisateur ayant lanc la session X ; xhost +localhost (dangereux car trop gnral) xauth add VA o valeur est quelque chose comme la sortie de xauth list | grep unix sous lutilisateur qui a lanc la session (mot de passe gnr).

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 6: Corrig des exercices p. 74

Installation et gestion des packages


Partitionnement 1. activer tous les swaps dnis dans /etc/fstab ; donner les statistiques dutilisation des swaps actifs 2. monter tous les lesystems dnis dans /etc/fstab ; 3. colonnes si et so, restent zro si pas dactivit swap 4. free ; swapoff -a ; free 5. p.ex. serveur de mail crivant beaucoup de logs et de mails, partitionner /var/spool et /var/log sparment Dmarrage 1. sur un kernel optimis sans initrd avec tout le support ncessaire : cp /vmlinuz /dev/fd0, puis utiliser rdev /dev/fd0 /dev/hda3 pour dnir le / utiliser sur /dev/hda3. 2. mformat A: syslinux /dev/fd0 mount /floppy \ && cp /boot/vmlinuz-2.4.20 /floppy/linux \ && cp syslinux.cfg /floppy \ umount /floppy avec, par exemple : DEFAULT linux TIMEOUT 0 DISPLAY boot.msg PROMPT 1 LABEL linux KERNEL linux APPEND root=/dev/md2 vga=normal 3. par exemple title root kernel savedefault boot

Ubuntu, kernel memtest86+ (hd0,0) /memtest86+.bin

(sous Debian : il suft de dcommenter la ligne qui parle de memtest86 et lentre sera gnre automatiquement. Rappelons que tout ce qui se trouve entre les marques automatiques Debian dans /boot/grub/menu.lst est cras et regnr !) 4. installer mbr et lilo, installez LILO dans la partition, mbr dans le MBR, congurez /etc/lilo.conf, lancez lilo pour prendre en compte les modications. (sous Debian liloconfig se charge de tout !) 5. mot de passe : password=toto, ensuite choisir, soit restricted (empcher la modication des paramtres au dmarrage sans mot de passe) ou mandatory : refuser le boot sans

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 6: Corrig des exercices p. 75

dmarrage. On doit encore relancer lilo pour prendre en compte les modications. Pour scuriser vritablement la machine, mettre un mot de passe sur le BIOS, interdire le dmarrage sur autre chose que le disque-dur, scuriser le petit MBR ou y mettre LILO. Et esprer que le BIOS na pas de back-door ! 6. il peut servir dmarrer tous les OS dont la partition est active sans les dclarer dans LILO, voire dmarrer sur dautres priphriques. Inutilis si LILO ou GRUB sont installs dans le MBR directement (et pas une partition). 7. oui, notamment avec LILO. Sinon, le plus simple est de ne pas avoir /boot en RAID ou LVM. Bibliothques dynamiques 1. man ld.so : variables LD_LIBRARY_PATH et LD_PRELOAD, le chier gnr via /etc/ld.so.conf et ldconfig, puis dans les chemins standards /usr/lib puis /lib. 2. manipulation avec ldd PROGRAMME. On remarque que ldconfig est statiquement li (cf file aussi) 3. il manque une bibliothque partage au moins.
env LD_LIBRARY_PATH=/usr/lib/mozilla-firefox /usr/lib/mozilla-firefox/firefox-bin

On peut congurer un wrapper script qui congure la variable au moment du lancement, voire ajouter le rpertoire sous /etc/ld.so.conf et lancer ldconfig. 4. prcharger via LD_PRELOAD une bibliothque qui intercepte les fonctions de la bibliothque C standard (ouvrir un chier, changer des permissions, propritaires, etc) de manire pouvoir crer des archives dinstallation (paquets Debian) sans tre root, tout en ayant les permissions correctes. 5. dmarrer avec init=/bin/sh et faire : mount -n / -o remount,rw mount -a ldconfig -r / umount -a mount -n / -o remount,ro sync reboot -f ou : redmarrer avec le CD dinstallation, monter les systmes de chiers puis lancer ldconfig, soit avec largument -r, soit via chroot. Packaging Debian 1. manipulation simple 2. manipulation simple 3. manipulation simple 4. dpkg -S /bin/ls ; http://packages.debian.org/, dernier champ de recherche. 5. dpkg --get-selections | grep install|hold 6. dpkg -l .*-dev 7. premier caractre : tat dsir ; deuxime : tat 8. apt-get update && apt-get -y --download-only -u dist-upgrade
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 6: Corrig des exercices p. 76

9. dpkg-reconfigure debconf 10. aptitude (ou Synaptic), Locally installed or obsolete Packages 11. http://www.backports.org/ 12. aptitude (ou Synaptic), Locally installed or obsolete Packages 13. manipulation simple 14. suppose que toutes les questions simples sont rpondues par oui 15. manipulation simple 16. empcher sa mise jour (p.ex. en cas de modications manuelles) (attention : diffrencier le hold de dpkg de celui daptitude) 17. permet dinstaller des packages dune autre version sans mettre jour tout le systme, grce des priorits 18. non, fakeroot suft. Oui, pour les installer. 19. manipulation simple, p.ex. avec
ftp://fr2.rpmfind.net/linux/SuSE-Linux/i386/9.2/suse/i586/hello-2.1.1-311.i586.rpm

20. complexe, non ? :)

Commandes UNIX et GNU


Travail en ligne de commande 1. manipulation simple 2. p.ex. PS1=\h:\t> 3. .bashrc est sourc en cas de shell NON login ; .bash_profile en cas de shell login et .bash_logout en cas de logout ? 4. exec programme remplace le shell : lorsque programme se termine, le shell nest dj plus l 5. programme ne verra pas la variable (locale au shell) tous les programmes lancs aprs lexport verront la variable seulement programme verra la variable 6. (a) -l et -u (b) -x et -n (c) /etc/passwd et /etc/shadow, car passwd est SUID root 7. lhistorique des commandes tapes, sauve la n de la session bash, voir la section HISTORY de man bash. 8. .profile est utilis lorsque .bash_profile nest pas disponible ou que le shell est lanc sous le nom sh (pour compatibilit) ; dans tous les cas uniquement pour un shell de login 9. il ny a pas de diffrence fondamentale, sauf que lon lance les commandes externes uniquement si lon spcie leur chemin 10. p.ex. export PATH=${PATH}:${HOME}/bin, dposer dans .bashrc (sous Debian, le .bash_profile source aussi le .bashrc ! sinon mettre dans les deux) 11. modier alors /etc/profile et/ou /etc/bash.bashrc 12. chercher dans lindex des pages man (description courte). man -k compress 13. date --iso
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 6: Corrig des exercices p. 77

Filtres 1. manipulation simple 2. split < /vmlinuz && ls -lh x?? (a) cat x?? > f1 (b) wc -c f1 /vmlinuz (c) cmp f1 /vmlinuz && diff f1 /vmlinuz && md5sum f1 /vmlinuz 3. cut --output-delimiter -d: -f1,6,7 < /etc/passwd \ | sort -k 1,1 4. cut --output-delimiter -d: -f7 < /etc/passwd | sort | uniq ou cut --output-delimiter -d: -f7 < /etc/passwd | sort -u 5. manipulation simple 6. fortune -l | fmt -w 50 7. head tail tail tail -7 -1 -f +2 /etc/passwd /etc/group /var/log/syslog /etc/group | diff /etc/group -

8. nl /etc/motd 9. utiliser od -h (ou hexdump) 10. pr -d < fichier > out 11. sed s%/bin/bash%/bin/sh% < /etc/passwd > /tmp/passwd 12. tac fichier 13. tr a-z A-Z < fichier > out 14. sort sort join | -t : -k 4,4 < /etc/passwd > /tmp/p.SORTED -t : -k 3,3 < /etc/group > /tmp/g.SORTED -t : -1 4 -2 3 /tmp/p.SORTED /tmp/g.SORTED cut --output-delimiter -d: -f2,8

15. seq 1 $(wc -l < /etc/motd) | paste - /etc/motd 16. cut -f est sensible plusieurs espaces (plusieurs colonnes) ce qui pose un problme p.ex. avec ls -l. On peut passer par un sed avant, ou utiliser awk la place de cut. Gestion des chiers 1. manipulation simple 2. mkdir -p hier/arch/ie rmdir -p hier/arch/ie rm -rf hier/arch/ie mkdir -m=755 dir 3. non 4. touch --date=yesterday /tmp/fichier (date de modif) 5. cp f1 f2 f3 repertoire cp -p f1 f2 f3 repertoire cp -r dir1 dir2

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 6: Corrig des exercices p. 78

6. -i, par dfaut crasement. Faire un alias. Non, car cela cre de trs mauvaises habitudes de ne pas lire les messages ou si on travaille sur un systme sans cette cong. 7. renommer et dplacer des chiers 8. cat > fichier puis CTRLD > fichier 9. -l : long (dtails : taille, permissions, etc) -F : ajouter un caractre de type en n du nom -a : aussi les chiers cachs .??* -R : aussi les sous-rpertoires -d : pas le contenu des rpertoires -1 : un chier/rpertoire par ligne on les combine p.ex. -l -a -F ou -laF (ou encore -alF) 10. find / -name *s* -user root -type f -atime -1 -size -64k 11. find . -type f -print | xargs echo find . -type f -print0 | xargs -0 echo (plus sr) find . -type f -exec echo {} \; find . -type f -ok echo {} \; 12. le backslash permet dempcher linterprtation du caractre qui le suit. Les apostrophes empchent linterprtation de tous les caractres spciaux, y compris le backslash. Les guillemets empchent linterprtation (expansion) des wildcards (jokers). 13. on voit que la commande ls na pas le support pour les wildcards, cest le shell qui les tend. 14. echo \ echo "" 15. -h (human) 16. votre rpertoire : ~. Le rpertoire de lutilisateur user : ~user. Quant ~- et ~+, ils permettent dobtenir le rpertoire courant prcdent et actuel, respectivements. On peut aussi indiquer le numro dans une pile de rpertoires sauvegards (voir la commande popd) 17. renommage de groupes de chiers ou de rpertoires (spcis comme wildcard du shell) selon des rgles de substitution spcies par une regexp Perl. Il est crit en Perl (et nest pas forcment toujours disponible). Pipes et redirections 1. stdin, stdout, stderr (0, 1, 2) 2. 2>&1, 2>fichier 3. command <<EOF (ici les donnes) EOF 4. ls *date --iso* 5. excuter des commandes groupes, driver (dupliquer) un pipe dans un chier Processus 1. jobs : processus de ce shell. jobs -l et ps x (ou ps auxw pour tous) 2. lancement en tche de fond sans bloquer le clavier (bg)
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 6: Corrig des exercices p. 79

3. kill -l, SIGTERM (15) 4. envoie un signal indiqu au processus nomm (nom de commande) ; sous Solaris (Sun) cela envoie un signal donn tous les processus ! Priorits dexcution 1. indiqus par < et N respectivement aprs ltat du processus (S, R, ...) 2. baisser la priorit (augmenter la valeur ..) est toujours possible sans root. 3. renice -u user +2 renice -g pgrp +2

Recherche textuelle et regexps 1. -i (ignorer la casse), -l (noms de chiers correspondants), -c (comptage des lignes correspondantes), -n (numro de lignes) et -v (inversion de la condition) 2. egrep supporte les regexp tendues 3. (a) sed 1,3s/aa/bb/g < file : remplacer aa par bb dans les lignes 1 3, autant de fois que ncessaire (b) sed /here/,$d < file : supprimer de la ligne contenant here jusqu la n (c) sed /ll/,/ff/!s/maison/house/g : sauf la ligne content ll la ligne contenant ff, remplacer maison par house autant de fois que ncessaire 4. la chane doit contenir a de 1 3 fois.

Priphriques et standard de hirarchie FHS


Systmes de chiers 1. pas de droits particuliers pour le crer dans un chier, droits root pour le monter (sauf dans /etc/fstab avec option user). Dans le cas gnral, seul root a accs aux priphriques physiques de /dev (cf permissions) 2. manipulation simple 3. -c Intgrit 1. e2fsck -f /dev/hda3 2. -ay 3. -b 4. manipulation simple 5. tunefs -i 0 -c 0 /dev/hda3 6. tune2fs -j 7. df -i, df, df -B 1, df -h 8. df -a, mount 9. df -t ext3 10. du -s /boot 11. du /usr/* | sort -nr
c 2006-2007 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 6: Corrig des exercices p. 80

Montage et dmontage 1. /etc/fstab, sans option noauto 2. /etc/fstab, options noauto et user 3. mount -o remount,ro / 4. -n 5. -o sync Quotas 1. manipulation simple 2. edquota user, edquota -g group 3. manipulation simple 4. quota -v, quota -vg quota -v user quota -vg group 5. manipulation simple 6. edquota -p demo schaefer Permissions 1. chmod -R a+r rep/ 2. sticky bit ; interdire effacement de chiers dautres propritaires mme si w sur rpertoire pour tous. Originellement, sur les chiers : maintenir en mmoire lexcutable aprs terminaison (performance au prochain lancement), pas utilis sous GNU/Linux (ou alors ventuellement mandatory locking , si activ.) 3. hritage du droit g+s sur les rpertoires crs, objets (chiers et rpertoires) crs dans le groupe du rpertoire et pas le groupe actif de lutilisateur, pratique dans les rpertoires partags 4. chattr +i fichier, chattr +a fichier ; uniquement ext2/ext3 Propritaires et groupes 1. non, pas sous GNU/Linux (sinon serait facile de tricher avec les quotas1 ) 2. votre groupe primaire ou un de vos groupes secondaires 3. chown user:group fichier ... fichier, encore que la syntaxe user.group est toujours tolre (mais dangereuse, car seul : est un caractre interdit dans /etc/group) Liens 1. find -P / -xtype l -print (voir info find) 2. ls lien/ montre le contenu du rpertoire point. 3. manipulation : crer plusieurs liens, effacer "loriginal", le recrer, comparer ls -li. 4. la plupart des commandes qui traversent les rpertoires savent faire la diffrence : loption -L de find suit les liens symboliques.
1

mais liens durs sur des chiers ... pensez-y

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

LPI-101

Chapitre 6: Corrig des exercices p. 81

Trouver et placer les chiers 1. find : tat actuel ; locate : tat au lancement de la commande de recherche, vu dun utilisateur spcial, p.ex. nobody 2. updatedb & (ou /etc/cron.daily/find) 3. slocate est la version plus scurise 4. /etc, p.ex. /etc/PROGRAMME/ 5. ~/.*rc 6. /usr/local 7. /opt 8. /usr/sbin (ou /sbin si essentiels) 9. /root 10. /dev 11. /boot 12. /usr/lib, /lib 13. /mnt 14. /tmp (et /var/tmp) 15. des programmes et donnes non essentiels au dmarrage 16. /etc/X11 pour les congurations et /usr/X11R6 pour le reste 17. /usr/share/doc/PACKAGE/ 18. /usr/games (/usr/share/games) 19. /usr/include 20. /usr/share 21. /usr/src 22. /var, /var/log, /var/spool, /var/cache

c 2006-2007 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Vous aimerez peut-être aussi