Cada vez que update-grub
se ejecuta, se escanean todos los discos duros. Cada unidad que esté en estado de espera girará para quedar inactiva. Esto es un desperdicio de energía. Utilizamos update-grub versión 1.98:
# update-grub -v
grub-mkconfig (GRUB) 1.98+20100804-14+squeeze1
Regresión
Hay una
GRUB_DISABLE_OS_PROBER=true
opción en el/etc/default/grub
archivo. Pero eso parece funcionar solo desde la versión 2 y posteriores. Al menos no deja de escanear todas las unidades en nuestra versión 1.98.Hay un
/etc/grub.d/20_linux_xen
script que podría ejecutarse como parte de update-grub. Después de eliminar los derechos de ejecución para todos los usuarios conchmod a-x /etc/grub.d/20_linux_xen
todas las unidades, todavía funcionan.
¿Cómo dejar update-grub
de escanear todos y cada uno de los discos duros?
/usr/sbin/grub-probe --target=device /
. Ese comando también hace que todas las unidades giren. El/usr/sbin/grub-probe
no es un script de shell.update-grub
? Esto solo debería suceder cuando instala un nuevo núcleo, entonces, ¿a quién le importa?Respuestas:
En el archivo /etc/grub.d/30_os-prober la línea
hace girar todas las unidades (en espera -> inactivo). Os-prober es una utilidad para encontrar instalaciones de Linux en unidades que no sean su unidad de arranque. Es lo
os-prober
que necesita ser deshabilitado.apt-get --purge remove os-prober
.$ which os-prober
. Resultado sería algo así como:/usr/bin/os-prober
. Elimina los derechos ejecutables para todos los usuarios para ese archivo:# chmod a-x /usr/bin/os-prober
$ locate /30_os-prober
. Resultado sería algo así como:/etc/grub.d/30_os-prober
. Elimina los derechos ejecutables para todos los usuarios para ese archivo:# chmod a-x /etc/grub.d/30_os-prober
/etc/grub.d/30_os-prober
. Por ejemplo, haciendo que laGRUB_DISABLE_OS_PROBER=true
opción funcione en nuestra versión de Grub 1.98. Esto se puede hacer insertando en el archivo/etc/grub.d/30_os-prober
el código debajo de la líneaset -e
:...
fuente
Para aquellos que se preguntan si realmente vale la pena el esfuerzo, sí lo es. Quizás no para ahorrar energía, pero hoy encontré un problema con update-grub, ya que quería probar tanto / dev / sda (mi disco duro) como / dev / sdc (un dispositivo USB). Sin este último insertado en mi computadora portátil, update-grub se colgaría, a pesar de que en realidad no hay un sistema operativo instalado en mi dispositivo USB ni arranqué desde este dispositivo. Como la memoria USB se rompió recientemente, necesitaba una forma para que la actualización-grub continuara (viva) sin ella. Afortunadamente,
GRUB_DISABLE_OS_PROBER=true
acabo de hacer el truco. :)fuente
(¿Realmente vale la pena el tiempo y el esfuerzo para arreglarlo?)
Como mencionó, el sondeo probablemente ocurre cuando se realizan
grub-mkconfig
llamadasgrub-probe
. Puede modificargrub-mkconfig
simplemente codificando el resultado de lasgrub-probe
llamadas. Se utiliza para rellenarGRUB_DEVICE
,GRUB_DEVICE_UUID
,GRUB_DEVICE_BOOT
,GRUB_DEVICE_BOOT_UUID
, yGRUB_FS
.fuente
Vea mi solución aquí para desactivar selectivamente qué particiones se verifican
os-prober
con un pequeñopatch
.La configuración de
GRUB_OS_PROBER_SKIP_LIST="UUID@device_path"
en/etc/default/grub
:reduce la cantidad de dispositivos
${OSPROBED}
utilizados por/etc/grub.d/30_os-prober
que detiene el cheque con
${grub_probe} --target=fs_uuid --device
fuente
Sé que esta es una publicación antigua, pero encontré otra forma de lograr esto que no implica hacer cambios en los scripts. en
/etc/grub.d/
Cambié el nombre del archivo30_os-prober
a.30_os-prober
(comenzar con un punto) y se omite durante la actualización a pesar de que se muestra en el mismo lugarls
si lo usa-a
.fuente