Reconstruire son fstab
Pour exploiter une partition nouvellement créée (par exemple /dev/sda6 ou /dev/sdd7), et qui n'apparaît pas dans le fichier de configuration /etc/fstab ou que vous voudriez voir montée au démarrage, commencez par entrer dans un terminal/console en tant qu'utilisateur la commande suivante:
ls -l /dev/disk/by-uuid
Elle affiche une sortie comme celle-ci (les caractères en gras le sont ici pour rendre l'exemple parlant, c'est tout) :
lrwxrwxrwx 1 root root 10 2007-05-27 23:42 348ea9e6-7879-4332-8d7a-915507574a80 -> ../../hda4 lrwxrwxrwx 1 root root 10 2007-05-27 23:42 610aaaeb-a65e-4269-9714-b26a1388a106 -> ../../hda2 lrwxrwxrwx 1 root root 10 2007-05-27 23:42 857c5e63-c9be-4080-b4c2-72d606435051 -> ../../hda5 lrwxrwxrwx 1 root root 10 2007-05-27 23:42 a83b8ede-a9df-4df6-bfc7-02b8b7a5f1f2 -> ../../hda1 lrwxrwxrwx 1 root root 10 2007-05-27 23:42 ad662d33-6934-459c-a128-bdf0393e0f44 -> ../../hda6
Dans cet exemple ad662d33-6934-459c-a128-bdf0393e0f44 est l'entrée manquante. Ce qu'il va vous falloir réaliser, c'est entrer la partition identifiée par son UUID dans votre fichier /etc/fstab. Pour ce faire utilisez un éditeur de texte (comme kate ou nano) avec des privilèges root:
# <device file system> <mount point> <type> <options> <dump> <pass> UUID=ad662d33-6934-459c-a128-bdf0393e0f44 /media/hda6 ext3 auto,users,exec 0 2
Autre exemple:
lrwxrwxrwx 1 root root 10 2007-05-28 13:18 30ebb8eb-8f22-460c-b8dd-59140274829d -> ../../sdb8 lrwxrwxrwx 1 root root 10 2007-05-28 13:18 387d6d4b-4508-4b8e-8ed2-76998f41dae4 -> ../../sdb1 rwxrwxrwx 1 root root 10 2007-05-28 13:18 7014f66f-6cdf-4fe1-83da-9cab7b6fab1a -> ../../sdb5 lrwxrwxrwx 1 root root 10 2007-05-28 13:18 8f042ead-259f-4df0-98ec-3343080396c5 -> ../../sdb6 lrwxrwxrwx 1 root root 10 2007-05-28 13:18 94B0AE63B0AE4B94 -> ../../sda2 lrwxrwxrwx 1 root root 10 2007-05-28 13:18 A61820AA18207B85 -> ../../sda1 lrwxrwxrwx 1 root root 10 2007-05-28 13:18 f28725d6-b7b5-4207-8476-36efe1a903ce -> ../../sdb9 lrwxrwxrwx 1 root root 10 2007-05-28 13:18 f855c263-2521-48d3-8ec9-d2d2b69b6635 -> ../../sda3 rwxrwxrwx 1 root root 10 2007-05-28 13:18 f9aa4027-ecdd-4a86-84e2-df2ef73fe14e -> ../../sdb7
Dans ce cas là, f9aa4027-ecdd-4a86-84e2-df2ef73fe14e est l'entrée manquante à ajoûter au fichier /etc/fstab:
# <device file system> <mount point> <type> <options> <dump> <pass> UUID=f9aa4027-ecdd-4a86-84e2-df2ef73fe14e /media/sdb7 ext3 auto,users,exec 0 2
Note: le nom du point de montage (dans fstab) doit être le nom du répertoire existant, sidux créer ces répertoire pendant l'installation sous /media et ils sont nommé sda1 sda2...disk0, disk1
le point de montage des partitions crées après l'installation initiale devront être ajoutés manuellement dans /etc/fstab
Aperçu général : UUID, label de partition et fstab
La possibilité d'attribuer un identifiant permanent aux périphériques blocs a été rendue possible par l'introduction d'udev. Elle présente certains avantages par rapport à la dénomination par bus.
À mesure que les distributions de GNU/Linux et qu'udev évoluent, et que la détection des matériels devient plus fiable, se posent cependant de nouveaux problèmes, et se produisent de changements :
1) Si l'ordinateur est équipé de plus d'un contrôleur SATA/SCSI ou IDE, l'ordre dans lequels ils sont identifiés devient aléatoire. Ceci peut conduire l'identifiant d'un périphérique à pouvoir changer de hdX à hdY suivant le moment du démarrage. L'attribution d'identifiant permanent vous permet de ne pas avoir à vous en soucier.
2) Avec l'introduction du nouveau support Libata pata, tous vos périphériques IDE hdX finiront tôt ou tard par être traités comme sdX. Là encore, avec l'identification permanente, vous ne vous en apercevrez pas.
3) Les ordinateurs faisant cohabiter contrôleurs SATA et IDE sont devenus très courants de nos jours. Par le changement vers Libata mentionné plus haut, le premier problème évoqué plus haut va devenir de plus en plus courant, quand les disques SATA et IDE auront tous une identité de périphérique de type sdX.
Par défaut sidux utilisera l'uuid dans votre fichier fstab à l'installation
D'autres arguments existent, mais ceux-ci sont les plus importants à ce jour. C'est pourquoi sidux vous encourage à modifier vos habitudes pour adopter un schéma d'identification permanente des périphériques en mode bloc dans vos configurations.
Les quatre schémas possibles pour l'identification permanente
1. Identification permanente par UUID
UUID signifie "Universally Unique Identifier", et constitue en soi un mécanisme attribuant à chaque système de fichier un identifiant unique. Sa conception a pour but d'empêcher toute collision. Tous les systèmes de fichiers GNU/Linux (y compris la swap) supportent l'UUID. FAT et NTFS ne l'intègrent pas, mais sont néanmoins listés et pourvus d'un identifiant unique par UUID
$ /bin/ls -lF /dev/disk/by-uuid/ total 0 lrwxrwxrwx 1 root root 10 Oct 16 10:27 2d781b26-0285-421a-b9d0-d4a0d3b55680 -> ../../sda1 lrwxrwxrwx 1 root root 10 Oct 16 10:27 31f8eb0d-612b-4805-835e-0e6d8b8c5591 -> ../../sda7 lrwxrwxrwx 1 root root 10 Oct 16 10:27 3FC2-3DDB -> ../../sda6 lrwxrwxrwx 1 root root 10 Oct 16 10:27 5090093f-e023-4a93-b2b6-8a9568dd23dc -> ../../sda2 lrwxrwxrwx 1 root root 10 Oct 16 10:27 912c7844-5430-4eea-b55c-e23f8959a8ee -> ../../sda5 lrwxrwxrwx 1 root root 10 Oct 16 10:27 B0DC1977DC193954 -> ../../sdb1 lrwxrwxrwx 1 root root 10 Oct 16 10:27 bae98338-ec29-4beb-aacf-107e44599b2e -> ../../sdb2
Comme vous pouvez le constater, les partitions FAT et NTFS sont dotées d'identifiants plus courts, mais figurent dans la liste. L'avantage à utiliser la méthode UUID c'est qu'elle a moins de chances de conduire à des confusions de noms entre partitions qu'avec les labels ; l'inconvénient c'est que les identifiants soient franchement difficiles à mémoriser.
2. Identification permanente par Label
La plupart des systèmes de fichiers peuvent être dotés d'un label. Toutes vos partitions en étant dotées sont listées dans le répertoire /dev/disk/by-label :
$ ls -lF /dev/disk/by-label total 0 lrwxrwxrwx 1 root root 10 Oct 16 10:27 data -> ../../sdb2 lrwxrwxrwx 1 root root 10 Oct 16 10:27 data2 -> ../../sda2 lrwxrwxrwx 1 root root 10 Oct 16 10:27 fat -> ../../sda6 lrwxrwxrwx 1 root root 10 Oct 16 10:27 home -> ../../sda7 lrwxrwxrwx 1 root root 10 Oct 16 10:27 root -> ../../sda1 lrwxrwxrwx 1 root root 10 Oct 16 10:27 swap -> ../../sda5 lrwxrwxrwx 1 root root 10 Oct 16 10:27 windows -> ../../sdb1
Vous pouvez changer les labels de vos partitions en utilisant ces commandes :
* swap: Créez un nouvel espace de swap comme ceci: mkswap -L <label> /dev/XXX * ext2/ext3: e2label /dev/XXX <label> * reiserfs: reiserfstune -l <label> /dev/XXX * jfs: jfs_tune -L <label> /dev/XXX * xfs: xfs_admin -L <label> /dev/XXX * fat/vfat: il n'existe pas d'outil Linux pour changer le label, mais quand vous créez le système de fichiers, utilisez mkdosfs -n <label> <autres options>. Vous pouvez aussi changer le label d'un système de fichiers existant utilisé par Windows®. * ntfs: ntfslabel /dev/XXX <label> ou le changer sous Windows (TM)
Attention ! Les labels doivent désigner chaque fois un unique périphérique pour que cela fonctionne, qu'il s'agisse de clés USB/Firewire ou de disques durs. La syntaxe de labels =/UUID= est préférable à /dev/disk/by-* pour les partitions UN*X.
3. Identification permanente par id
by-id crée un nom unique dérivant du numéro de série du matériel.
4. Identification permanente par chemin.
'by-path' crée un identifiant unique fondé sur le chemin physique le plus court (déterminé par sysfs). Les deux contiennent des indications sous forme de caractères, désignant le sous-système auxquels ils appartiennent.
Adopter l'identification permanente
Votre choix fait pour une méthode d'identification, voyons à présent comment l'activer dans votre système :
Dans /etc/fstab
Pour adopter une identification unique universelle permanente c'est facile : substituez tout simplement l'identifiant permanent au chemin de périphérique dans le fichier. Dans l'exemple suivant, vous remplaceriez /dev/sda7 par l'un des deux noms suivants :
/dev/disk/by-label/home ou /dev/disk/by-uuid/31f8eb0d-612b-4805-835e-0e6d8b8c5591
Faites-le pour toutes les partitions de votre fichier fstab.
Plutôt qu'indiquer le périphérique explicitement, il est possible d'indiquer directement le système de fichiers devant être monté par son UUID ou son label de volume, en indiquant LABEL=<label> ou UUID=<uuid>, comme ceci :
LABEL=Boot
ou
UUID=3e6be9de-8139-11d1-9106-a43f08d823a6
Utiliser l'identification permanente dans votre chargeur de démarrage
Pour utiliser l'identification permanente dans votre chargeur de démarrage, toutes les conditions qui suivent doivent être réunies :
- Vous utilisez une image mkinitcpio initramfs
- udev est activé dans votre fichier /etc/mkinitcpio
- Quand votre image initramfs a été générée, version 101-3 et suivantes de klibc-udev a été installée (l'identification permanente est défectueuse dans les versions antérieures). Si vous mettez-à-jour klibc-udev afin de pouvoir utiliser l'identification permanente, régénérez votre image initramfs avant de redémarrer.
Dans l'exemple /dev/sda1 est la partition racine. Dans la menu.lst de GRUB, la ligne désignant le noyau se présente comme suit :
kernel /boot/vmlinuz26 root=/dev/hda1 vga=0x318 ro
En fonction du schéma d'identification qui vous agrée le mieux, changez-la pour :
kernel /boot/vmlinuz26 root=/dev/disk/by-label/ro
ou
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/2d781b26-0285-421a-b9d0-d4a0d3b55680 vga=0x318 ro
Pour les partitions Linux, la syntaxe recommandée, peut être encore plus simple :
title Debian GNU/Linux, kernel 2.6.22.3-rc1-slh-smp-1 root (hd3,0) kernel /boot/vmlinuz-2.6.22.3-rc1-slh-smp-1 root=UUID=2d781b26-0285-421a-b9d0-d4a0d3b55680 ro quiet vga=791 initrd /boot/initrd.img-2.6.22.3-rc1-slh-smp-1
Soit root=UUID=XnXXXnnXnnX , pour identifier par son UUID un périphérique bloc.
Une alternative existe pour appliquer à votre système une désignation par label. Par exemple si le système de fichiers de /dev/sda1 est étiqueté "root", vous pourriez utiliser cette ligne dans GRUB :
kernel /boot/vmlinuz26 root=LABEL=root vga=0x318 ro
Source:wiki.archlinux.org qui s'inspire de marc.theaimsgroup.com Les contenus de wiki.archlinux.org sont considérés couverts par la GNU Free Documentation License 1.2 ) et ont été réédités pour le manuels Sidux.

