Ripristinare l’avvio con GRUB2 dopo la sostituzione di un hard disk
Cambiando un hard disk (ad esempio passando da un disco normale ad un ssd) anche se si clona con strumenti tipo Acronis i sistemi linux basati su UUID per il riconoscimento dei dischi non partono più.
Occorre quindi partire con una LiveCD o una LiveUSB per eseguirne il ripristino.
Da dentro la live per prima cosa si identifica la partizione:
sudo fdisk -l
Ad esempio potrebbe essere la /dev/sda1, e se ne esegue il mount:
sudo mount /dev/sda1 /mnt
Si linkano quindi le directory usate da grub:
sudo mount --bind /dev /mnt/dev sudo mount --bind /dev/pts /mnt/dev/pts sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys
Oppure:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
Si usa l’opzione –bind in quanto si vuole montare un pezzo di filesystem in un altro punto.
Si esegue il chroot sulla partizione reale:
sudo chroot /mnt
Se eseguendo il chroot si ottiene l’errore “formato eseguibile non valido” molto probabilmente si sta utilizzando una versione del LiveCD diverso di architettura (ad esempio LiveCD 32bit con sistema a 64bit), quindi basta utilizzare la versione giusta e ripetere le operazioni.
Si rigenera grub:
sudo grub-install /dev/sda sudo grub-install --recheck /dev/sda sudo update-grub
Si smonta tutto e si riavvia il pc:
exit sudo umount /mnt/sys sudo umount /mnt/proc sudo umount /mnt/dev/pts sudo umount /mnt/dev sudo umount /mnt sudo reboot
Oppure:
for i in /mnt/sys /mnt/proc /mnt/run /mnt/dev /mnt; do sudo ummount "$i"; done
Ora si dovrebbe avere nuovamente grub2 funzionante.