सभी ड्राइव को स्कैन करने से अपडेट-ग्रब कैसे रोकें?


20

हर बार update-grub चलाने पर सभी हार्ड ड्राइव स्कैन किए जाते हैं। प्रत्येक ड्राइव जो स्टैंडबाय स्थिति में है, निष्क्रिय हो जाएगा। यह ऊर्जा की बर्बादी है। हम अपडेट-ग्रब संस्करण 1.98 का ​​उपयोग करते हैं:

# update-grub -v
grub-mkconfig (GRUB) 1.98+20100804-14+squeeze1

वापसी

  1. वहां एक है GRUB_DISABLE_OS_PROBER=true/etc/default/grubफ़ाइल में विकल्प है । लेकिन यह केवल संस्करण 2 और उसके बाद के संस्करण से काम करता है। कम से कम यह हमारे संस्करण 1.98 में सभी ड्राइव को स्कैन करना बंद नहीं करता है।

  2. एक /etc/grub.d/20_linux_xenस्क्रिप्ट है जिसे अपडेट-ग्रब के एक भाग के रूप में चलाया जा सकता है। chmod a-x /etc/grub.d/20_linux_xenसभी ड्राइव के साथ सभी उपयोगकर्ताओं के लिए निष्पादित अधिकारों को हटाने के बाद अभी भी स्पिन होता है।

update-grubप्रत्येक हार्ड ड्राइव को स्कैन करने से कैसे रोकें ?


यह सिर्फ एक शेल स्क्रिप्ट है ... इसे संशोधित करें? यह केवल कर्नेल अपडेट के बाद चलना चाहिए, जो बहुत बार नहीं होता है।
जोर्डनम

स्क्रिप्ट लाइनों में से एक निष्पादित करता है /usr/sbin/grub-probe --target=device /। वह आदेश भी सभी ड्राइव को स्पिन करने का कारण बनता है। /usr/sbin/grub-probeएक खोल स्क्रिप्ट नहीं है।
प्रो बैकअप

आप कितनी बार भाग रहे हैं update-grub? यह केवल तब होता है जब आप एक नया कर्नेल स्थापित करते हैं, तो कौन परवाह करता है?
psusi 3

मुझे पता है, कि इसका उपयोग करने वाला पूरा पिकोजेल एक ऐसा बेकार है - यदि आप प्रत्येक HDDs के साथ 1000 कंप्यूटरों पर एक महीने के लिए 24/7 अपडेट-ग्रब चलाते हैं, तो यह आपके बिजली के बिल में एक या दो प्रतिशत जोड़ सकता है।
tkbx

जवाबों:


15

फ़ाइल /etc/grub.d/30_os-prober लाइन में

OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"

सभी ड्राइव स्पिन (स्टैंडबाय -> निष्क्रिय) बनाता है। ओएस-प्रोबेर एक उपयोगिता है ड्राइव पर लिनक्स इंस्टॉलेशन को खोजने के लिए फिर आपकी बूट ड्राइव। यह है os-proberकि अक्षम होने की जरूरत है।

  1. एक तरीका यह है पैकेज को निकाल : apt-get --purge remove os-prober
  2. एक अन्य तरीका ओएस-प्रोबेर के लिए निष्पादन योग्य अधिकारों को हटाने का है । पहले उपयोग करते हुए ओएस-प्रोबेर का स्थान ढूंढें $ which os-prober। आउटपुट लग सकता है:/usr/bin/os-prober :। उस फ़ाइल के सभी उपयोगकर्ताओं के लिए निष्पादन योग्य अधिकारों को हटा दें:# chmod a-x /usr/bin/os-prober
  3. एक अन्य तरीका 30_os-prober के लिए निष्पादन योग्य अधिकारों को निकालना है । 30_os-prober का उपयोग कर के स्थान का पता लगाएं $ locate /30_os-prober। आउटपुट लग सकता है:/etc/grub.d/30_os-prober :। उस फ़ाइल के सभी उपयोगकर्ताओं के लिए निष्पादन योग्य अधिकारों को हटा दें:# chmod a-x /etc/grub.d/30_os-prober
  4. अभी तक एक और तरीका है के निष्पादन को छोड़ना है /etc/grub.d/30_os-prober। उदाहरण के लिए GRUB_DISABLE_OS_PROBER=trueहमारे ग्रब संस्करण 1.98 में विकल्प काम करके। यह फ़ाइल /etc/grub.d/30_os-proberको लाइन के नीचे कोड डालकर किया जा सकता हैset -e :

...

if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then
  exit 0
fi

5

उन लोगों के लिए जो वास्तव में प्रयास के लायक हैं, हाँ यह है। शायद ऊर्जा की बचत के लिए नहीं, लेकिन आज मुझे अपडेट-ग्रब के साथ एक समस्या का सामना करना पड़ा क्योंकि यह दोनों / देव / sda (मेरी हार्डडिस्क) और / dev / sdc (एक यूएसबी-स्टिक) के लिए जांच करना चाहता था। मेरे लैपटॉप में बाद में डाले बिना, अपडेट-ग्रब लटका होगा, भले ही वास्तव में मेरे यूएसबी-स्टिक पर कोई ओएस स्थापित नहीं है और न ही मैंने कभी इस छड़ी से बूट किया था। जैसा कि हाल ही में यूएसबी-स्टिक टूट गया था, मुझे अपडेट-ग्रब के लिए इसे (जीवित) जारी रखने के लिए एक रास्ता चाहिए था। सौभाग्य से, GRUB_DISABLE_OS_PROBER=trueबस चाल चली गई । :)


1
मुझे उलटा समस्या थी: अगर यूएसबी स्टिक मौजूद था तो अपडेट-ग्रब फेल हो रहा है। USB स्टिक थोड़ा असामान्य था, क्योंकि इसमें Easy2Boot स्थापित है। लेकिन चूंकि यह एक बहुत ही यूएसबी स्टिक पर रखी गई स्क्रिप्ट से अपडेट-ग्रब कमांड के साथ एक कियोस्क पर था, इसलिए यह समाधान बहुत स्वागत योग्य था।
noamik

3

(क्या यह वास्तव में तय करने के लिए समय और प्रयास के लायक है?)

जैसा कि आपने उल्लेख किया है, संभवतया grub-mkconfigकॉल करते समय जांच हो रही है grub-probe। आप grub-mkconfigकेवल grub-probeकॉल के परिणाम को हार्डकोड करके संशोधित कर सकते हैं। यह भरने के लिए प्रयोग किया जाता है GRUB_DEVICE, GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT, GRUB_DEVICE_BOOT_UUID, और GRUB_FS


1

मेरे समाधान को चुनिंदा रूप से अक्षम करने के लिए यहां देखें कि कौन से विभाजन os-proberएक छोटे से जांचे जाते हैं patch

के विन्यास GRUB_OS_PROBER_SKIP_LIST="UUID@device_path"में /etc/default/grub:

  • ${OSPROBED}द्वारा प्रयुक्त उपकरणों की संख्या कम कर देता है/etc/grub.d/30_os-prober

  • जिसके साथ चेक बंद हो जाता है ${grub_probe} --target=fs_uuid --device


0

मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन मुझे इसे पूरा करने का एक और तरीका मिला है जिसमें स्क्रिप्ट में बदलाव करना शामिल नहीं है। में/etc/grub.d/ मैंने फ़ाइल 30_os-proberको .30_os-proberफिर से नाम दिया (एक अवधि के साथ शुरू) और इसे अपडेट के दौरान छोड़ दिया जाता है, भले ही यह उसी स्थान पर दिखाता हो जहां यह lsउपयोग करता है -a

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