Каждый раз при update-grub
запуске все жесткие диски сканируются. Все накопители, находящиеся в режиме ожидания, раскрутятся и перейдут в режим ожидания. Это пустая трата энергии. Мы используем update-grub версии 1.98:
# update-grub -v
grub-mkconfig (GRUB) 1.98+20100804-14+squeeze1
регрессия
В файле есть
GRUB_DISABLE_OS_PROBER=true
опция/etc/default/grub
. Но это, кажется, работает только от версии 2 и выше. По крайней мере, это не останавливает сканирование всех дисков в нашей версии 1.98.Существует
/etc/grub.d/20_linux_xen
скрипт, который может быть запущен как часть update-grub. После удаления прав на выполнение для всех пользователейchmod a-x /etc/grub.d/20_linux_xen
все диски продолжают раскручиваться.
Как остановить update-grub
сканирование каждого жесткого диска?
/usr/sbin/grub-probe --target=device /
. Эта команда также заставляет все диски вращаться. Это/usr/sbin/grub-probe
не скрипт оболочки.update-grub
? Это должно происходить только при установке нового ядра, так кого это волнует?Ответы:
В файле /etc/grub.d/30_os-prober строка
заставляет все диски вращаться (режим ожидания -> режим ожидания). Os-prober - это утилита для поиска установок Linux на дисках, отличных от вашего загрузочного диска. Это то,
os-prober
что нужно отключить.apt-get --purge remove os-prober
.$ which os-prober
. Вывод может выглядеть следующим образом :/usr/bin/os-prober
. Удалить права на выполнение для всех пользователей для этого файла:# chmod a-x /usr/bin/os-prober
$ locate /30_os-prober
. Вывод может выглядеть следующим образом :/etc/grub.d/30_os-prober
. Удалить права на выполнение для всех пользователей для этого файла:# chmod a-x /etc/grub.d/30_os-prober
/etc/grub.d/30_os-prober
. Например, сделавGRUB_DISABLE_OS_PROBER=true
опцию работать в нашей версии grub 1.98. Это можно сделать, вставив в файл/etc/grub.d/30_os-prober
код под строкойset -e
:...
источник
Для тех, кто задается вопросом, действительно ли это стоит усилий, да, это так. Возможно, не для экономии энергии, но сегодня я столкнулся с проблемой с update-grub, так как он хотел проверить и / dev / sda (мой жесткий диск), и / dev / sdc (USB-флешка). Без последнего, вставленного в мой ноутбук, update-grub зависал бы, даже если на моей USB-карте не было установлено ни одной ОС, и я никогда не загружался с этой карты. Поскольку USB-флешка недавно сломалась, мне нужен был способ, чтобы update-grub продолжал (живой) без него. К счастью,
GRUB_DISABLE_OS_PROBER=true
только что сделал трюк. :)источник
(Это действительно стоит времени и усилий, чтобы исправить?)
Как вы упомянули, зондирование, вероятно, происходит при
grub-mkconfig
звонкахgrub-probe
. Вы можете изменитьgrub-mkconfig
, просто жестко закодировав результатgrub-probe
вызовов. Он используется для заполненияGRUB_DEVICE
,GRUB_DEVICE_UUID
,GRUB_DEVICE_BOOT
,GRUB_DEVICE_BOOT_UUID
, иGRUB_FS
.источник
Смотрите мое решение здесь, чтобы выборочно отключить, какие разделы проверяются
os-prober
с небольшимpatch
.Конфигурация
GRUB_OS_PROBER_SKIP_LIST="UUID@device_path"
в/etc/default/grub
:сокращает количество устройств ,
${OSPROBED}
используемый/etc/grub.d/30_os-prober
который останавливает проверку с
${grub_probe} --target=fs_uuid --device
источник
Я знаю, что это старый пост, но я нашел другой способ сделать это, не включая внесение изменений в сценарии. в
/etc/grub.d/
I переименовал файл30_os-prober
в.30_os-prober
(начинаются с периода) и пропускается во время обновления , даже если она показывает в том же месте ,ls
если вы используете-a
.источник