folder / booting tidak sengaja salah dan reboot

16

Saya keliru menghapus folder / boot dari sistem file saya, reboot, dan yang saya dapatkan sekarang adalah ini:

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

grub rescue>
Imad Nouari
sumber
itu berbeda, dalam hal ini, folder / boot sepenuhnya terhapus. tidak hanya beberapa file darinya, terima kasih.
Imad Nouari
Saya tidak memikirkan salah satu jawaban pada pertanyaan lain yang cukup untuk memperbaikinya ..
Graeme
Cukup adil, tidak benar-benar membaca semua jawaban. Saya selalu menyarankan untuk membangun kembali semuanya daripada mengutak-atik mencoba mencari tahu apa yang hilang sehingga diasumsikan seseorang di sana juga. Butuh separuh waktu.
Cthulhu Tentacles
7
Kesalahan yang jauh lebih besar dibandingkan dengan menghapus /boot, tentu saja, me-reboot sistem sebelum ini diperbaiki.
Anthon

Jawaban:

36

Ups!

Inilah yang harus dilakukan:

  1. Boot distro langsung. Ini bisa berupa cakram instalasi Ubuntu Anda atau yang lain seperti Knoppix .

  2. Temukan drive / partisi tempat Anda menginstal sistem file root Anda. Untuk melakukan ini, Anda dapat membuka terminal dan menjalankan salah satu sudo parted -latau sudo fdisk -l. Jika Anda tidak dapat memberi tahu, edit pertanyaan Anda dan tambahkan hasilnya.

  3. Dengan asumsi bahwa partisi root Anda yang Anda temukan dari langkah terakhir adalah /dev/sdxy( xharus berupa huruf lain dan yharus berupa angka), kemudian jalankan perintah berikut di terminal:

    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. Anda sekarang akan berada di dalam chrootlingkungan yang berarti menjalankan perintah di sini setara dengan menjalankannya di sistem yang diinstal. Hal pertama yang ingin Anda lakukan adalah menginstal ulang GRUB2 ke perangkat sehingga menyalin file yang benar ke dalam /bootfolder. Untuk melakukan ini jalankan yang berikut dengan drive yang partisi root Anda aktif (yaitu /dev/sdxydengan nomor ( y) dihapus):

    grub-install /dev/sdx
    
  5. Anda sekarang ingin mengetahui paket mana yang telah Anda instal yang memiliki file di direktori boot dan instal ulang. Ini akan menggantikan gambar kernel yang telah dihapus antara lain. Perintah untuk menemukan paket adalah:

    dpkg -S /boot
    

    Dan untuk menginstalnya kembali:

    apt-get --reinstall install ...
    

    Di mana ...diganti dengan nama-nama paket dari perintah pertama. Jangan sertakan koma, cukup pisahkan nama paket dengan spasi.

    Langkah ini mungkin akan memerlukan akses internet (kecuali paket sudah ada dalam cache), jadi pastikan Anda terhubung jika ada masalah.

  6. Karena Anda telah menghapus kernel dan menginstalnya kembali, ini seharusnya memicu pembaruan GRUB2 secara otomatis. Tapi kalau-kalau mereka belum, Anda dapat menjalankan:

    update-grub
    
  7. Reboot dan hal-hal sekarang harus diperbaiki. Satu masalah yang saya miliki terakhir kali saya melakukan sesuatu yang serupa adalah bahwa Windows menginstal di mana tidak ditemukan update-grubketika dijalankan chrootkarena bug di os-prober. Jika ini merupakan masalah, jalankan sudo update-grubkembali dalam sistem yang diperbaiki.

Graeme
sumber
@ Olivier, terima kasih pada awalnya di /dev/sdaxmana - mana kemudian mengubahnya menjadi /dev/sdxy.
Graeme
Thanx untuk info hebat - itu menyelamatkan saya, dengan satu tambahan. Karena saya memiliki perangkat lunak RAID, saya juga harus mengikuti petunjuk di sini: help.ubuntu.com/community/Grub2/Instalasi di bawah instal ulang menggunakan metode chroot untuk memulai mdadm dan merakit anggota RAID dan melakukan mount yang sesuai. Kemudian, setelah chroot, instal ulang paket seperti yang dijelaskan dalam jawaban ini dan semuanya baik-baik saja!
bitfiddler