Se appare la scritta seguente dopo un aggiornamento del kernel:
error: cannot read the Linux header.
error: you need to load the kernel first.
Failed to boot both default and fallback entries.
Press any key to continue...
Per risolvere è sufficiente:
1. Utilizzare un Cd Live /Chiavetta USB Liniux(possibilemnte recente)
2. Una volta che la distribuzione live si è avviata, aprire un terminale.
3. diventate root (di solito un sudo -i
è sufficiente).
Controllare anche la connessione internet, potrebbe servire.
Individuare la vostra partizione dove risiede la / e se la utilizzate la /boot.
4. Per vedere la situazione delle partizioni utilizzate:
fdisk -l
Ecco una dir di esempio
Device Boot Start End Blocks Id System /dev/sda1 * 1 2292 18408568+ 7 HPFS/NTFS /dev/sda2 2292 2658 2940840 c W95 FAT32 (LBA) /dev/sda3 2658 4864 17720609 f W95 Ext'd (LBA) /dev/sda5 2658 2667 68008+ 83 Linux /dev/sda6 2667 2730 506488+ 82 Linux swap / Solaris /dev/sda7 2731 4864 17141323+ 83 Linux
In base alla dimensione delle partizioni si può dedurre che:
/dev/sda5= /boot
/dev/sda6= swap
/dev/sda7= /
/dev/sda7= /
5. Per montarle:
mkdir /mnt/oldlinux/ mount /dev/sda7 /mnt/oldlinux/ mount /dev/sda5 /mnt/oldlinux/boot
6. Se si montano senza problemi vuol dire che non ci sono problemi al file system, spostarsi nelle cartelle per vedere se ci sono problemi particolari
mount -o bind /proc /mnt/oldlinux/proc mount -o bind /dev /mnt/oldlinux/dev mount -o bind /sys /mnt/oldlinux/sys
Perché un “mount -o bind”?
Un mount ordinario consente di montare solo un dispositivo a blocchi in un unico punto, invece mount -o bind permette di montare un qualcosa che avete e che è già montato altrove in un secondo posto, così si finisce con la stessa roba montata in due posti differenti.
7. Ora che abbiamo tutti i filesystem pronti possiamo usare chroot, questo comando crea una copia “imprigionata” dell’ambiente operativo corrente all’interno dell’ambiente operativo da riparare, quindi è possibile eseguire comandi senza compromettere l’ambiente principale:
chroot /mnt/oldlinux/bin/bash
8. Dopo questo comando, saremo come root sul sistema principale, ora è tempo di riparare il sistema.
9. Se /boot era piena, è probabile che qualcosa sia andato storto nella creazione della initrd durante l’installazione del nuovo kernel, per risolvere il problema si può:
a) Eliminare un po' di roba vecchia in /boot
b) Eseguire
c) In questo caso premere nuovamente g ed aptitude, terminerà correttamente l’installazione del nuovo kernel.
b) Eseguire
aptitude
e premendo il tasto g per vedere se ci sono dei compiti in sospeso.c) In questo caso premere nuovamente g ed aptitude, terminerà correttamente l’installazione del nuovo kernel.
[fonte: http://www.linuxaria.com/article/how-to-recover-kernel-chroot?lang=it]