Güncelleme grubunun tüm sürücüleri taramasını nasıl durdurabilirim?


20

Her update-grubçalıştırıldığında tüm sabit sürücüler taranır. Bekleme durumunda olan her sürücü boşta kalmak için dönecektir. Bu bir enerji israfı. Update-grub sürüm 1.98 kullanıyoruz:

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

gerileme

  1. Dosyada bir GRUB_DISABLE_OS_PROBER=trueseçenek var /etc/default/grub. Ama bu sadece sürüm 2 ve üstü için çalışıyor gibi görünüyor. En azından 1.98 versiyonumuzdaki tüm sürücüleri taramayı durdurmuyor.

  2. /etc/grub.d/20_linux_xenUpdate-grub'un bir parçası olarak çalıştırılabilecek bir komut dosyası var. chmod a-x /etc/grub.d/20_linux_xenTüm sürücüleri olan tüm kullanıcılar için yürütme hakları kaldırıldıktan sonra hala dönüyor.

update-grubHer bir sabit sürücüyü taramayı nasıl durdurabilirim ?


Bu sadece bir kabuk betiği ... Değiştirilsin mi? Yalnızca çok sık meydana gelmeyen çekirdek güncellemelerinden sonra çalışmalıdır.
jordanm

Komut dosyası satırlarından biri yürütülür /usr/sbin/grub-probe --target=device /. Bu komut ayrıca tüm sürücülerin dönmesine neden olur. Bu /usr/sbin/grub-probebir kabuk betiği değildir.
Pro Backup

Ne sıklıkla koşuyorsun update-grub? Bu yalnızca yeni bir çekirdek yüklediğinizde gerçekleşmelidir, peki kimin umurunda?
psusi

Biliyorum, kullandığı tüm pikojoule böyle bir israf - her biri 3 HDD olan 1000 bilgisayarda bir ay boyunca 7/24 güncelleme çalıştırırsanız, elektrik faturanıza bir veya iki kuruş ekleyebilir.
tkbx

Yanıtlar:


15

/Etc/grub.d/30_os-prober dosyasında satır

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

tüm sürücülerin dönmesini sağlar (bekleme -> boşta). Os-prober , önyükleme sürücünüz dışındaki sürücülerdeki Linux kurulumlarını bulmak için bir yardımcı programdır. Öyle os-proberihtiyaçları devre dışı bırakılması olduğunu.

  1. Tek yönlü etmektir paketi kaldırmak : apt-get --purge remove os-prober.
  2. Başka bir yol os-prober için yürütülebilir hakları kaldırmaktır . Önce kullanarak os-prober konumunu bulun $ which os-prober. Çıktı aşağıdaki gibi görünebilir: /usr/bin/os-prober. Bu dosya için tüm kullanıcıların yürütülebilir haklarını kaldırın:# chmod a-x /usr/bin/os-prober
  3. Başka bir yol, 30_os-prober için yürütülebilir hakları kaldırmaktır . Kullanarak 30_os-prober konumunu bulun $ locate /30_os-prober. Çıktı aşağıdaki gibi görünebilir: /etc/grub.d/30_os-prober. Bu dosya için tüm kullanıcıların yürütülebilir haklarını kaldırın:# chmod a-x /etc/grub.d/30_os-prober
  4. Yine başka bir yolu olduğunu yürütme atlamak arasında /etc/grub.d/30_os-prober. Örneğin GRUB_DISABLE_OS_PROBER=true, grubun 1.98 sürümünde seçeneğin çalışmasını sağlayarak . Bu, dosyaya /etc/grub.d/30_os-probersatırın altındaki kodu ekleyerek yapılabilir set -e:

...

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

5

Gerçekten çabaya değip değmeyeceğini merak edenler için, evet öyle. Belki enerji tasarrufu için değil ama bugün hem / dev / sda (sabit diskim) hem de / dev / sdc (bir USB çubuğu) için problama yapmak istediği için güncelleme grubuyla ilgili bir sorunla karşılaştım. Dizüstü bilgisayarıma ikincisi takılmadan, USB çubuğumda hiç işletim sistemi olmasa da bu çubuktan önyükleme yapmama rağmen güncelleme grubu asılacaktı. USB bellek kısa süre önce bozuldukça, güncelleme grubunun onsuz devam etmesi için (canlı) bir yola ihtiyacım vardı. Neyse ki, GRUB_DISABLE_OS_PROBER=truesadece hile yaptı. :)


1
Ters bir sorunum vardı: bir USB çubuğu mevcutsa güncelleme grubu başarısız oluyor. USB stick, Easy2Boot yüklü olduğu için biraz sıra dışıydı. Ancak bu, USB çubuğuna yerleştirilen bir komut dosyasından update-grub komutunun verildiği bir kioskta olduğundan, bu çözüm çok hoş karşılandı.
noamik

3

(Bu gerçekten düzeltmek için zaman ve çabaya değer mi?)

Bahsettiğiniz gibi, grub-mkconfigaramalar muhtemelen arama sırasında gerçekleşiyordur grub-probe. Sadece aramaların grub-mkconfigsonuçlarını kodlayarak değiştirebilirsiniz grub-probe. Bu doldurmak için kullanılır GRUB_DEVICE, GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT, GRUB_DEVICE_BOOT_UUID, ve GRUB_FS.


1

Hangi bölümlerin küçük bir bölümle denetlendiğini seçerek devre dışı bırakmak için buradaki çözümüme bakın .os-proberpatch

Konfigürasyonu GRUB_OS_PROBER_SKIP_LIST="UUID@device_path"içinde /etc/default/grub:

  • ${OSPROBED}tarafından kullanılan cihazların sayısını azaltır/etc/grub.d/30_os-prober

  • ile çek durur ${grub_probe} --target=fs_uuid --device


0

Bu eski bir yazı olduğunu biliyorum, ama bunu yapmak için senaryolarda değişiklik yapmayı gerektirmeyen başka bir yol buldum. içinde /etc/grub.d/ben dosyayı yeniden adlandırılmış 30_os-proberiçin .30_os-prober(bir süre ile başlar) ve buna aynı yerde gösterir halde güncelleme sırasında atlanır lskullanırsanız -a.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.