কীভাবে সমস্ত ড্রাইভ স্ক্যান করা থেকে আপডেট-গ্রাব বন্ধ করবেন?


19

প্রতিবার 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প্রতিটি হার্ড ড্রাইভ স্ক্যান করা থেকে কীভাবে থামবেন ?


এটি কেবল একটি শেল স্ক্রিপ্ট ... এটি সংশোধন করবেন? এটি কেবল কার্নেল আপডেটের পরে চালানো উচিত, যা প্রায়শই ঘটে না।
jordanm

স্ক্রিপ্ট লাইনগুলির একটি কার্যকর করে /usr/sbin/grub-probe --target=device /। এই কমান্ডের ফলে সমস্ত ড্রাইভ স্পিন হয়ে যায়। /usr/sbin/grub-probeএকটি শেল স্ক্রিপ্ট নয়।
প্রো ব্যাকআপ

আপনি কতবার দৌড়াচ্ছেন update-grub? এটি কেবল তখনই ঘটে যখন আপনি একটি নতুন কার্নেল ইনস্টল করবেন, সুতরাং কে যত্ন করে?
psusi

আমি জানি, এটি যে পুরো পিকোজুল ব্যবহার করে তা হ'ল এটি একটি অপচয় - যদি আপনি প্রতি মাসে 3 টি এইচডিডি সহ 1000 টি কম্পিউটারে এক মাসের জন্য 24/7 আপডেট-গ্রাব চালিয়ে যান তবে এটি আপনার বৈদ্যুতিক বিলে এক বা দুটি যোগ করতে পারে।
tkbx

উত্তর:


14

ফাইল /etc/grub.d/30_os- প্রসারণ লাইন

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

যারা সত্যিই চেষ্টাটি মূল্যবান তা ভাবছেন তাদের জন্য হ্যাঁ এটিই। সম্ভবত শক্তি সাশ্রয়ের জন্য নয় তবে আজ আমি আপডেট-গ্রাব নিয়ে একটি সমস্যার মুখোমুখি হলাম কারণ এটি উভয় / দেব / এসডিএ (আমার হার্ডডিস্ক) এবং / ডিভ / এসডিসি (একটি ইউএসবি-স্টিক) উভয়ের জন্য তদন্ত করতে চেয়েছিল। আমার ল্যাপটপে theোকানো না থাকলে আপডেট-গ্রাব স্তব্ধ হয়ে যাবে, যদিও আমার ইউএসবি-স্টিকটিতে আসলে কোনও ওএস ইনস্টল করা হয়নি বা আমি কখনও এই স্টিকটি থেকে বুট করি নি। ইউএসবি-স্টিকটি সম্প্রতি ভেঙে যাওয়ার সাথে সাথে আপডেট-গ্রাবটি না চালিয়ে (জীবিত) চালানোর জন্য আমার একটি উপায় প্রয়োজন। আনুষ্ঠানিকভাবে, GRUB_DISABLE_OS_PROBER=trueস্রেফ কৌশলটি করেছেন। :)


1
আমার বিপরীত সমস্যা ছিল: কোনও ইউএসবি স্টিক উপস্থিত থাকলে আপডেট-গ্রাব ব্যর্থ। ইউএসবি স্টিকটি কিছুটা অস্বাভাবিক ছিল, কারণ এতে ইজি 2 বুট ইনস্টল করা আছে। তবে যেহেতু এটি একটি ইউএসবি স্টিকের উপরে রাখা স্ক্রিপ্ট থেকে আপডেট গ্রাব কমান্ড জারি করা ছিল, তাই এই সমাধানটি অত্যন্ত স্বাগত।
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-proberpatch

কনফিগারেশন 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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.