Outils pour utilisateurs

Outils du site


doc:peripheriques

Manipulations des périphériques

Les périphériques sont essentiels dans un système linux, ils hébergent les systèmes de fichiers lus par le système d'exploitation.

Opérations classiques

Il est commun de monter et démonter des périphériques, lorsque vous branchez des disques externes par exemple.

  mount [-t <type>] <perif> <dossier>

où:

  • <type> est le type du système de fichiers, la liste est disponible dans la page de manuel filesystems(5). Ce paramètre est optionnel, le système de fichier pouvant souvent être détecté automatiquement
  • <perif> est le périphérique que l'on souhaite monter: /dev/sda2 par exemple pour la seconde partition du disque /dev/sda.
  • <dossier> est le répertoire où monter le système de fichiers. un dossier vide fait l'affaire, le répertoire /mnt a été créé dans ce but dans GNU/Linux.

pour le démonter, la commande est la suivante:

  umount <dossier>

une autre opération courante est la copie de disque ou de partition.

  dd if=<source> of=<destination>

La source et destination peuvent être ce que l'on souhaite: un fichier, un périphérique, etc.
par exemple la commande suivante fait une copie bloc à bloc du disque /dev/sda dans le fichier du répertoire courant backup.img.

Pour plus de détails, lire la section dédiée.

Copie avancé de disques et partitions

Rappels

Il est important de rappeler le fonctionnement du partitionnement d'un disque. Par exemple pour un disque avec trois partitions primaires (les partitions logiques ne sont pas décrites ici):

  |------|---------------|-------------------|------------------------|-----------------|
   header   partition 1       partition 2           partitions 3        (second header)

Nous appelons ici header tout ce qui est présent avant la première partition du disque contenant entre autres la table de partitions (MBR [en], GPT [en], etc.)
Le second header peut être présent dans le cas d'un partitionnement GPT.

disques et partitions

le répertoire /dev est peuplé de fichiers
exemple avec une clef USB:

  $ file /dev/sdb # périphérique bloc décrivant le disque
  /dev/sdb: block special
  $ file /dev/sdb1 # périphérique bloc décrivant la première partition
  /dev/sdb1: block special

/dev/sdb est le périphérique bloc décrivant la clef complète. Les partitions sont accessibles dans /dev/sdb{i} pour i entier. il est possible de lister ces partitions grâce à la commande lsblk

  $ lsblk /dev/sdb
  NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
  sdb      8:16   0   3.7G  0 disk 
  ├─sdb1   8:17   0    56M  0 part 
  └─sdb2   8:18   0     3G  0 part

copie bloc à bloc

La copie d'un disque complet dans un fichier peut se faire grâce à la commande dd

  dd if=/dev/sdb of=mondisque.img

Il est également parfois possible de télécharger des images depuis internet.

périphériques boucle

Il est possible d'ajouter ce disque comme le système l'aurait fait avec un périphérique physique grâce aux périphériques boucle:

  # losetup /dev/loop0 mondisque.img 

Pour accéder aux différentes partitions, il est possible d'ajouter un offset. la taille d'un offset est le nombre de blocs multiplié par la taille d'un bloc. On peut récupérer la taille des blocs grâce à la commande blkid:

  # blkid -i /dev/loop0
  MINIMUM_IO_SIZE=512
  PHYSICAL_SECTOR_SIZE=512
  LOGICAL_SECTOR_SIZE=512

On peut aussi trouver les secteurs où commencent les partitions grâce à la commande file

  $ file mondisque.img 
  mondisque.img: x86 boot sector; partition 1: ID=0x83, starthead 32, startsector 2048, 20480 sectors; partition 2: ID=0x83, starthead 102, startsector 22528, 965769 sectors, code offset 0x0
  

En multipliant le secteur initial (startsector dans le résultat de la commande file) par la taille d'un bloc, on peut ajouter les différentes partitions aux périphériques pour travailler dessus.

  # losetup -o $[2048*512] /dev/loop1 mondisque.img 
  # losetup -o $[22528*512] /dev/loop2 mondisque.img 

ces périphériques boucle peuvent ensuite être montés ou, une fois le travail terminé, supprimés:

  # losetup -d /dev/loop{0,1,2}

Dans le cas où on souhaite monter directement ces partitions, il est possible d'éviter d'utiliser la commande losetup en passant directement par mount, par exemple pour monter la seconde partition de notre image:

  # mount -o loop,offset=$[22528*512] mondisque.img /mnt

Commandes utiles

lsblk

Afficher les périphériques bloc

page man: manned.org [fr], man7.org [en]

example (avec des disques chiffrés avec dm-crypt dans linux mint, pour plus d'infos sur ce sujet, voir le wiki d'Arch Linux):

  $ lsblk
  NAME                         MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
  sda                            8:0    0 117.4G  0 disk  
  ├─sda1                         8:1    0   243M  0 part  /boot
  ├─sda2                         8:2    0     1K  0 part  
  └─sda5                         8:5    0 117.1G  0 part  
    └─sda5_crypt (dm-0)        252:0    0 117.1G  0 crypt 
      ├─mint--vg-root (dm-1)   252:1    0 109.5G  0 lvm   /
      └─mint--vg-swap_1 (dm-2) 252:2    0   7.6G  0 lvm   [SWAP]
  sdb                            8:16   0   3.7G  0 disk  
  ├─sdb1                         8:17   0    56M  0 part  
  └─sdb2                         8:18   0     3G  0 part  
  sdc                            8:32   1  29.8G  0 disk  
  ├─sdc1                         8:33   1    56M  0 part  /media/k-yo/boot
  └─sdc2                         8:34   1  29.8G  0 part  /media/k-yo/fc254b57-8fff-4f96-9609-ea202d871acf1

blkid

Trouver ou afficher les attributs de périphérique bloc

page man: manned.org [fr], man7.org [en]

example:

  # blkid -i /dev/sda
  MINIMUM_IO_SIZE=512
  PHYSICAL_SECTOR_SIZE=512
  LOGICAL_SECTOR_SIZE=512

fdisk

Manipuler la table de partitions d'un disque

page man: manned.org [fr], man7.org [en]

dd

Convertir et copier un fichier

page man: manned.org [fr], man7.org [en]

dump

ext2/3/4 filesystem backup

page man: manned.org [en], man7.org [en]

dmesg

Afficher et contrôler le tampon des messages du noyau

page man: manned.org [fr], man7.org [en]

losetup

Mettre en place et contrôler des périphériques boucle

page man: manned.org [fr], man7.org [en]

mount / umount

Monter/Démonter un système de fichiers

page man (mount): manned.org [fr], man7.org [en]
page man (umount): manned.org [fr], man7.org [en]

mkfs

Créer un système de fichiers Linux

page man: manned.org [fr], man7.org [en]

fsck

Vérifier et réparer un système de fichiers Linux

page man: manned.org [fr], man7.org [en]

tune2fs

Ajuster les paramètres des systèmes de fichiers ext2/ext3/ext4

page man: manned.org [fr], man7.org [en]

doc/peripheriques.txt · Dernière modification: 2014/07/30 10:55 par olivier.caillault