Przy każdym update-grub
uruchomieniu wszystkie dyski twarde są skanowane. Każdy dysk, który jest w stanie gotowości, obraca się, aby przejść w stan bezczynności. To strata energii. Używamy update-grub wersji 1.98:
# update-grub -v
grub-mkconfig (GRUB) 1.98+20100804-14+squeeze1
Regresja
W pliku znajduje się
GRUB_DISABLE_OS_PROBER=true
opcja/etc/default/grub
. Ale to wydaje się działać tylko od wersji 2 i wyższych. Przynajmniej nie przestaje skanować wszystkich dysków w naszej wersji 1.98.Istnieje
/etc/grub.d/20_linux_xen
skrypt, który może być uruchomiony jako część aktualizacji-grub. Po usunięciu uprawnień do wykonywania dla wszystkich użytkowników,chmod a-x /etc/grub.d/20_linux_xen
wszystkie dyski nadal się rozwijają.
Jak przestać update-grub
skanować każdy dysk twardy?
/usr/sbin/grub-probe --target=device /
. Ta komenda powoduje również wirowanie wszystkich dysków. To/usr/sbin/grub-probe
nie jest skrypt powłoki.update-grub
? Powinno to się zdarzyć tylko po zainstalowaniu nowego jądra, więc kogo to obchodzi?Odpowiedzi:
W pliku /etc/grub.d/30_os-prober wiersz
powoduje, że wszystkie dyski obracają się (w trybie gotowości -> bezczynności). Os-prober to narzędzie do znajdowania instalacji Linuksa na dyskach innych niż dysk rozruchowy. To właśnie
os-prober
należy wyłączyć.apt-get --purge remove os-prober
.$ which os-prober
. Wyjście może wyglądać następująco:/usr/bin/os-prober
. Usuń prawa do plików wykonywalnych dla wszystkich użytkowników tego pliku:# chmod a-x /usr/bin/os-prober
$ locate /30_os-prober
. Wyjście może wyglądać następująco:/etc/grub.d/30_os-prober
. Usuń prawa do plików wykonywalnych dla wszystkich użytkowników tego pliku:# chmod a-x /etc/grub.d/30_os-prober
/etc/grub.d/30_os-prober
. Na przykład poprzez włączenieGRUB_DISABLE_OS_PROBER=true
opcji w naszej wersji Grub 1.98. Można to zrobić, wstawiając do pliku/etc/grub.d/30_os-prober
kod poniżej liniiset -e
:...
źródło
Dla tych, którzy zastanawiają się, czy naprawdę warto, tak jest. Być może nie w celu oszczędzania energii, ale dzisiaj napotkałem problem z aktualizacją-grub, ponieważ chciał sondować zarówno dla / dev / sda (mój dysk twardy), jak i / dev / sdc (pamięć USB). Bez tego ostatniego włożonego do mojego laptopa, aktualizacja-grub by się zawiesił, nawet jeśli na moim pendrivie nie ma zainstalowanego systemu operacyjnego, ani też nie uruchomiłem się z tego pendrive'a. Ponieważ pamięć USB niedawno się zepsuła, potrzebowałem sposobu, aby aktualizacja-grub działała bez niego. Na szczęście załatwiłem sprawę
GRUB_DISABLE_OS_PROBER=true
. :)źródło
(Czy to naprawdę jest warte czasu i wysiłku, aby to naprawić?)
Jak wspomniałeś, sondowanie prawdopodobnie dzieje się podczas
grub-mkconfig
połączeńgrub-probe
. Możesz zmodyfikowaćgrub-mkconfig
, po prostu zapisując na stałe wynikgrub-probe
połączeń. Jest on używany do wypełnieniaGRUB_DEVICE
,GRUB_DEVICE_UUID
,GRUB_DEVICE_BOOT
,GRUB_DEVICE_BOOT_UUID
, iGRUB_FS
.źródło
Zobacz moje rozwiązanie tutaj, aby selektywnie wyłączyć, które partycje są sprawdzane za
os-prober
pomocą małegopatch
.Konfiguracja
GRUB_OS_PROBER_SKIP_LIST="UUID@device_path"
w/etc/default/grub
:zmniejsza ilość urządzeń w
${OSPROBED}
wykorzystywane przez/etc/grub.d/30_os-prober
co kończy sprawdzanie za pomocą
${grub_probe} --target=fs_uuid --device
źródło
Wiem, że to stary post, ale znalazłem inny sposób na osiągnięcie tego, który nie wymaga wprowadzania zmian w skryptach. w
/etc/grub.d/
I przemianowany plik30_os-prober
do.30_os-prober
(początek okresu) i to jest pomijany podczas aktualizacji, mimo to widać w tym samym miejscu wls
przypadku korzystania-a
.źródło