Bagaimana cara menjalankan pembaruan-grub dari LiveCD?


62

Oke, jadi saya melakukan sesuatu yang bodoh. Saya mencoba untuk membersihkan entri Grub saya, dan secara tidak sengaja menghapus semua kernel Linux saya dari Grub (mereka masih ada di hard drive). Jadi sekarang, jelas, Grub tidak memberi saya cara untuk boot ke Ubuntu; Saya bisa boot ke Windows dengan baik, tetapi Ubuntu bahkan tidak terdaftar.

Jadi saya hanya ingin menjalankan "sudo upgrade-grub" untuk mengembalikan Ubuntu ke daftar. Saya dapat mem-boot dari LiveCD, tetapi begitu ada di sana bagaimana saya menjalankan perintah itu? (Omong-omong, instalasi Ubuntu saya ada di sda5.)


Ini berfungsi dengan baik ... melakukannya hanya 2 hari yang lalu- opensource-sidh.blogspot.in/2011/06/…
Nirmik

di utas ini ingin menunjukkan - bahwa pada jam 12.10 perintah update-grub tidak bekerja dengan grub <2.0?! - Saya sendiri akhir pekan lalu merusak instalasi saya pada 12.10 (pear OS 7.0.1) dengan grub-install dan kemudian update-grub tidak berfungsi - harus melakukan penyelamatan dengan supergrub-CD ...
dschinn1001

Jawaban:


81

Karena Anda mengatakan bootloader grub Anda muncul, tetapi menu ini kosong, saya pikir Anda tidak perlu menginstal ulang grub, tetapi, saat Anda bertanya, jalankan update-grub. Untuk mencapai ini, Anda dapat menggunakan Live CD, me-mount partisi yang relevan dari hard disk Anda, chroot ke direktori yang di-mount, dan menjalankan pembaruan-grub, yang seharusnya berfungsi seolah-olah Anda sedang beroperasi pada hard disk yang sebenarnya.

Boot dengan Live CD Anda, pilih "Coba Ubuntu tanpa menginstal".

Setelah boot, buka terminal (ctrl-alt-t) dan pasang partisi Ubuntu Anda di / mnt. Saya berasumsi partisi Ubuntu adalah / dev / sda5, tetapi Anda harus menentukannya sendiri. Beri tahu saya jika Anda perlu bantuan untuk melakukan ini:

sudo mount /dev/sda5 /mnt

Kemudian pasang beberapa direktori lagi yang diperlukan:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc

Juga, jika Anda memiliki partisi boot Ubuntu yang terpisah (sangat jarang hari ini, tetapi mungkin demikian):

sudo mount /dev/sdaX /mnt/boot

Bagaimana Anda bisa tahu jika Anda memiliki partisi boot?

Setelah partisi Ubuntu terpasang, buka /mnt/etc/fstab. Jika Anda melihat entri untuk /boot, perhatikan perangkat yang ditunjuknya ( /dev/sda4mungkin?). Ini yang harus kamu mount.

Setelah ini di-mount, lakukan chroot untuk mulai menggunakan direktori yang di-mount sebagai partisi root:

sudo chroot /mnt

Anda akan mendapatkan #/prompt. Hal pertama yang harus dilakukan adalah mengonfirmasi bahwa Anda menggunakan /bootdirektori yang benar . Pergi ke /boot/grubdan melihat file di sana. Seharusnya ada banyak file .mod dan file grub.cfg. Jika direktori kosong, jangan lanjutkan, karena ini berarti BUKAN bootdirektori aktual Anda . Lihat di atas untuk melihat bagaimana menentukan apakah Anda perlu memasang bootdirektori tambahan .

Setelah Anda mengonfirmasi bahwa itu /boot/berisi file yang benar, artinya itu adalah lokasi yang benar, ketik:

sudo update-grub

Ini akan membangun kembali file /boot/grub/grub.cfg Anda dengan entri menu.

Lalu keluar dari chroot:

exit

Pada titik ini Anda mungkin ingin memeriksa apakah semuanya telah diperbarui dengan benar. Untuk ini, cd /mnt/boot/grubdan periksa apakah file grub ada di sana, harus ada banyak file .mod dan grub.cfg, yang terakhir harus memiliki entri untuk kernel Ubuntu Anda. Jika Anda hanya melihat grub.cfg dan tidak ada file .mod, ini berarti BUKAN direktori boot yang benar, lihat di atas untuk cara memasang partisi boot terpisah.

Lepas sistem file:

sudo umount /mnt/dev
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot #Only if you mounted it earlier
sudo umount /mnt/

Dan kemudian reboot, semoga menu Grub Anda akan dikembalikan.


Ketika saya mencoba menjalankan tiga perintah mount, saya mendapatkan "mount point / mnt / dev tidak ada" atau yang sesuai untuk masing-masing.
Kelley

