Comment activer et monter automatiquement des Volumes Logiques (LV) ?
Par Freecrazy -
—
Dernière modification
11/05/2011 22:05
Lors de l'installation d'un serveur de fichiers, nous avons utilisé des Volumes Logiques pour nos espaces de stockages (communs et personnels). Pouvoir les monter automatiquement, à coup sûr, au démarrage est l'objet de cet article. Lors de l'installation d'un serveur de fichiers, j'ai été amené à installer une Mandriva 2010.0 sur des Volumes Logiques ( /, /home/ et /usr/src) installés sur un disque dur dédié, ainsi que tous mes espaces de stockage personnels et communs sur des Volumes Logiques (LV) installés sur un RAID 5 (cf. Configurer le RAID et la gestion de son espace mémoire (LVM)). J'ai décrit tous mes points de montage dans /etc/fstab afin que tout se remonte automatiquement au démarrage. Mais cela ne marche pas ! Pourtant sous Mandriva, cela devrait se faire tout seul. Et, effectivement, c'est bien le cas pour les Volumes Logiques créés à l'installation de la Mandriva, mais par contre un redémarrage me fait perdre quasi systématiquement (le "quasi" est vraiment gênant) les montages de mes LV sur mon RAID (j'ai bien dit les montages pas mes données). A priori je ne suis pas le seul, puisque quelques uns ont reporté des problèmes similaires, cf. bug55503 qui à ce jour (fin janvier 2010) laissent encore perplexes. Il faut reconnaître que c'est assez surprenant car si on regarde le /etc/rc.d/rc.sysinit, on y trouve bien les lignes d'activation des LV. Alors, problème de timing ? Je laisse cette problématique aux bons soins des experts. Nota : En 2011, lors d'une réinstallation avec une Mandriva 2010.2, le problème ne se posait plus 1 - Activer (activate) les LV au démarrage (boot)Si les montages indiqués dans /etc/fstab échouent c'est tout simplement parce que les volumes logiques ne sont pas activés. Pour les activer, il faut plusieurs conditions :
Tout ce qui précède a été fait, mais un reboot de la machine n'active pas les Volumes logiques de mes espaces de stockage et donc ne les monte pas comme indiqué dans /etc/fstab !. Ce qui inquiète sur le coup, c'est que même un vgdisplay ne renvoie rien ! En fait, on retrouve les volumes logiques avec un : # vgscan et on les réactive avec un : # vgchange -a y Mais, bien sûr, là ils ne sont pas montés et il faut le faire manuellement pour tous les LV. Ce n'est pas des plus pratiques. Alors comment faire ? 2 - Lancer au démarrage (boot) un script d'activation et de montage des LV
L'idée est donc de mettre dans un script toutes les commandes utiles pour détecter, activer et monter les Volumes Logiques, et de lancer ce script au démarrage. Pour lancer un script au démarrage, il y a plusieurs possibilités, mais la plus simple et "prévue pour" c'est d'écrire le script dans /etc/rc.d/rc.local. En effet ce "rc.local" se lance une fois que tous les autres (init.d, rc.sysinit, rc.x.d) sont terminés, on est sûr ainsi qu'il ne nous manque pas un service quelconque pour faire exécuter ce que l'on veut. Si ce fichier n'existe pas vous pouvez le créer. Cette solution marche pour toutes les distributions "classiques". Cependant, selon les distributions les scripts et leur emplacement pourront être différents. Si vous ne savez pas jetez un œil sur le "chapitre 6 Boot time scripts" de ce HOWTO sur les LVM (en anglais). Pour la Mandriva 2010 rc.local existe, il y a même un lien /etc/rc.local qui renvoie sur le vrai fichier /etc/rc.d/rc.local (pour créer un lien comme celui-ci #ln -s /etc/rc.d/rc.local /etc/rc.local). Voici le script que j'ai ajouté dans mon rc.local : # La detection et le montage de mon vg_user if [ -x /sbin/lvm ]; then printf "Setting up LV Users :" /sbin/lvm vgscan && /sbin/lvm vgchange -a y if [ $? ] ; then printf "Montage de lv_archives :\n" /bin/mount -t ext4 /dev/vg_user_data/lv_archives /mnt/archives printf "Montage de lv_media :\n" /bin/mount /dev/vg_user_data/lv_media /mnt/media printf "Montage de lv_famille :\n" mount /dev/vg_user_data/lv_famille /mnt/famille printf "Montage de lv_freecrazy :\n" mount /dev/vg_user_data/lv_freecrazy /home/freecrazy printf "Montage de lv_autre_user :\n" mount /dev/vg_user_data/lv_autre_user /home/autre_user else printf "Oups ! il y a un probleme avec LV Users" ; exit $? fi fi exit $? Quelques éléments d'explication :
Voilà avec ce script, vos LV seront détectés, activés (activated) et montés systématiquement au démarrage (boot) Actions sur le document |
|