बूट समय में लॉजिकल वॉल्यूम निष्क्रिय हैं


10

मैंने अपनी तार्किक मात्रा और फाइल सिस्टम का आकार बदला और सभी आसानी से चले गए। मैंने नया कर्नेल स्थापित किया है और रिबूट के बाद मैं न तो वर्तमान को बूट कर सकता हूं और न ही पूर्व को। मुझे ग्रुब (2) विकल्प चुनने के बाद वॉल्यूम समूह नहीं मिला। व्यस्त बॉक्स से निरीक्षण से पता चलता है कि वॉल्यूम डिवाइस मैपर के साथ पंजीकृत नहीं हैं और वे निष्क्रिय हैं। मैं सक्रिय करने के बाद उन्हें माउंट करने में सक्षम नहीं था, मुझे फ़ाइल नहीं मिली त्रुटि (माउंट / देव / मैपर / ऑल-रूट / मेन्ट)।

किसी भी विचार को कैसे आगे बढ़ना है या उन्हें बूट समय पर सक्रिय करना है? या बूट समय पर अचानक सभी निष्क्रिय क्यों हैं?

सादर,

मारेक

EDIT: आगे की जांच में पता चला कि इसका तार्किक संस्करणों के आकार से कोई लेना-देना नहीं था। तथ्य यह है कि फेल बूट के बाद ऐश शेल में लॉजिकल वॉल्यूम को मैन्युअल रूप से सक्रिय करना पड़ता था और इस समस्या का संभावित समाधान नीचे दिए गए मेरे उत्तर में शामिल है।



मैंने अब तक क्या कोशिश की है: 1) आपके पैच 2) /etc/lvm/lvm.conf 3) GRUB_PRELOAD_MODULES="lvm"4) GRUB_CMDLINE_LINUX="scsi_mod.scan=sync"5) sudo grub-install /dev/sda && sudo grub-install /dev/sdb && sudo update-grub && sudo update-initramfs -u -k all6) sudo apt-get install --reinstall lvm2 grub-pc grub-common7) को जोड़कर मैं lvm vgchange -ayअंत में कोशिश कर /usr/share/initramfs-tools/scripts/local-top/lvm2रहा हूं कि मैं जल्दी से कोशिश कर रहा हूं।
isallw

जवाबों:


6

इसलिए मैं अंततः इसे हल करने में कामयाब रहा। तार्किक वॉल्यूम का पता लगाने के साथ एक समस्या (बग) है, जो कुछ प्रकार की दौड़ की स्थिति है (शायद मेरे मामले में इस तथ्य के बारे में कि यह केवीएम के अंदर होता है)। यह निम्नलिखित चर्चा में शामिल है । मेरे विशेष मामले में (डेबियन निचोड़) समाधान इस प्रकार है:

  • स्क्रिप्ट / usr / share / initramfs-tools / script / local-top / lvm2 का बैकअप लें
  • उल्लेख बग रिपोर्ट से पैच लागू करें
  • अद्यतन-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
 }

यह ध्यान दिया जाना चाहिए कि डेबियन बग चर्चा में इस मुद्दे को हल नहीं किया गया है। इसलिए यहाँ प्रस्तुत समाधान सही नहीं हो सकता है
eMBee

मुझे आश्चर्य होगा कि अगर यह 9 साल का बग होगा तो 8 साल पुराने वितरण पर परीक्षण किया जाएगा। मुझे नहीं मिला कि 3 साल बाद उस बग के दर्शन कैसे हुए हैं।
zeratul021

5

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

डेबियन सिस्टम के लिए ट्रिक करना चाहिए।


1
जो लोग आश्चर्यचकित हैं, जैसे मैं था, vgscanसिस्टम पर वॉल्यूम समूहों की खोज करता है, और vgchange -aवॉल्यूम समूहों को उपलब्ध करता है ( -ay) या नहीं ( -an)।
डैन प्रिट्स

1

मुझे यह समस्या भी हुई। अंत में यह तय करने के लिए लग रहा था:

diff -u /usr/share/initramfs-tools/scripts/local-top/lvm2-backup /usr/share/initramfs-tools/scripts/local-top/lvm2
--- /usr/share/initramfs-tools/scripts/local-top/lvm2-backup    2014-06-06 19:55:19.249857946 -0400
+++ /usr/share/initramfs-tools/scripts/local-top/lvm2   2014-06-21 01:26:01.015289945 -0400
@@ -60,6 +60,7 @@

 modprobe -q dm-mod

