GNU/Linux >> Linux の 問題 >  >> Linux

論理ボリュームは起動時に非アクティブです

だから私は最終的にこれを解決することができました。ある種の競合状態である論理ボリュームの検出に問題 (バグ) があります (私の場合は、これが KVM 内で発生するという事実に関するものかもしれません)。これについては、次の説明で説明します。私の特定のケース (Debian Squeeze) では、解決策は次のとおりです:

  • スクリプト /usr/share/initramfs-tools/scripts/local-top/lvm2 をバックアップします
  • 上記のバグ レポートからパッチを適用する
  • update-initramfs -u を実行

これは私を助けました、他の人を助けることを願っています (奇妙なことに、これはまだ主流の一部ではありません)。

パッチへのリンク:_http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=10;filename=lvm2_wait-lvm.patch;att=1;bug=568838

以下は後世のためのコピーです。

--- /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
 }

/etc/init.d/lvm で起動スクリプトを作成する 以下を含む:

#!/bin/sh

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

exit 0

次にコマンドを実行します:

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

Debian システムのトリックを実行する必要があります。


Linux
  1. Linuxをより速く起動する

  2. iノード、Lba、論理ボリューム、ブロック、およびセクターの関係?

  3. Linux – Vboxサービスを無効にして起動時間を短縮しますか?

  1. LVMを使用したLinuxでの論理ボリュームの作成

  2. SSH接続に時間がかかりますか?ここにいくつかの修正があります

  3. initcall_debug を使用して、CentOS/RHEL での起動中にカーネル呼び出しに時間がかかっていることを確認する

  1. ブート時に組み込み Linux カーネルモジュールに値を渡す方法は?

  2. ブート パーティションのサイズ変更

  3. Linux で 100MB の ext2 ブート パーティションが推奨されるのはなぜですか?