Memulihkan file .mod yang dipindahkan menggunakan grubrescue

33

Saya melakukan hal bodoh ... Saya lupa bahwa Ubuntu 10,04 (Lucid Lynx) beralih ke GRUB  2 yang menempatkan satu ton file * .mod (modul kernel) di /boot/grub. Saya pikir mereka adalah file soundtrack yang diletakkan di sana dengan keliru, dan saya memindahkannya. Tak perlu dikatakan, reboot berikutnya adalah traumatis. Saya dihadapkan dengan sesuatu yang saya tidak ingat pernah melihat ... prompt 'grub rescue>'.

Namun, dengan bantuan Memperbaiki kesalahan GRUB: "error: filesystem tidak dikenal" , saya dapat memulihkan ...

  • Saya menemukan bahwa penyelamatan GRUB tidak memiliki 'cd', 'cp' atau perintah sistem file lain kecuali variasi sendiri dari 'ls'.
  • Jadi pertama-tama saya harus menemukan partisi dengan /bootdirektori yang berisi vmlinuzfile dan file image boot lainnya ... (perkiraan dari memori upaya yang gagal, serta baris kosong untuk kejelasan, ditambahkan 2014-07-10 oleh docsalvage)

    grub rescue>  ls  
    (hd0,4) (hd0,3) (hd0,2) (hd0,1)  
    
    grub rescue>  ls (hd0,4)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,3)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,2)/boot
    ... grub ... initrd.img-2.6.32-33-generic ... vmlinuz-2.6.32-33-generic 
    
  • Saya menemukan /bootdirektori yang berisi vmlinuzfile vmlinuz-2.6.32-33-genericpada partisi (hd0,2).

  • Kemudian saya mem-boot secara manual dari prompt 'grub rescue>'. Perintah berikut akan ...

    • Setel rootuntuk menggunakan /bootdirektori pada partisi (hd0,2).
    • Memuat modul kernel linux.
    • Setel modul itu untuk menggunakan gambar kernel vmlinuz-2.6.32-33-generic.
    • Atur initrd (inisialisasi RAM disk) untuk menggunakan gambar initrd.img-2.6.32-33-generic.
    • Boot Linux.
  • grub rescue>  set root=(hd0,2)/boot  
    grub rescue>  insmod linux  
    grub rescue>  linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2
    grub rescue>  initrd (hd0,2)/boot/initrd.img-2.6.32-33-generic  
    grub rescue>  boot  
    
  • Ini boot dan crash ke prompt BusyBox yang TIDAK memiliki beberapa perintah sistem file yang belum sempurna.

  • Kemudian saya memindahkan file * .mod kembali ke /boot/grubdirektori ...

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • Reboot berhasil, tapi itu banyak pekerjaan.

Apakah ada cara yang lebih mudah?

DocSalvager
sumber
1
Boot-Repair akan jauh lebih mudah, menurut saya. Lihatlah salah satu dari beberapa jawaban saya tentang Boot-Repair untuk detail penggunaannya.
SirCharlo
1
Cara "termudah" tidak selalu merupakan cara terbaik. Saya sangat tidak setuju dengan semua komentar yang menyarankan menggunakan Live CD; sangat sulit untuk mem-boot dari Live CD pada sistem yang tidak memiliki pembaca CD / DVD.
Simón
ini tidak dapat menemukan partisi dengan direktori / boot. Semua partisi setelah perintah memberikan output filesystem yang tidak diketahui.
Rafed Nole
1
Posting Anda sangat membantu untuk mem-boot kernel dan initrd secara manual, tetapi sistem saya tidak dapat menemukan dev, sys atau proc, dll / fstab atau sbin / init. Itu menuntun saya ke posting lain , yang menyarankan memuat kernel dan mengatur root seperti yang dijelaskan dalam petunjuk boot manual dalam dokumentasi grub , misalnya:, di grub> linux (hd0,X)/boot/vmlinuz-a.b.c-d-generic root=/dev/sdaX mana Xpartisi dengan /boot, a.b.c-dadalah versi kernel. Kemudian sistem saya boot dengan baik! Terima kasih!
Mark Mikofski
1
selain [Memperbaiki kesalahan GRUB: "error: filesystem tidak dikenal" [duplikat]] ( askubuntu.com/q/142300/36961 ) tautan bagus lainnya yang mencakup langkah-langkah ini adalah Cara Menyelamatkan GRUB 2 yang tidak bisa boot di Linux , manual grub 2 juga sangat membantu
Mark Mikofski

Jawaban:

5

Tidak. Saya pikir Anda cukup banyak menemukan cara termudah untuk pulih dari keadaan sistem Anda menggunakan grub rescue ; itu adalah sistem yang sangat minimalis memberikan kemampuan yang cukup untuk mem-boot sistem.

