Outils pour utilisateurs

Outils du site


doc:peripheriques

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
doc:peripheriques [2014/07/17 11:49] – créée - commandes utiles olivier.caillaultdoc:peripheriques [2014/07/30 10:55] (Version actuelle) – ajout de la commande dump olivier.caillault
Ligne 1: Ligne 1:
 ====== Manipulations des périphériques ====== ====== 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 [[http://manned.org/filesystems/9562a8c0|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é [[http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#MNTMOUNTPOINTFORATEMPORARILYMOUNT|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 [[#Copie avancé de disques et partitions|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 ([[https://en.wikipedia.org/wiki/Master_boot_record|MBR [en]]], [[https://en.wikipedia.org/wiki/GUID_Partition_Table|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]]''
 +
 +    $ lsblk /dev/sdb
 +    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
 +    sdb      8:16     3.7G  0 disk 
 +    ├─sdb1   8:17      56M  0 part 
 +    └─sdb2   8:18       3G  0 part
 +
 +==== copie bloc à bloc ====
 +
 +La copie d'un disque complet dans un fichier peut se faire grâce à la commande ''[[#dd|dd]]''
 +
 +    dd if=/dev/sdb of=mondisque.img
 +
 +Il est également parfois possible de télécharger des images [[http://www.raspberrypi.org/downloads/|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]]'':
 +
 +    # 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 [[#mount|ê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 ===== ===== Commandes utiles =====
Ligne 7: Ligne 102:
 page //man//: [[http://manned.org/lsblk/5655603b|manned.org [fr]]], [[http://man7.org/linux/man-pages/man8/lsblk.8.html|man7.org [en]]] page //man//: [[http://manned.org/lsblk/5655603b|manned.org [fr]]], [[http://man7.org/linux/man-pages/man8/lsblk.8.html|man7.org [en]]]
  
 +example (avec des disques chiffrés avec dm-crypt dans linux mint, pour plus d'infos sur ce sujet, voir [[https://wiki.archlinux.org/index.php/System_Encryption_with_LUKS|le wiki d'Arch Linux]]):
 +
 +    $ lsblk
 +    NAME                         MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
 +    sda                            8:0    0 117.4G  0 disk  
 +    ├─sda1                         8:   0   243M  0 part  /boot
 +    ├─sda2                         8:   0     1K  0 part  
 +    └─sda5                         8:   0 117.1G  0 part  
 +      └─sda5_crypt (dm-0)        252:0    0 117.1G  0 crypt 
 +        ├─mint--vg-root (dm-1)   252:   0 109.5G  0 lvm   /
 +        └─mint--vg-swap_1 (dm-2) 252:2    0   7.6G  0 lvm   [SWAP]
 +    sdb                            8:16     3.7G  0 disk  
 +    ├─sdb1                         8:17      56M  0 part  
 +    └─sdb2                         8:18       3G  0 part  
 +    sdc                            8:32    29.8G  0 disk  
 +    ├─sdc1                         8:33      56M  0 part  /media/k-yo/boot
 +    └─sdc2                         8:34    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//: [[http://manned.org/blkid/7fda2395|manned.org [fr]]], [[http://man7.org/linux/man-pages/man8/blkid.8.html|man7.org [en]]]
 +
 +example:
 +    # blkid -i /dev/sda
 +    MINIMUM_IO_SIZE=512
 +    PHYSICAL_SECTOR_SIZE=512
 +    LOGICAL_SECTOR_SIZE=512
  
 ==== fdisk ==== ==== fdisk ====
Ligne 15: Ligne 137:
 > Convertir et copier un fichier > Convertir et copier un fichier
 page //man//: [[http://manned.org/dd/169a1194|manned.org [fr]]], [[http://man7.org/linux/man-pages/man1/dd.1.html|man7.org [en]]] page //man//: [[http://manned.org/dd/169a1194|manned.org [fr]]], [[http://man7.org/linux/man-pages/man1/dd.1.html|man7.org [en]]]
 +
 +==== dump ====
 +> //ext2/3/4 filesystem backup//
 +page //man//: [[http://manned.org/dump.8|manned.org [en]]], [[|man7.org [en]]]
  
 ==== dmesg ==== ==== dmesg ====
doc/peripheriques.1405590559.txt.gz · Dernière modification : 2014/07/17 11:49 de olivier.caillault

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki