1) démarrer sur un livecd
2) trouver la partition racine de linux, par exemple avec :
sudo lsblk --output NAME,FSTYPE,SIZE,LABEL
3) la monter par exemple sur /mnt (du live)
sudo mount /dev/sdXn /mnt <= remplacer X et n par les bonnes valeurs
4) vérifier, en cas de doute, que c'est bien la partition racine de linux qui a été montée
ls /mnt
5) brancher le linux actif (live) sur le linux du disque dur (monté en /mnt)
sudo -i <= pour éviter de devoir taper sudo à toutes les lignes
mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
mount -t proc /proc /mnt/proc
mount --bind /run /mnt/run
mount -t sysfs /sys /mnt/sys
6) activer le linux du disque
chroot /mnt
A partir de là tout se passe comme si c'était le linux du disque dur qui fonctionnait. La tête, c'est le live et les jambes, c'est le disque dur...
On peut donc ré-installer grub
grub-install /dev/sdX <= X étant la valeur précédente
Puis reconstituer le menu, qui intégrera aussi w$
update-grub
Ne reste plus qu'à redémarrer (les démontages se feront automatiquement) :
reboot