+lvm vgchange -ay
 activate_vg "$ROOT"
 activate_vg "$resume"

अन्य चीजें जो मैंने कोशिश कीं:

  1. आपका पैच
  2. diffing /etc/lvm/lvm.conf
  3. GRUB_PRELOAD_MODULES="lvm"
  4. GRUB_CMDLINE_LINUX="scsi_mod.scan=sync"
  5. sudo grub-install /dev/sda && sudo grub-install /dev/sdb && sudo update-grub && sudo update-initramfs -u -k all
  6. sudo apt-get install --reinstall lvm2 grub-pc grub-common

मैं गया और अन्य बदलावों से अवगत कराया, यह एकमात्र ऐसा मामला है जो मेरे लिए मायने रखता है, हालांकि यह शायद सबसे कम सुरुचिपूर्ण है।


0

यदि vgscanवॉल्यूम को "ढूंढता है", तो आपको उन्हें सक्रिय करने में सक्षम होना चाहिएvgchange -ay /dev/volumegroupname

$ sudo vgscan
[sudo] password for username: 
  Reading all physical volumes.  This may take a while...
  Found volume group "vg02" using metadata type lvm2
  Found volume group "vg00" using metadata type lvm2

$ sudo vgchange -ay /dev/vg02
  7 logical volume(s) in volume group "vg00" now active

मुझे यकीन नहीं है कि रिबूट के बाद उन्हें निष्क्रिय करने का क्या कारण होगा।


नमस्ते, धन्यवाद मैंने पहले भी यही किया था। लेकिन अगर मैं रिबूट करता हूं तो हम निष्क्रिय चीज पर वापस आ जाते हैं। मैंने उन्हें सक्रिय करने के तुरंत बाद माउंट करने की कोशिश की लेकिन यह मुझे त्रुटि नहीं मिली फ़ाइल के साथ बंद कर देता है।
zeratul021

/Etc/lvm/lvm.conf के साथ समस्या हो सकती है, वर्तमान फ़ाइल का बैकअप लें और किसी अन्य सिस्टम से lvm.conf को कॉपी करने की कोशिश करें और देखें कि क्या यह समस्या हल करती है
सौरभ बड़जात्या

0

किसी भी कॉन्फ़िगरेशन विवरण या त्रुटि संदेशों के बिना हमें एक वास्तविक उत्तर देने की आवश्यकता होगी, मैं grub-mkdevicemapसमाधान के रूप में अंधेरे में एक चाकू ले जाऊंगा ।


0

मान लें कि आप सिस्टम initramfs का उपयोग करते हैं, तो संभवतः वहां एक कॉन्फ़िगरेशन समस्या है। आपको अपनी initramfs छवि को अपडेट करना चाहिए जो कि बूट टाइम पर grub द्वारा शुरू की गई है (डेबियन में आप इसे अपडेट-इनट्रैमफैट के साथ करते हैं, अन्य डिस्ट्रो के बारे में नहीं जानते हैं)।

आप initramfs को अनपैक करके और अपनी initramfs छवि में /etc/lvm/lvm.conf (या ऐसा कुछ) बदलकर हाथ से भी कर सकते हैं और फिर इसे फिर से दोहरा सकते हैं।


नमस्ते, सुझाव के लिए धन्यवाद मैं आज रात बाद में उनका निरीक्षण करने की कोशिश करूंगा। अजीब बात यह है कि नए कर्नेल डिब को स्थापित करने के बाद, इनट्राम्राम्स अपडेट करें और तुरंत बाद ग्रब अपडेट करें।
zeratul021

इसी तरह मेरे साथ दो छापे सरणियाँ हुईं जो बूट करने के लिए आवश्यक थीं। वे initramfs में अब शुरू नहीं हुए, हालाँकि अपडेट-इनट्रैमफ़्स ठीक चले। मुझे mdadm.conf और फिर रेरून इनिडुपडेट-रम्फ्स में छापे सरणियों की तलाश के तरीके को मैन्युअल रूप से बदलना पड़ा।
जैस्पर