apakah Ubuntu Anda terinstal di / dev / sda5? Jika demikian, setelah itu sudo mount /dev/sda5 /mntAnda dapat cd /mntdan melihat pohon instalasi Ubuntu Anda di sana. Seharusnya memiliki dev, sys dan proc. Jika tidak, mungkin Anda memasang partisi yang salah. Bisakah kamu memeriksanya? Terima kasih!
roadmr

Saya memulai ulang LiveCD dan kali ini tampaknya berfungsi. Saya pasti telah mengetik sesuatu yang salah pertama kali, meskipun saya berhati-hati. Bagaimanapun, saya me-reboot sekarang ... dan tidak, tidak ada yang berubah. Masih tidak ada pilihan Ubuntu di menu Grub.
Kelley

Jadi untuk menjawab pertanyaan Anda, setelah menjalankan "sudo mount / dev / sda5 / mnt", dan kemudian "cd / mnt", saya melihat dev, sys, dan proc.
Kelley

1
Anda Tuan, adalah penyelamat hidup :) Terima kasih untuk ini. Bekerja seperti pesona.
tanggal

14

Boot dari Live CD.

Tekan Alt+ Ctrl+ Tuntuk membuka terminal dan menjalankan perintah berikut:

sudo mount / dev / sda5 / mnt

Instal boot loader GRUB2:

sudo grub-install --root-directory = / mnt / dev / sda

Itu /dev/sda- hard disk itu sendiri, bukan partisi Ubuntu - /dev/sda5.

Lepas partisi Ubuntu dan nyalakan kembali komputer seperti:

sudo umount / dev / sda5; sudo reboot

Jika Anda memiliki lebih dari satu OS yang diinstal, deteksi ulang OS seperti:

sudo perbarui-grub

Itu dia!


1
tambang yang ditandai untuk dihapus - tidak ada gunanya dua kali
23 93 26 35 19 57 3 89

Terima kasih, tetapi itu tidak berhasil. Ini menginstal ulang Grub, tetapi ketika saya reboot masih belum diperbarui, jadi instalasi Ubuntu saya masih belum muncul di Grub. Entah bagaimana saya perlu memperbarui Grub sebelum saya reboot, seperti dari LiveCD.
Kelley

@Kelley Apakah Anda yakin instalasi Ubuntu ada di sda5? Anda dapat memeriksanya dengan menjalankan sudo fdisk -l. Instalasi Ubuntu akan memiliki *after / dev / sdxx.
Basharat Sialvi

Ya, ada di sda5. Namun, * adalah setelah sda2, yang merupakan partisi Windows saya (dan partisi terakhir yang dapat saya gunakan untuk boot, karena ini adalah satu-satunya pilihan pada menu Grub saya).
Kelley

Chroot. Silakan baca jawaban lainnya.
ish

1

Solusi saya untuk masalah itu adalah:

  1. unduh supergrub2disk dari http://www.supergrubdisk.org/category/download/supergrub2diskdownload/super-grub2-disk-stable/
  2. letakkan di pendrive http://www.supergrubdisk.org/put-super-grub2-disk-into-an-usb-pendrive-as-an-iso-image-from-windows/
  3. boot komputer dari flashdisk dengan supergrub2disk di atasnya
  4. masuk ke Ubuntu Anda
  5. dapatkan Boot-Repair untuk Ubuntu dari https://help.ubuntu.com/community/Boot-Repair

Mungkin itu bukan solusi tercepat tetapi bagi saya itu adalah solusi termudah.


1

Solusi ini sama persis dengan jawaban roadmr kecuali jauh lebih mudah.

  1. Boot ke AntiX Live CD.
  2. Menu> Aplikasi> Peralatan Sistem> Perbaikan Boot
  3. Pilih 'Perbaiki file Konfigurasi GRUB' (opsi ini menjalankan pembaruan-grub)
  4. Pilih drive / partisi tempat / boot berada
  5. Nyalakan kembali setelah selesai.

Dalam kasus khusus saya, 'Instal ulang GRUB Bootloader' memperbaikinya untuk saya .. Saya memiliki pengaturan dual-boot windows / linux. Saya menggunakan Macrium 7 untuk membuat klon drive ke file. Kemudian kembalikan file itu ke drive baru. Setelah saya mengembalikannya ke drive baru, itu akan boot ke layar hitam dengan kursor berkedip di kiri atas .



-1

Terima kasih atas semua bantuannya! Namun, pada akhirnya tidak ada yang berfungsi, dan karena saya memiliki partisi / home terpisah, saya dapat menginstal ulang Ubuntu tanpa kehilangan data apa pun. Saya masih harus menginstal ulang program dan melakukan beberapa konfigurasi, tetapi semuanya tampak bagus pada saat ini.


1
Senang mengetahui Anda memecahkannya entah bagaimana, tetapi chroot seharusnya bekerja, dan itu, saya menganggap solusi terbaik.
Mahesh

Iya. Saya tidak tahu mengapa itu tidak berhasil, tetapi jawabannya luar biasa (dan saya membatalkannya). Kalian memberikan banyak bantuan, dan mungkin jawabannya akan membantu orang lain mengatasi masalah ini.
Kelley
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.