Como impedir que o update-grub varra todas as unidades?

15

Sempre que update-grub é executado, todos os discos rígidos são verificados. Cada unidade em estado de espera girará para ficar inativa. Isso é um desperdício de energia. Nós usamos update-grub versão 1.98:

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

Regressão

  1. Existe uma opção GRUB_DISABLE_OS_PROBER=true no arquivo /etc/default/grub . Mas isso parece funcionar apenas na versão 2 e superior. Pelo menos não para de escanear todas as unidades na nossa versão 1.98.

  2. Existe um script /etc/grub.d/20_linux_xen que pode ser executado como parte do update-grub. Depois de remover os direitos de execução de todos os usuários com chmod a-x /etc/grub.d/20_linux_xen , todas as unidades ainda serão ativadas.

Como parar update-grub de varrer cada disco rígido?

    
por Pro Backup 17.11.2012 / 22:30

5 respostas

12

No arquivo /etc/grub.d/30_os-prober a linha

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

faz todas as unidades girarem (espera - > inativo). O-prober é um utilitário para encontrar instalações do Linux em outras unidades, além da sua unidade de inicialização. É o os-prober que precisa ser desativado.

  1. Uma maneira é remover o pacote : apt-get --purge remove os-prober .
  2. Outra maneira é remover direitos executáveis do os-prober . Primeiro encontre a localização do os-prober usando $ which os-prober . A saída pode se parecer com: /usr/bin/os-prober . Remova os direitos executáveis de todos os usuários desse arquivo: # chmod a-x /usr/bin/os-prober
  3. Outra maneira é remover direitos executáveis de 30_os-prober . Encontre a localização de 30_os-prober usando $ locate /30_os-prober . A saída pode se parecer com: /etc/grub.d/30_os-prober . Remova os direitos executáveis de todos os usuários desse arquivo: # chmod a-x /etc/grub.d/30_os-prober
  4. No entanto, outra maneira é pular a execução de /etc/grub.d/30_os-prober . Por exemplo, fazendo a opção GRUB_DISABLE_OS_PROBER=true funcionar em nosso grub versão 1.98. Isso pode ser feito inserindo-se no arquivo /etc/grub.d/30_os-prober o código abaixo da linha set -e :

...

if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then
  exit 0
fi
    
por 29.12.2012 / 18:34
5

Para aqueles que se perguntam se realmente vale a pena o esforço, sim, é. Talvez não seja para economizar energia, mas hoje eu encontrei um problema com o update-grub, já que ele queria testar tanto o / dev / sda (meu disco rígido) quanto o / dev / sdc (um pendrive). Sem o último inserido no meu laptop, o update-grub seria interrompido, mesmo que não exista nenhum sistema operacional no meu pendrive instalado nem eu tenha inicializado a partir deste pendrive. Como o pendrive recentemente quebrou, eu precisava de um jeito de atualizar-grub para continuar (vivo) sem ele. Felizmente, GRUB_DISABLE_OS_PROBER=true apenas fez o truque. :)

    
por 25.04.2014 / 11:19
3

(Vale a pena o tempo e o esforço para corrigir isso?)

Como você mencionou, a análise provavelmente está acontecendo quando grub-mkconfig chama grub-probe . Você pode modificar grub-mkconfig simplesmente codificando o resultado das chamadas grub-probe . É usado para preencher GRUB_DEVICE , GRUB_DEVICE_UUID , GRUB_DEVICE_BOOT , GRUB_DEVICE_BOOT_UUID e GRUB_FS .

    
por 18.11.2012 / 01:26
0

Veja minha solução aqui para desativar seletivamente quais partições são verificadas por os-prober com um pequeno patch .

A configuração de GRUB_OS_PROBER_SKIP_LIST="UUID@device_path" em /etc/default/grub :

  • reduz o número de dispositivos em ${OSPROBED} usados por /etc/grub.d/30_os-prober

  • que interrompe a verificação com ${grub_probe} --target=fs_uuid --device

por 15.10.2018 / 22:32
0

Eu sei que este é um post antigo, mas encontrei outra maneira de fazer isso, que não envolve alterações nos scripts. em /etc/grub.d/ renomei o arquivo 30_os-prober para .30_os-prober (inicie com um ponto) e ele é ignorado durante a atualização, mesmo que apareça no mesmo lugar em ls se você usar -a .

    
por 08.12.2018 / 22:30

Tags