update-initramfs executa scripts no init-premount?

0

Então, eu tenho um laptop estranho que não inicializa corretamente do meu stick USB3.0. Grub e initramfs carregam, mas depois milagrosamente o bastão não está montado. Se eu apenas esperar, a máquina cai no shell do busybox. blkid não lista meu pau. Mas se eu antes disso acontecer, na hora certa, replique esse stick, o Ubuntu inicializa corretamente.

Então eu pensei, vamos automatizar isso. Eu obtive um script de shell restart_usb, coloquei em /etc/initramfs-tools/scripts/init-premount e executei update-initramfs -u .

Agora vem a parte engraçada: o script é executado ao gerar o novo initramfs , redefinindo assim o usb e por isso, deixando um linux em execução sem acesso a nenhuma de suas partições. Apenas a reinicialização a frio ajuda nisso.

Então, minha pergunta é: como coloco um script que é executado antes de tentar montar / no initramfs sem que ele seja executado por update-initramfs ?

Felicidades.

Edit: Estou executando uma nova instalação (não atualizada) do Ubuntu 14.04.

    
por moeter 26.06.2015 / 20:43

1 resposta

2

Eu tive um problema parecido, então eu procurei em outros scripts incluídos em initramfs . Aparentemente, o "truque" está em um cabeçalho de script que deve ser assim:

 #!/bin/sh

 set -e

 case $1 in
 prereqs)
     prereqs
     exit 0
     ;;
 esac

A declaração case é a parte importante.

É mencionado em esta documentação , mas não que você tem que incluir este cabeçalho, mesmo se você não precisar de um pedido preciso.

    
por Pavel Pokorný 21.01.2016 / 13:28