BTW, saya yakin Anda harus menemukan .modfile dan dieksekusi insmod linuxatau linuxperintahnya akan gagal.

Satu-satunya cara lain, seperti yang disebutkan, adalah mem-boot Live CD dan menginstal ulang grub2 setelah chroot'ing ke sistem 'rusak'.

StarNamer
sumber
Anda benar sekali! Saya lupa bahwa saya telah melakukan itu. Ditambahkan ke posting asli saya di atas untuk referensi di masa mendatang. Saya perlu lebih disiplin dalam mencatat dengan cermat dalam situasi ini. Mohon saran jika diperlukan editan lebih lanjut.
DocSalvager
Saya juga harus menentukan root ketika memuat kernel seperti pada grub docs misalnya grub> linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2
Mark Mikofski
Perhatikan juga, jika Anda menemukan file .mod, Anda dapat mengembalikan "grub rescue" ke GRUB berfitur lengkap: # Inspect the current prefix (and other preset variables): set # Find out which devices are available: ls # Set to the correct value, which might be something like this: set prefix=(hd0,1)/grub set root=(hd0,1) insmod normal normal Sumber: gnu.org/software/grub/manual/html_node/…
MegaBrutal
7

Berikut adalah beberapa petunjuk umum dan dasar untuk membantu dengan kesalahan boot seperti GRUB loading stage 1.5 error 15 (misalnya setelah instalasi Windows pada disk drive yang berbeda):

  1. Boot dengan LiveDVD (mis., Disk Desktop Ubuntu).

  2. Buka terminal, dan tulis ulang konfigurasi grub menggunakan perintah ini:

    • sudo mount /dev/sdXY /mnt
    • sudo grub-install --root-directory=/mnt /dev/sdX

Di /dev/sdXmana disk tempat Ubuntu diinstal, dan /dev/sdXYmerupakan partisi pada disk tempat Ubuntu diinstal. Dengan kata lain, /dev/sdXYmengandung /bootdan sebagainya.

Gunakan fdisk -luntuk memverifikasi lokasi instalasi Ubuntu.

lama
sumber
Tidak bekerja. Mungkin jika arahnya lebih spesifik, itu akan berhasil.
Tim Stewart
Ketika saya memiliki masalah grub2 pada mesin tanpa drive cd saya dapat memulihkan dengan menggunakan drive memory stick Gparted Live usb saya. Saya boot ke live Gparted. LALU saya memulai terminal dan mengetik fdisk -l (itu huruf ell, bukan nomor 1) Keluaran dari itu biarkan saya mengidentifikasi partisi yang memiliki partisi root dan dari sana saya mengikuti instruksi yang sangat baik di atas dan saya segera dengan senang hati dual boot lagi .
Vic
4
  1. Boot ke Live CD

  2. Terminal Terbuka (CTRL + ALT + T)

  3. Masukkan perintah berikut:

sudo fdisk -l

Dan temukan partisi Ubuntu Anda (seharusnya / dev / sda1 jika itu adalah partisi pertama)

sudo mount /dev/sda1 /mnt

sudo mount --bind /sys /mnt/sys

sudo mount --bind /proc /mnt/proc

sudo mount --bind /dev /mnt/dev

sudo chroot /mnt

Sekarang instal ulang Grub2

sudo apt-get install --reinstall grub2
nastys
sumber
2
Apakah ini cara yang lebih baik daripada sudo mount /dev/sda1 /mntdan sudo grub-install --root-directory=/mnt/ /dev/sda && sudo update-grub?
4

Saya memiliki masalah yang sama ketika saya memutakhirkan sistem saya.

Saya menyarankan langkah-langkah sederhana berikut:

  1. Boot sistem Anda dengan live CD ubuntu atau live USB.
  2. Buka terminal dan jalankan perintah sudo add-apt-repository ppa: yannubuntu / boot-repair && sudo apt-get update
  3. Kemudian instal perbaikan boot dengan menjalankan perintah sudo apt-get install -y boot-repair && boot-repair

  4. Luncurkan perbaikan boot setelah menginstal. Misalnya, dari menu, gunakan System->Administration->Boot-Repair (hanya Ubuntu 10,04) dan ikuti instruksi.

    Mungkin butuh 15-20 menit untuk mencari tahu masalah dan memperbaikinya.

Untuk bantuan lebih lanjut, buka tautan https://help.ubuntu.com/community/Boot-Repair

Keras
sumber
0

Anda dapat mem-boot live CD, pasang hard drive Anda, buka nautilus sebagai root dan salin file-file itu ke / boot.

nastys
sumber