Grimoire-
Command
.es

GNU+Linux command memo

Memo_13 : Systèmes de fichier

D’après l’édition 11 des travaux d’Alain Leaper, 2018-04-10
Licence GPL

1. mount : montage d’un périphérique (device) sur un répertoire

Il faut généralement être un utilisateur administrateur de la machine pour pouvoir réaliser ces opérations.

# mount -t type -o options device répertoire

-t type (optionnel) : auto, msdos, vfat, iso9660, ext2, ext3, ext4…

-o option (optionnel) :

  • rw : lecture et écriture

  • ro : lecture seule

  • wo : écriture seule

device : périphérique en mode bloc, on les trouve dans le répertoire /dev :

  • /dev/sda1 : premier disque dur SATA, première partition sur ce disque

  • /dev/fd0 : premier lecteur de disquettes

  • /dev/sr0 : CD/DVD

Certains périphériques sont détectés au branchement (plugin), comme les clés USB.

La commande dmesg liste les modules chargés en mémoire et permet de voir le device à utilisé. Exemple clé USB → /dev/sdb1

Il est aussi possible d’utiliser :

# /sbin/cfdisk -l

répertoire : en général un sous-répertoire de /mnt ou /media sont utilisés. Mais l’utilisateur administrateur (root) peut monter n’importe quel périphérique sur n’importe quel répertoire. Le précédent contenu du répertoire est alors masqué par le contenu du périphérique monté dessus. Le répertoire cible est alors nommé point de montage.

Exemples :

# mkdir /media/floppy
# mount -t auto /dev/fd0 /media/floppy
# mount -t iso9660 -o loop ISO.iso /mnt/ISO/

La commande mount lancée sans arguments liste sur le terminal tous les montages en cours sur le système.

Enfin, pour démonter un périphérique on précise l’un des deux bouts du montage à la commande umount.

# umount /media/floppy

Ou encore :

# umount /dev/fd0

2. mke2fs : création d’un système de fichier ext2, ext3, ext4

Pour une disquette:

# /sbin/mke2fs -t ext2 /dev/fd0

Pour une clé USB, ou n’importe quel device sdb1 :

# /sbin/mke2fs -t ext2 /dev/sdb1

Pour repasser en fat32, il est possible d’utiliser gparted en mode graphique.

Sinon, en ligne de commande :

# /sbin/fdisk -l
Disk /dev/sda: 252 MB, 252182528 bytes
32 heads, 16 sectors/track, 962 cylinders
Units = cylinders of 512 * 512 = 262144 bytes
Disk identifier: 0x17a3b7f6

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1         962      246264   83  Linux

La clé usb étant repérée, vérifier qu’elle est montée.

# mount
 […]
/dev/sdb1 on /media/disk type ext2 (rw,nosuid,nodev,uhelper=hal)
 […]

Il faut alors la démonter :

# umount /dev/sdb1

La partition /dev/sdb1 peut maintenant être supprimée et remplacée par un type FAT (code EF) via fdisk.

3. Réparer une clé USB

# mkfs.fat -I -F 32 /dev/sdb (1)
1 Clé non montée

Le paquet dosfstools doit être installé, souvent mkfs.fat est un lien vers mkfs.vfat. Il est encore possible d’utiliser gparted.

D’autres exemples sont listés avec le tag : repair.

4. Générer une clé USB bootable à partir d’une image ISO

Il s’agit de copier (en mode binaire, bit à bit) l’image ISO en question au début de la clé.

# dd if=<l'image>.iso of=/dev/sdb bs=1M && sync  (1) (2)
1 si le device de la clé est sdb
2 plus d’info sur la taille de bloc dans le Mémo 10 et ici : dd buffer size (en anglais).

5. Vérifier la validité d’une clé bootable

La taille de l’ISO doit être connue. Il faut déterminer le nombre de blocs de l’ISO : nbBlocs = tIso / tBloc

Exemple : tIso= 678428672; tBloc=1024 → nbBlocs=165632.0 (il faut un entier)

# /bin/dd if=/dev/sdb bs=1024 count=165632 | md5sum

Le md5sum obtenu doit être le même que celui de l’ISO d’origine.

C’est aussi valable pour un CD/DVD, il suffit de remplacer /dev/sdb par /dev/sr0 (par exemple).

6. Montage au démarrage : fichier de configuration /etc/fstab

Exemple de ce fichier, pour la ligne qui concerne la partition /home :

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/hdb10       /home           ext3    defaults         0       2

<file system> peut être donné sous cette forme ou par son UUID obtenu grâce à la commande :

# /sbin/blkid

Options :

  • rw : lecture et écriture

  • ro : lecture seulement

  • noauto : désactive le montage au démarrage (auto force celui-ci)

  • user : autorise tous les utilisateurs pour le montage (nouser, limite à root)

  • nodev : Ne pas interpréter les fichiers spéciaux de périphériques de type caractère ou bloc (dev : l’inverse)

  • exec : autorise l’exécution de fichiers binaires

  • nosuid : Ne pas tenir compte des bits Set-UID ou Set-GID

  • sync : Toutes les E/S du système de fichiers doivent être réalisées de façon synchrone (async l’inverse).

  • defaults : correspond à l’ensemble des options : rw, suid, dev, exec, auto, nouser, async

En général, on utilise defaults suivi de quelques modificateurs : defaults, noauto, user, ro

  • dump : généralement à 0 ; si 1 indique que l’utilitaire dump doit sauvegarder

  • pass : indique dans quel ordre les vérifications doivent avoir lieu, en général :

    • 0 : aucune vérification

    • 1 : pour la partition racine seulement (/)

    • 2 : vérification après celles de 1

en ext4 ces indications peuvent être différentes, le mieux est s’inspirer des lignes existantes pour les devices déjà montés… ou de lire le man !

7. e2fsck : vérification d’un système de fichier (ext2, ext3…)

# /sbin/e2fsck /dev/fd0

Pour plus d’exemples et plus de systèmes de fichiers, consulter le tag : storage.