मैंने lvm.conf के बारे में नीचे पोस्ट पर टिप्पणी की। मुझे पता चला कि जब मैं कमांड lvm और फिर vgscan और vgchange -ay को रन करता हूं और initramfs शेल से बाहर निकलता हूं तो मैं बूट करता हूं जैसे कि मैं माना जाता हूं। तो समस्या initramfs में कहीं है, कि यह LVM को सक्रिय नहीं करता है। सिर्फ रिकॉर्ड के लिए, / बूट अलग विभाजन पर है।
zeratul021

आपकी समस्या अभी भी अपडेट-इनट्राम्राम्स के साथ ठीक से काम नहीं कर रही है। हो सकता है कि आपको यह देखना चाहिए कि initramfs-tools के लिए कोई अपडेट है या नहीं और फिर अपडेट-initramfs आज़माएं। यदि यह काम नहीं करता है, तो आपको lvm.conf पर initramfs छवि को देखना चाहिए।
जैस्पर

अफसोस की बात है कि मैं नहीं जानता कि एलवीएम को कैसे कॉन्फ़िगर किया जाए, जो मैंने कभी भी स्थापना के दौरान किया था। अगला संकेत ठीक उसी तरह से एक ही लेआउट के साथ अन्य वर्चुअल मशीन taht है जो ठीक उसी तरह से विफल रहता है, इसलिए मुझे खुदाई करने की आवश्यकता है कि LVM बूट समय पर सक्रिय क्यों नहीं हैं।
zeratul021

0

मुझे मेरे वातावरण में वही समस्या आई है जो Red Hat 7.4 को KVM अतिथि के रूप में चला रहा है। मैं qemu-kvm-1.5.3-141 और पुण्य प्रबंधक 1.4.1 चला रहा हूं। सबसे पहले मैं Red Hat 7.2 को बिना किसी समस्या के अतिथि के रूप में चला रहा था, लेकिन लघु रिलीज को 7.2 से 7.4 और कर्नेल के नवीनतम संस्करण 3.10.0-693.5.2 में अपग्रेड करने के बाद, कुछ गलत हो गया और मेरे / var LV विभाजन को बूट नहीं कर सका अधिक। सिस्टम रूट मोड में रूट पासवर्ड के लिए पूछ रहा है। रूट पासवर्ड के साथ प्रवेश करने और कमांड चलाने lvm vgchange -ayऔर systemctl defaultमैं अपने /varएलवी को सक्रिय करने और सिस्टम को बूट करने में सक्षम था ।

मैं पता लगा नहीं क्या इस मुद्दे का कारण बनता है, लेकिन मेरे वैकल्पिक हल LV शामिल करने के लिए था /varमें /etc/default/grubआप नीचे देख के रूप में:

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=vg_local/root rd.lvm.lv=vg_local/var rd.lvm.lv=vg_local/swap rhgb quiet biosdevname=0 net.ifnames=0 ipv6.disable=1"

तब मुझे दौड़ कर grub2-mkconfig -o /boot/grub2/grub.cfgदेखना rd.lvm.lv=vg_local/varपड़ता था कि क्या vmlinuz लाइन में शामिल किया गया था /boot/grub2/grub.cfg। सिस्टम को रीबूट करने के बाद, मुझे अपने /varLV को सक्रिय करने के लिए त्रुटि नहीं मिली और सिस्टम बूट अप प्रक्रिया को सफलता के साथ पूरा करता है।


0

मेरे मामले में पता चला कि ग्रब रूट रूट था / = देव / vgname / रूट

इसलिए परीक्षण / usr / शेयर / initramfs- उपकरण / स्क्रिप्ट / स्थानीय-टॉप / lvm2 में

  # Make sure that we have a d-m path
  dev="${dev#/dev/mapper/}"          
  if [ "$dev" = "$1" ]; then         
    return 1                         
  fi      

हमेशा झूठ था। और रूट वॉल्यूम कभी सक्रिय नहीं हुआ।

अद्यतन / आदि / fstab से

/dev/vgname/root        /

सेवा

/dev/mapper/vgname-root   /

और किया:

update-grub
grub-install /dev/sda

मेरी समस्या हल कर दी


0

हम इस समस्या में भाग गए और पाया कि बूट में मजबूरन वॉल्यूम lvmetadसेट करके अक्षम किया जा सकता है और बूट पर पहुंच योग्य हो सकता है।use_lvmetad=0/etc/lvm/lvm.conf

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.