GNU/Linux >> Tutoriels Linux >  >> Linux

Les volumes logiques sont inactifs au démarrage

J'ai donc réussi à résoudre ce problème finalement. Il y a un problème (bogue) avec la détection des volumes logiques, qui est une sorte de condition de concurrence (peut-être dans mon cas concernant le fait que cela se produit à l'intérieur de KVM). Ceci est couvert dans la discussion suivante. Dans mon cas particulier (Debian Squeeze ) la solution est la suivante :

  • sauvegarder le script /usr/share/initramfs-tools/scripts/local-top/lvm2
  • appliquer le correctif du rapport de bogue mentionné
  • exécutez update-initramfs -u

Cela m'a aidé, j'espère que cela aidera les autres (étrangement, cela ne fait pas encore partie du courant dominant).

Lien vers le correctif :_http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=10;filename=lvm2_wait-lvm.patch;att=1;bug=568838

Ci-dessous une copie pour la postérité.

--- /usr/share/initramfs-tools/scripts/local-top/lvm2 2009-08-17 19:28:09.000000000 +0200
+++ /usr/share/initramfs-tools/scripts/local-top/lvm2 2010-02-19 23:22:14.000000000 +0100
@@ -45,12 +45,30 @@

  eval $(dmsetup splitname --nameprefixes --noheadings --rows "$dev")

- if [ "$DM_VG_NAME" ] && [ "$DM_LV_NAME" ]; then
-   lvm lvchange -aly --ignorelockingfailure "$DM_VG_NAME/$DM_LV_NAME"
-   rc=$?
-   if [ $rc = 5 ]; then
-     echo "Unable to find LVM volume $DM_VG_NAME/$DM_LV_NAME"
-   fi
+ # Make sure that we have non-empty volume group and logical volume
+ if [ -z "$DM_VG_NAME" ] || [ -z "$DM_LV_NAME" ]; then
+   return 1
+ fi
+
+ # If the logical volume hasn't shown up yet, give it a little while
+ # to deal with LVM on removable devices (inspired from scripts/local)
+ fulldev="/dev/$DM_VG_NAME/$DM_LV_NAME"
+ if [ -z "`lvm lvscan -a --ignorelockingfailure |grep $fulldev`" ]; then
+   # Use default root delay
+   slumber=$(( ${ROOTDELAY:-180} * 10 ))
+
+   while [ -z "`lvm lvscan -a --ignorelockingfailure |grep $fulldev`" ]; do
+     /bin/sleep 0.1
+     slumber=$(( ${slumber} - 1 ))
+     [ ${slumber} -gt 0 ] || break
+   done
+ fi
+
+ # Activate logical volume
+ lvm lvchange -aly --ignorelockingfailure "$DM_VG_NAME/$DM_LV_NAME"
+ rc=$?
+ if [ $rc = 5 ]; then
+   echo "Unable to find LVM volume $DM_VG_NAME/$DM_LV_NAME"
  fi
 }

Créer un script de démarrage dans /etc/init.d/lvm contenant les éléments suivants :

#!/bin/sh

case "$1" in
 start)
    /sbin/vgscan
    /sbin/vgchange -ay
    ;;
  stop)
    /sbin/vgchange -an
    ;;
  restart|force-reload)
    ;;
esac

exit 0

Exécutez ensuite les commandes :

chmod 0755 /etc/init.d/lvm
update-rc.d lvm start 26 S . stop 82 1 .

Devrait faire l'affaire pour les systèmes Debian.


Linux
  1. Démarrer Linux plus rapidement

  2. Créer des volumes logiques sous Linux avec LVM

  3. La connexion SSH prend beaucoup de temps ? Voici quelques correctifs

  4. Utiliser initcall_debug pour trouver que les appels du noyau prennent beaucoup de temps lors du démarrage dans CentOS/RHEL

  5. Redimensionner la partition de démarrage

Comment vérifier l'historique de redémarrage du système et l'heure de démarrage sous Linux

La gestion des volumes logiques expliquée sous Linux

L'indicateur de temps n'affiche pas la date/l'heure ?

les volumes EBS sont-ils effacés après utilisation ?

Quels sont les avantages du gestionnaire de volumes logiques

En quoi le temps CPU et l'utilisation du CPU sont-ils identiques ?