Utiliser l’UUID des partitions dans le fstab

Après ma toute fraîche première installation d’Archlinux, j’ai été confronté à un problème d’apparence sérieux, mais vite résolu. A chaque redémarrage, mes disques étaient chamboulés, par ceci j’entends que par exemple sda1 devenait sdc1, sda2 pointait lui vers sdc2, puis cela revenait, plus ou moins aléatoirement. Problème d’uDev, de contrôleurs SATA/IDE un peu vieillots, je ne sais pas exactement, mais la résolution de ce problème est de simplement nommer les disques et partitions par un label ou en utilisant leur UUID. Cette technique permet de s’affranchir de l’emplacement physique des partitions et ainsi supprime toute ambigüité pour que le système retrouve ses marques.

Trouver les UUID des partitions présentes

Les UUID des disques se trouvent sous /dev/disk/by-uuid, dans mon cas :

# ls -l /dev/disk/by-uuid
lrwxrwxrwx 1 root root 10 13 mars  11:59 87240ea5-380b-4eb6-88fc-fc2a9a8c0c2e -> ../../sda4
lrwxrwxrwx 1 root root 10 13 mars  11:59 ab41ff2e-0715-4679-a00c-0a4b7e60e300 -> ../../sda1
lrwxrwxrwx 1 root root 10 13 mars  11:59 cfd9a33a-e3a7-4f2a-badf-7e492506f54c -> ../../sda2
lrwxrwxrwx 1 root root 10 13 mars  11:59 f1f8a263-209b-4320-9531-6444d3dfa5be -> ../../sda3

Ajouter un label aux partitions

Les UUID sont donnés par le système, alors que les labels sont ajoutés manuellement. Voici comment faire avec des partitions existantes avec tune2fs(2,3,4) :

# tune2fs -L monboot /dev/sda1

Pour ajouter le label lors du formatage, on utilisera l’option -L de mkfs.ext(2,3).

fstab

Il suffit donc de les désigner dans /etc/fstab en lieu et place du chemin physique. Mon fstab (partiel) avant :

/dev/sda1 /boot ext2 defaults 0 1

Après désignation par UUID ou labels :

/dev/disk/by-uuid/ab41ff2e-0715-4679-a00c-0a4b7e60e300 /boot ext2 defaults 0 1
ou :
UUID=ab41ff2e-0715-4679-a00c-0a4b7e60e300 /boot ext2 defaults 0 1
ou avec un label :
LABEL=monboot /boot ext2 defaults 0 1

C’est plus long avec les UUID, il faut jouer du copier-coller pour éviter toute erreur, mais c’est du solide :) UUID ou labels, c’est au choix.

Ajouter un disque à une pile RAID 1

Dans cet article nous allons expliquer comment ajouter un disque à un système RAID1 sous Fedora avec la commande mdadm.

Depuis hier edoras ma vieille config qui me sert de serveur fourre-tout sous Fedora 11 ne démarrait plus. J’avais depuis un certains temps un disque dur qui jouait du grattoir à faire un bruit pas possible qui normalement devrait alerter n’importe qui qu’il est temps de s’en occuper. Mais bon, j’ai laissé courir en me disant que ça allait bien tenir et que je m’en inquiéterais plus tard. J’ai attendu trop longtemps.

Je passe sur les détails du comment du pourquoi je m’en suis dépatouillé pour récupérer mes données (229Go de photos et de musique) sur du LVM réparti sur 2 disques avec un disque marqué inexistant. Mais j’ai réussi.
Edoras est d’une part un vieux coucou (Sempron 2400+ avec 1Go de RAM), mais reste très bien pour un petit serveur qui démarre en niveau 3, mais c’est aussi une usine à gaz qui comporte 5 disques : un disque système avec 2 partitions /boot et l’autre en LVM (swap, root et home), un VGdata de 380Go sur 2 disques et un VGraid qui comme son l’indique est un RAID1 sur deux disques SATA de 500Go. Non seulement, j’ai eu ce problème d’inconsistance du VGdata, mais j’avais un des disques du RAID déconnecté. Et ne me demandez pas pourquoi, ce deuxième disque avec un identifiant de partition de type Linux LVM (8e) et non pas Linux RAID auto (fd). Je l’ai donc ré-attribué l’id du système de fichiers comme étant fd. Et j’ai du ré-ajouter le disque au RAID pour le resynchroniser.

Continue reading « Ajouter un disque à une pile RAID 1 »

Ajouter un disque dur P-ATA

Extension de la capacité de stockage

Petit mémo pour ajouter un disque dur à sa machine. C’est une procédure plutôt générale à GNU/Linux, mais pour info elle à été réalisée sur une Fedora 10.

Pour étendre la capacité de mon vieux serveur, j’ai acquis une carte PCI SATA RAID qui se négocie pour une bouchée de pain. Cette carte possède outre les 3 connecteurs SATA, un connecteur IDE. Voulant rapidement tester cette carte, son chipset (VT6421) étant reconnu sans problème, j’y ai ajouté un petit disque IDE de 80Go. J’en profite donc pour écrire ce petit tuto.

