Suivant: , Précédent: , Monter: Configuration système   [Table des matières][Index]


8.4 Périphériques mappés

Le noyau Linux a une notion de mappage de périphériques : un périphérique bloc, comme une partition sur un disque dur, peut être mappé sur un autre périphérique, typiquement dans /dev/mapper, avec des calculs supplémentaires sur les données qui naviguent entre les deux26. Un exemple typique est le mappage de périphériques chiffrés : toutes les écritures sont sur le périphérique mappé sont chiffrées, toutes les lectures déchiffrées, de manière transparente. Guix étend cette notion en considérant que tout périphérique ou ensemble de périphériques qui sont transformés d’une certaine manière créent un nouveau périphérique ; par exemple, les périphériques RAID sont obtenus en assemblant plusieurs autres périphériques, comme des disque ou des partitions, en un nouveau périphérique en tant qu’unique partition. Un autre exemple, qui n’est pas encore disponible, sont les volumes logiques LVM.

Les périphériques mappés sont déclarés avec la forme mapped-device, définie comme suit ; par exemple, voir ci-dessous.

Type de données : mapped-device

Les objets de ce type représentent des mappages de périphériques qui seront effectués au démarrage du système.

source

C’est soit une chaîne qui spécifie le nom d’un périphérique bloc à mapper, comme "/dev/sda3", soit une liste de plusieurs périphériques à assembler pour en créer un nouveau.

target

Cette chaîne spécifie le nom du périphérique mappé qui en résulte. Pour les mappeurs noyaux comme les périphériques chiffrés de type luks-device-mapping, spécifier "ma-partition" crée le périphérique "/dev/mapper/ma-partition". Pour les périphériques RAID de type raid-device-mapping, il faut donner le nom complet comme "/dev/md0".

type

Ce doit être un objets mapped-device-kind, qui spécifie comment source est mappés sur target.

Variable Scheme : luks-device-mapping

Cela définie les périphériques blocs chiffrés en LUKS avec cryptsetup du paquet du même nom. Elle s’appuie sur le module du noyau Linux dm-crypt.

Variable Scheme : raid-device-mapping

Cela définie un périphérique RAID qui est assemblé avec la commande mdadm du paquet du même nom. Elle nécessite un module noyau Linux approprié pour le niveau RAID chargé, comme raid456 pour RAID-4, RAID-5 et RAID-6 ou raid10 pour RAID-10.

L’exemple suivant spécifie un mappage de /dev/sda3 vers /dev/mapper/home avec LUKS — Linux Unified Key Setup, un mécanisme standard pour chiffrer les disques. Le périphérique /dev/mapper/home peut ensuite être utilisé comme device d’une déclaration file-system (voir Systèmes de fichiers).

(mapped-device
  (source "/dev/sda3")
  (target "home")
  (type luks-device-mapping))

Autrement, pour devenir indépendant du numéro de périphérique, on peut obtenir l’UUID LUKS (l’identifiant unique) du périphérique source avec une commande comme :

cryptsetup luksUUID /dev/sda3

et l’utiliser ainsi :

(mapped-device
  (source (uuid "cb67fc72-0d54-4c88-9d4b-b225f30b0f44"))
  (target "home")
  (type luks-device-mapping))

Il est aussi désirable de chiffrer l’espace d’échange, puisque l’espace d’échange peut contenir des données sensibles. Une manière de faire cela est d’utiliser un fichier d’échange dans un système de fichiers sur un périphérique mappé avec un chiffrement LUKS. De cette manière, le fichier d’échange est chiffré parce que tout le périphérique est chiffré. Voir Disk Partitioning, pour un exemple.

Un périphérique RAID formé des partitions /dev/sda1 et /dev/sdb1 peut être déclaré ainsi :

(mapped-device
  (source (list "/dev/sda1" "/dev/sdb1"))
  (target "/dev/md0")
  (type raid-device-mapping))

Le périphérique /dev/md0 peut ensuite être utilisé comme device d’une déclaration file-system (voir Systèmes de fichiers). Remarquez que le niveau de RAID n’a pas besoin d’être donné ; il est choisi pendant la création initiale du périphérique RAID et est ensuite déterminé automatiquement.


Notes de bas de page

(26)

Remarquez que le Hurd ne fait pas de différence entre le concept de « périphérique mappé » et celle d’un système de fichiers : les deux correspondent à la traduction des opérations d’entrée-sortie faites sur un fichier en des opérations sur ce qui le contient. Ainsi, le Hurd implémente les périphériques mappés, comme les systèmes de fichiers, avec le mécanisme des traducteurs générique (voir Translators dans The GNU Hurd Reference Manual).


Suivant: , Précédent: , Monter: Configuration système   [Table des matières][Index]