« Le système d'exploitation GNU-Linux/Les systèmes de fichiers » : différence entre les versions

Contenu supprimé Contenu ajouté
mise en page + quelques corrections
Ligne 1 :
== Les systèmes de fichiers Unix ==
== LES SYSTEMES DE FICHIERS UNIX==
 
 
== LES FORMATS ==
UNIX gére les inodes (data structure) dans une table qui contient des informations telles que
-* le propriétaire
-* le groupe de fichiers
-* les droits d'acces
-* la date de modification
-* le type de fichier
 
Sous UNIX et LINUX on trouve des partitions, ex:boot,vat,tmp,home qui permettent d'organiser le systeme de fichiers.
Ligne 14 ⟶ 12 :
IL existe toute sorte de systémes de fichiers
 
=== Non journalisés ===
 
* Ext et Ext2 : Extented FS version 2 (Linux, BSD)
Ligne 29 ⟶ 27 :
* Unix File System : (BSD, Linux en lecture seule)
 
=== Journalisés ===
 
* BFS (BeOS, Haiku, Linux en lecture seule et expérimental)
Ligne 47 ⟶ 45 :
* ZFS : Zettabyte FS (Solaris10)
 
=== Réseau ===
 
* AFS Andrew File System : (Aix, Linux)
Ligne 57 ⟶ 55 :
* CIFS (Evolution de SMB, supporté par Samba ainsi que par Windows 2000 et XP)
 
=== Cluster ===
 
* GPFS, General Parallel File Sytem : Linux, AIX
Ligne 64 ⟶ 62 :
* PVFS2, Parallel Virtual FileSystem version 2 : Linux, Unix
 
=== Spécialisés ===
 
* CFS Cryptographic File System : FS chiffré (BSD, Linux)
Ligne 73 ⟶ 71 :
* QNX4fs : FS utilisé pour le temps réel (QNX, Linux en lecture seule)
* UDF : le format de disque universel (système de fichiers des DVD-ROM et des disques optiques réinscriptibles tels les CD-RW, DVD±RW, etc.)
 
==
== LALa COMMANDEcommande MOUNTmount ==
 
Cette commande indique tous les systémes de fichiers qui sont montés.
Ligne 83 ⟶ 81 :
Puis on utilise mount pour accéder au contenu de la clé.
 
Exemple :
exemple: #mount /dev/sdc1 /mnt(le repertoire de son choix)
 
# mount /dev/sdc1 /mnt # le repertoire de son choix
 
Il est possible de préciser le systéme de fichier s'il ne le detecte pas
 
Syntaxe :
ex: #mount -t(pour préciser) vfat (le systeme de fichier) /dev/sdc1 /mnt
 
# mount -t ''système de fichiers'' ''périphériques'' ''point de montage''
 
Exemple :
 
# mount -t vfat /dev/sdc1 /mnt
 
Lorsque l'on a fini d'utiliser la clé il faut la demonter à cause du cache.
 
TODO : PARLER DU FICHIER '''/etc/fstab'''
losque l'on a fini d'utiliser la clé il faut la demonter à cause du cache.
 
# umount /dev/sdc1
ou
# umount /mnt
 
La commande '''SYNCsync''' force le noyau à écrire le cache
Pour savoir la taille qu'il reste sur la clé on utilisera la commande '''DFdf''' (disk free) -h (human readable) pour avoir les informations en kilo,mega,giga.DF '''df -i'' (affiche le pourçantage d'occupation de la table des inodes ).
 
== Formater un système de fichiers ==
 
La commande '''mkfs''' ('''m'''a'''k'''e '''f'''ile'''s'''ystem) permet de formater un système de fichiers. Exemple :
== COMMENT FORMATER UN SYSTEME DE FICHIERS ==
 
# mkfs (make kill files system) -t ext3 /dev/sdc1
 
ATTENTION LE SYSTEME DE FICHIER NE DOIT PAS ETRE MONTE
mkfs est un wrapper (aiguillage)
 
'''mkfs''' est un wrapper (aiguillage)
Afin de simuler le formatage, nous allons créer un disque dir virtuel
on utilisera pour ce faire la commande '''modprobe loop''' loop étant le disque dur virtuel
 
Afin de simuler le formatage, nous allons créer un disque dur virtuel. Pour simuler ceci avec un disque dur virtuel, on utilisera le pseudo périphérique '''loop'''.
#dd if=/dev/0 of=hd1 bs=1K count=100000 crée un fichier vide hd1 qui aura une taille de 100Méga
 
#losetup /dev/loop0 hd1
# modprobe loop
# dd if=/dev/zero of=hd1 bs=1K count=100000
 
Ceci crée un fichier vide hd1 qui aura une taille de 100 Mo
 
# losetup /dev/loop0 hd1
 
On ''attache'' le pseudo-pérphérique '''/dev/loop0''' à notre fichier hd1.
 
Une fois le disque dur virtuel crée on peut le formater
 
# mkfs -t ext3 /dev/loop0
# mount /dev/loop0 /media/cleusb
 
Pour le demonter :
 
# umount /media/cleusb/
 
CAS PARTICULIER : pour les disquettes, on effectue en général formattageformatage de bas niveau:
 
#fdformat /dev/fd0 vérifie l'intégrité de la disquette.
Par contre #mkfs -t ext3fdformat /dev/fd0 formate # vérifie l'intégrité de la disquette
 
# mkfs -t ext3 /dev/fd0 # formate la disquette
 
<!--IL EST POSSIBLE DE VERIFIER EGALEMENT L'INTEGRITE DU SYSTEME DE FICHIERS-->
ATTENTION A BIEN DEMONTER AU PREALABLE LE PERIPHERIQUE
#fsck -t ext3 /dev/loop0
l'option -c permet de vérifier les bad blocks (en lecture seule par défaut) -v pour voir ce qu'il fait.
 
La commande suivante permet de vérifier l'intégrité du système de fichiers :
== PARTITION DE SWAP ==
 
# fsck -t ext3 /dev/loop0
 
L'option '''-c''' de '''fsck''' permet de vérifier les badblocks (en lecture seule par défaut). L'option '''-v''' (verbose, soit verbeux) pour voir ce qu'il fait.
 
== Le swap ==
 
=== Partition de swap ===
 
Le SWAP signifie échange, il s'agit d'une mémoire virtuelle en effet lorsque la mémoire de l'ordinateur arrive à saturation, le systéme écrit sur une partition SWAP de façon à liberer de la mémoire.
 
Il est possible de créer une partition SWAP grace à la commande '''mkswap''' :
 
# mkswap /dev/sdb5
 
On utilisera la commande '''swapon''' /dev/sdb5 pour l'activer :
 
# swapon /dev/sdb5
 
Avec la commande '''free'',' il est possible de vérifier si le swap est activé :
 
# free
...
Swap: 1951856 65080 1886776
 
Le SWAP signifie échange,il s'agit d'une mémoire virtuelle en effet losque la mémoire de l'ordinateur arrive à saturation, le systéme écrit sur une partition SWAP de façon à liberer de la mémoire.
Il est possible de créer une partition SWAP grace à la commande '''mkswap'''
ex:#mkswap /dev/sdb5
on utilisera la commande '''swapon''' /dev/sdb5 pour l'activer
Avec la commande '''free''' il est possible de vérifier si la commande est active.
Pour lister les partitions SWAP :
#cat /proc/swaps
 
# cat /proc/swaps
FICHIERS DE SWAP
 
=== Fichier de swap ===
Il est possible de créer un fichier swap en complément d'une partion SWAP,pour ce faire:
Nous allons commencer par créer un fichier d'un giga octet.
#dd if=/dev/zero of=/ficswap bs=1M count=1000
#mkswap /ficswap
#swapon /ficswap
Si l'on tape la commande '''free''' on constate que la taille du swap a augmenté
 
Il est possible de créer un fichier swap en complément d'une partion SWAP,pour faire ceci nous allons commencer par créer un fichier d'un giga octet :
 
# dd if=/dev/zero of=/ficswap bs=1M count=1000
== LES FICHIERS SPECIAUX ==
 
On initialise ensuite le fichier en swap :
Nous allons nous interesser plus particulièrement à '''/dev'''' et à '''/proc'''
 
# mkswap /ficswap
 
On active le swap :
 
# swapon /ficswap
 
Si l'on tape la commande '''free''' on constate que la taille du swap a augmenté.
 
 
== Les fichiers spéciaux ==
 
Nous allons nous interesser plus particulièrement à '''/dev'''' :
 
'''Le répertoire /dev/'''
 
/DEV (device)
Ce dossier contient tous les périphériques matériels, par exemple:un lecteur cdrom,une carte son,une carte réseau,etc...
Il contient également la liste de tous les pseudo-périphériques,ex:/dev/zero génére des zéros,/dev/random qui génère de l'aléatoire, /dev/null qui constituera un trou noir à octets
(pour se débarasser des fichiers)
 
Il contient également la liste de tous les pseudo-périphériques,ex:/dev/zero génére des zéros,/dev/random qui génère de l'aléatoire, /dev/null qui constituera un trou noir à octets (pour se débarasser des fichiers).
Si on liste le contenu de /dev
#ls -l /dev | more
On s'aperçoit que certains périphériques sont de type C (character) dans ce cas ils communiquent octet par octet ex:un port série.
 
Si on liste le contenu de /dev
Alors que d'autres sont de types B (blocks) ils communiquent par blocs de données (ex: un disque dur).
 
# ls -l /dev | more
Par ailleurs le noyau identifie chaque périphérique au moyen de deux numéros ,le majeur et le mineur
#ls -l /dev/ | more
Sur mon disque sda à sda7 ont le meme majeur qui correspond au premier controlleur SATA, le noyau identifie chacun d'entre eux grace au numéro mineur.
 
On s'aperçoit que certains périphériques sont de type '''c''' (character) dans ce cas ils communiquent octet par octet ex:un port série.
<!--La commande '''mkmode''' sert a créer de nouveaux périphériques-->
#ex:#mkmode /dev/bidon b (ou c ) 42 0
On pourra également directement lui affecter les droits d'acces
#mkmode -m 660 /dev/bidon b 42 0 (lecture et ecriture pour l'utilisateur et son groupe)
 
Alors que d'autres sont de types '''b''' (blocks) ils communiquent par blocs de données (ex: un disque dur).
/PROC UN SYSTEME DE FICHIER VIRTUEL
 
Par ailleurs le noyau identifie chaque périphérique au moyen de deux numéros ,le majeur et le mineur, exemple :
 
# ls -l /dev/sdb1
brw-rw---- 1 root disk '''8, 17''' 2007-11-07 16:26 /dev/sdb1
 
Sur mon disque, sda1 à sda7 ont le meme majeur qui correspond au premier controleur SATA, le noyau identifie chacun d'entre eux grace au numéro mineur.
 
La commande '''mknod''' sert a créer de nouveaux périphériques :
 
# mknod /dev/bidon b 42 0
 
On pourra également directement lui affecter les droits d'acces :
 
# mknod -m 660 /dev/bidon b 42 0
 
== Le système de fichiers virtuel /proc ==
 
'''/proc''' n'existe pas sur le disque dur,il est fournit par le noyau dynamiquement, d'ou le nom de '''virtuel'''.
 
/PROC n'existe pas sur le disque dur,il est fournit par le noyau dynamiquement.
Il permet de fournir des informations sur ce que voit le noyau.
 
En outre pour acceder a certains renseignements il sera necessaire de monter obligatoirement /proc (ex: #ls /proc/pci )
En outre pour accéder a certains renseignements il sera nécessaire de monter obligatoirement /proc.
Les commandes '''ps''' '''top''' '''uptime''' utilisent /proc pour récupérer des informations.
 
Quelques exemples d'informations
# cat /proc/partitionscpuinfo
 
#cat /proc/swaps
Les commandes '''ps''', '''top''', '''uptime''' (et bien d'autres) utilisent '''/proc''' pour récupérer des informations.
#cat /proc/cpuinfo
 
Quelques exemples d'informations :
 
# cat /proc/partitions
# cat /proc/swaps
# cat /proc/cpuinfo