cartella erroneamente cancellata / riavviata e riavviata


16

Ho erroneamente cancellato la cartella / boot dal mio filesystem, riavviato e tutto ciò che ottengo ora è questo:

error: file '/boot/grub/i368-pc/linux.mod' not found.

grub rescue>


è diverso, in questo caso la cartella / boot è stata completamente eliminata. non solo alcuni file da esso, grazie.
Imad Nouari,

Non credo che nessuna delle risposte sull'altra domanda sia sufficiente per risolvere questo problema.
Graeme,

Abbastanza giusto, non ho davvero letto tutte le risposte. Suggerirei sempre di ricostruire il tutto piuttosto che armeggiare nel cercare di capire cosa mancava, quindi ho pensato che anche qualcuno ci sarebbe stato. Richiede metà del tempo.
Tentacoli di Cthulhu,

7
L'errore molto più grande rispetto all'eliminazione /bootè, ovviamente, il riavvio del sistema prima che questo fosse risolto.
Anthon,

Risposte:


36

Oops!

Ecco cosa fare:

  1. Avvia una distribuzione live. Questo può essere il tuo disco di installazione di Ubuntu o un altro come Knoppix .

  2. Trova l'unità / partizione in cui hai installato il tuo filesystem di root. Per fare ciò è possibile aprire un terminale ed eseguire sudo parted -lo sudo fdisk -l. Se non puoi dirlo, modifica la domanda e aggiungi l'output.

  3. Supponendo che la partizione di root che hai trovato dall'ultimo passaggio sia /dev/sdxy( xdovrebbe essere un'altra lettera e ydovrebbe essere un numero), quindi esegui i seguenti comandi in un terminale:

    mkdir mnt
    sudo mount /dev/sdxy mnt
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    sudo chroot mnt
    
  4. Ora ti troverai all'interno di un chrootambiente, il che significa che eseguire comandi qui equivale a eseguirli sul tuo sistema installato. La prima cosa che vuoi fare è reinstallare GRUB2 sul dispositivo in modo che copi i file corretti nella /bootcartella. Per fare ciò, eseguire quanto segue con l'unità su cui si trova la partizione di root (ovvero /dev/sdxycon il numero ( y) rimosso):

    grub-install /dev/sdx
    
  5. Ora vuoi scoprire quali pacchetti hai installato con file nella directory di avvio e reinstallarli. Questo sostituirà le immagini del kernel che sono state eliminate tra le altre cose. Il comando per trovare i pacchetti è:

    dpkg -S /boot
    

    E per reinstallarli:

    apt-get --reinstall install ...
    

    Dove ...viene sostituito con i nomi dei pacchetti dal primo comando. Non includere le virgole, basta avere i nomi dei pacchetti con spazi da separare.

    Questo passaggio richiederà probabilmente l'accesso a Internet (a meno che i pacchetti non siano già nella cache), quindi assicurati di essere connesso in caso di problemi.

  6. Poiché avrai cancellato i tuoi kernel e reinstallati, questo dovrebbe aver innescato automaticamente un aggiornamento di GRUB2. Ma nel caso non lo fossero, puoi eseguire:

    update-grub
    
  7. Riavvia e ora le cose dovrebbero essere riparate. Un problema che ho avuto l'ultima volta che ho fatto qualcosa di simile è che le installazioni di Windows non sono state trovate update-grubquando sono state eseguite a chrootcausa di un bug in os-prober. Se questo è un problema, esegui di sudo update-grubnuovo il sistema riparato.


@Olivier, grazie che inizialmente avevo /dev/sdaxdappertutto poi cambiato in /dev/sdxy.
Graeme,

Grazie per le ottime informazioni: mi ha salvato, con un'aggiunta. Dato che ho un RAID software, ho dovuto seguire anche le istruzioni qui: help.ubuntu.com/community/Grub2/Installazione sotto la reinstallazione usando il metodo chroot per avviare mdadm e assemblare i membri RAID ed eseguire i montaggi di conseguenza. Quindi, dopo chroot, reinstalla i pacchetti come descritto in questa risposta e tutto va bene!
Bitfiddler,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.