J'ai donc un ordinateur portable bizarre qui ne démarre pas correctement avec ma clé USB 3.0. Grub et initramfs
se chargent mais miraculeusement, le manche n'est pas monté. Si je ne fais qu'attendre, la machine bascule vers le shell busybox. blkid
n'énumère pas mon bâton. Mais si je le fais avant, au moment voulu, rebranchez ce bâton, Ubuntu démarre correctement.
Alors j'ai pensé, automatisons cela. Je me suis procuré un script shell restart_usb, je l'ai mis dans /etc/initramfs-tools/scripts/init-premount
et j'ai lancé update-initramfs -u
.
Maintenant vient la partie amusante: le script est exécuté lors de la génération du nouveau initramfs
, réinitialisant ainsi usb et laissant ainsi un linux en cours d'exécution sans accès à aucune de ses partitions. Seule la réinitialisation matérielle y contribue.
Ma question est donc la suivante: comment puis-je mettre un script qui s'exécute avant d'essayer de monter /
dans le initramfs
sans qu'il soit exécuté par update-initramfs
?
À votre santé.
Edit: Je lance une nouvelle installation (non mise à jour) de Ubuntu 14.04.
J'ai eu un problème similaire, alors j'ai fouillé dans d'autres scripts inclus dans initramfs
. Apparemment, le "truc" est dans un en-tête de script qui devrait ressembler à ceci:
#!/bin/sh
set -e
case $1 in
prereqs)
prereqs
exit 0
;;
esac
La déclaration case
est la partie importante.
Il est mentionné dans cette documentation , mais cela n'indique pas que vous devez inclure cet en-tête même si vous n'avez pas besoin d'un ordre précis.