GNU/Linux >> Belajar Linux >  >> Linux

Volume logis tidak aktif saat boot

Jadi saya berhasil menyelesaikan ini pada akhirnya. Ada masalah (bug) dengan pendeteksian volume logis, yang merupakan semacam kondisi balapan (mungkin dalam kasus saya mengenai fakta bahwa ini terjadi di dalam KVM). Ini dibahas dalam diskusi berikut. Dalam kasus khusus saya (Debian Squeeze ) solusinya adalah sebagai berikut:

  • cadangkan skrip /usr/share/initramfs-tools/scripts/local-top/lvm2
  • terapkan tambalan dari laporan bug yang disebutkan
  • jalankan update-initramfs -u

Ini membantu saya, semoga membantu orang lain (anehnya, ini belum menjadi bagian dari arus utama).

Tautan ke tambalan:_http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=10;filename=lvm2_wait-lvm.patch;att=1;bug=568838

Di bawah ini adalah salinan untuk anak cucu.

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

Buat skrip startup di /etc/init.d/lvm berisi hal-hal berikut:

#!/bin/sh

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

exit 0

Kemudian jalankan perintah:

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

Harus melakukan trik untuk sistem Debian.


Linux
  1. Memboot Linux lebih cepat

  2. Membuat volume logis di Linux dengan LVM

  3. Koneksi SSH membutuhkan waktu lama? Berikut adalah beberapa perbaikan

  1. Hubungan Inode, Lba, Volume Logika, Blok, dan Sektor?

  2. Jadi Apa Itu Core Cpu Logis (Berlawanan dengan Core Cpu Fisik)?

  3. Menggunakan initcall_debug untuk menemukan panggilan kernel membutuhkan waktu lama saat boot di CentOS/RHEL

  1. Bagaimana cara memberikan nilai ke modul kernel Linux bawaan saat boot?

  2. Mengubah ukuran partisi boot

  3. Mengapa partisi boot ext2 100MB direkomendasikan untuk linux?