Jedes Mal, wenn ausgeführt update-grub
wird, werden alle Festplatten gescannt. Jedes Laufwerk, das sich im Standby-Zustand befindet, dreht sich in den Leerlauf. Dies ist eine Verschwendung von Energie. Wir verwenden Update-Grub Version 1.98:
# update-grub -v
grub-mkconfig (GRUB) 1.98+20100804-14+squeeze1
Regression
Es gibt eine
GRUB_DISABLE_OS_PROBER=true
Option in der/etc/default/grub
Datei. Das scheint aber erst ab Version 2 zu funktionieren. Zumindest hört es nicht auf, alle Laufwerke in unserer Version 1.98 zu scannen.Es gibt ein
/etc/grub.d/20_linux_xen
Skript, das möglicherweise als Teil von update-grub ausgeführt wird. Nach dem Entfernen von Ausführungsrechten für alle Benutzer mitchmod a-x /etc/grub.d/20_linux_xen
allen Laufwerken drehen sich immer noch.
Wie kann update-grub
ich verhindern, dass jede Festplatte gescannt wird?
/usr/sbin/grub-probe --target=device /
. Dieser Befehl bewirkt auch, dass alle Laufwerke hochfahren. Das/usr/sbin/grub-probe
ist kein Shell-Skript.update-grub
? Dies sollte nur passieren, wenn Sie einen neuen Kernel installieren. Wen interessiert das?Antworten:
In der Datei /etc/grub.d/30_os-prober die Zeile
dreht alle Laufwerke (Standby -> Leerlauf). Os-Prober ist ein Dienstprogramm, mit dem Sie Linux-Installationen auf anderen Laufwerken als Ihrem Startlaufwerk finden können. Es ist das
os-prober
, was deaktiviert werden muss.apt-get --purge remove os-prober
.$ which os-prober
. Ausgabe könnte wie folgt aussehen:/usr/bin/os-prober
. Das Entfernen der ausführbaren Rechte für alle Benutzer für diese Datei:# chmod a-x /usr/bin/os-prober
$ locate /30_os-prober
. Ausgabe könnte wie folgt aussehen:/etc/grub.d/30_os-prober
. Das Entfernen der ausführbaren Rechte für alle Benutzer für diese Datei:# chmod a-x /etc/grub.d/30_os-prober
/etc/grub.d/30_os-prober
. Zum Beispiel, indem dieGRUB_DISABLE_OS_PROBER=true
Option in unserer Grub-Version 1.98 funktioniert. Dies kann durch Einfügen/etc/grub.d/30_os-prober
des folgenden Codes in die Datei geschehenset -e
:...
quelle
Für diejenigen, die sich fragen, ob es die Mühe wirklich wert ist, ja, das ist es. Vielleicht nicht aus Energiespargründen, aber heute bin ich auf ein Problem mit Update-Grub gestoßen, da es sowohl nach / dev / sda (meiner Festplatte) als auch nach / dev / sdc (einem USB-Stick) suchen wollte. Ohne diesen in meinem Laptop zu finden, würde update-grub hängen bleiben, obwohl auf meinem USB-Stick kein Betriebssystem installiert ist und ich noch nie von diesem Stick gebootet habe. Da der USB-Stick kürzlich kaputt gegangen ist, brauchte ich eine Möglichkeit, um update-grub ohne ihn (lebendig) fortzusetzen. Zum Glück habe ich es
GRUB_DISABLE_OS_PROBER=true
einfach geschafft. :)quelle
(Lohnt es sich wirklich, diese Probleme zu beheben?)
Wie Sie bereits erwähnt haben, erfolgt die Prüfung wahrscheinlich bei
grub-mkconfig
Anrufengrub-probe
. Sie können Änderungengrub-mkconfig
vornehmen, indem Sie das Ergebnis dergrub-probe
Aufrufe einfach fest codieren . Es wird verwendet , um zu füllenGRUB_DEVICE
,GRUB_DEVICE_UUID
,GRUB_DEVICE_BOOT
,GRUB_DEVICE_BOOT_UUID
, undGRUB_FS
.quelle
Sehen Sie sich meine Lösung hier an, um selektiv zu deaktivieren, welche Partitionen
os-prober
mit einem kleinen Häkchen überprüft werdenpatch
.Die Konfiguration von
GRUB_OS_PROBER_SKIP_LIST="UUID@device_path"
in/etc/default/grub
:reduziert die Anzahl der Geräte,
${OSPROBED}
die von verwendet werden/etc/grub.d/30_os-prober
das stoppt die Prüfung mit
${grub_probe} --target=fs_uuid --device
quelle
Ich weiß, dass dies ein alter Beitrag ist, aber ich habe einen anderen Weg gefunden, dies zu erreichen, bei dem keine Änderungen an den Skripten vorgenommen werden. in
/etc/grub.d/
Ich habe die Datei30_os-prober
in umbenannt.30_os-prober
(beginne mit einem Punkt) und sie wird während des Updates übersprungen, obwohl sie bei Verwendung an derselben Stelle inls
angezeigt wird-a
.quelle