Vérification de la présence du disque

Cette machine possède déjà 3 disques, un ls -l /dev/sd* doit donc m’en afficher un quatrième :

$ ls -l /dev/sd*
brw-rw---- 1 root disk 8,  0 déc. 23 23:29 /dev/sda
brw-rw---- 1 root disk 8,  1 déc. 23 23:29 /dev/sda1
brw-rw---- 1 root disk 8,  2 déc. 23 23:29 /dev/sda2
brw-rw---- 1 root disk 8,  3 déc. 23 23:29 /dev/sda3
brw-rw---- 1 root disk 8, 16 déc. 23 23:29 /dev/sdb
brw-rw---- 1 root disk 8, 17 déc. 23 23:29 /dev/sdb1
brw-rw---- 1 root disk 8, 32 déc. 23 23:29 /dev/sdc
brw-rw---- 1 root disk 8, 33 déc. 23 23:29 /dev/sdc1
brw-rw---- 1 root disk 8, 48 déc. 23 23:49 /dev/sdd

Partitionnement

L’étape suivant consiste à le partitionner. Dans mon cas, je ne crée qu’une seule partition de tout le disque. Voici les étapes avec fdisk, les actions étant en gras. A tout moment dans fdisk vous pouvez taper m pour afficher l’aide sur les commandes disponibles.

# fdisk /dev/sdd
Le nombre de cylindres pour ce disque est initialisé à 9964.
Il n'y a rien d''incorrect avec cela, mais c'est plus grand que 1024,
et cela pourrait causer des problèmes en fonction pour certaines configurations:
1) logiciels qui sont exécutés à l'amorçage (i.e., vieilles versions de LILO)
2) logiciels d'amorçage et de partitionnement pour d'autres SE
(i.e., DOS FDISK, OS/2 FDISK)
Commande (m pour l'aide): p
Disque /dev/sdd: 81.9 Go, 81964302336 octets
255 heads, 63 sectors/track, 9964 cylinders
Units = cylindres of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0f800000
Périphérique Amorce    Début         Fin      Blocs    Id  Système
Commande (m pour l'aide): n
Action de commande
e   étendue
p   partition primaire (1-4)
p
Numéro de partition (1-4): 1
Premier cylindre (1-9964, par défaut 1):
Utilisation de la valeur par défaut 1
Last cylindre, +cylindres or +size (1-9964, par défaut 9964):
Utilisation de la valeur par défaut 9964
Commande (m pour l'aide): p
Disque /dev/sdd: 81.9 Go, 81964302336 octets
255 heads, 63 sectors/track, 9964 cylinders
Units = cylindres of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0f800000
Périphérique Amorce    Début         Fin      Blocs    Id  Système
/dev/sdd1               1        9964    80035798+  83  Linux
Commande (m pour l'aide): w
La table de partitions a été altérée!
Appel de ioctl() pour relire la table de partitions.
La nouvelle table sera utilisé lors du prochain réamorçage.
Synchronisation des disques.

Le disque est maintenant prêt à être formaté :

Formatage

Celui-ci va simplement être fait en ext3 par cette commande :

# mkfs.ext3 /dev/sdd1
mke2fs 1.41.3 (12-Oct-2008)
Étiquette de système de fichiers=
Type de système d'exploitation : Linux
Taille de bloc=4096 (log=2)
Taille de fragment=4096 (log=2)
5005312 i-noeuds, 20008949 blocs
1000447 blocs (5.00%) réservés pour le super utilisateur
Premier bloc de données=0
Nombre maximum de blocs du système de fichiers=0
611 groupes de blocs
32768 blocs par groupe, 32768 fragments par groupe
8192 i-noeuds par groupe
Superblocs de secours stockés sur les blocs :
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
Écriture des tables d'i-noeuds : complété
Création du journal (32768 blocs) : complété
Écriture des superblocs et de l'information de comptabilité du système de
fichiers : complété
Le système de fichiers sera automatiquement vérifié tous les 33 montages ou
après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i
pour écraser la valeur.

La partition est opérationnelle, il ne reste plus qu’à la monter. Pour ce faire, au préalable je crée un répertoire de montage data sous /mnt :

# mkdir /mnt/data
# mount /dev/sdd1 /mnt/data

Mon disque est accessible :

# df -h
Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
/dev/mapper/VG1-LVroot
9,9G  3,6G  5,9G  38% /
/dev/mapper/VG1-LVhome
26G  3,2G   22G  13% /home
/dev/sdc1             145G  130G  7,1G  95% /backup
/dev/sdb1             184G  153G   22G  88% /data1
/dev/sda1             236M   22M  203M  10% /boot
/dev/sdd1              76G  180M   72G   1% /mnt/data