Làm cách nào để chạy update-grub từ LiveCD?


62

Được rồi, vì vậy tôi đã làm một cái gì đó ngu ngốc. Tôi đang cố gắng dọn sạch các mục Grub của mình và vô tình xóa tất cả các nhân Linux của tôi khỏi Grub (chúng vẫn còn trên ổ cứng). Vì vậy, bây giờ, rõ ràng, Grub không cho tôi bất kỳ cách nào để khởi động vào Ubuntu; Tôi có thể khởi động vào Windows tốt, nhưng Ubuntu thậm chí không được liệt kê.

Vì vậy, tôi chỉ muốn chạy "sudo nâng cấp-grub" bằng cách nào đó để khôi phục Ubuntu vào danh sách. Tôi có thể khởi động từ LiveCD, nhưng một lần ở đó làm thế nào để tôi chạy lệnh đó? (Nhân tiện, cài đặt Ubuntu của tôi là trên sda5.)


Điều này hoạt động hoàn hảo ... đã làm nó chỉ 2 ngày
trước-

tại luồng này muốn trỏ đến - rằng tại 12.10 lệnh update-grub không hoạt động với grub <2.0?! - Bản thân tôi cuối tuần qua đã cài đặt bản cài đặt 12.10 (lê OS 7.0.1) với cài đặt grub và sau đó update-grub không hoạt động - phải giải cứu với supergrub-CD ...
dschinn1001

Câu trả lời:


81

Vì bạn nói bộ tải khởi động grub của bạn xuất hiện, nhưng menu trống, tôi nghĩ bạn không cần phải cài đặt lại grub, nhưng thay vào đó, như bạn yêu cầu, hãy chạy update-grub. Để đạt được điều này, bạn có thể sử dụng Live CD, gắn các phân vùng có liên quan từ đĩa cứng của bạn, chroot vào thư mục được gắn và chạy update-grub, hoạt động như thể bạn đang hoạt động trên đĩa cứng thực tế.

Khởi động với CD Live của bạn, chọn "Dùng thử Ubuntu mà không cần cài đặt".

Khi nó khởi động, hãy mở một thiết bị đầu cuối (ctrl-alt-t) và gắn kết phân vùng Ubuntu của bạn trên / mnt. Tôi giả sử phân vùng Ubuntu là / dev / sda5, nhưng bạn nên tự xác định điều này. Hãy cho tôi biết nếu bạn cần giúp đỡ để làm điều này:

sudo mount /dev/sda5 /mnt

Sau đó gắn thêm một vài thư mục cần thiết:

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

Ngoài ra, nếu bạn có một phân vùng khởi động Ubuntu riêng biệt (khá hiếm trong những ngày này, nhưng nó có thể là trường hợp):

sudo mount /dev/sdaX /mnt/boot

Làm thế nào bạn có thể biết nếu bạn có một phân vùng khởi động?

Khi bạn đã cài đặt phân vùng Ubuntu, hãy mở /mnt/etc/fstab. Nếu bạn thấy một mục nhập /boot, hãy lưu ý thiết bị nào đang trỏ đến ( /dev/sda4có thể?). Đây là một trong những bạn phải gắn kết.

Khi chúng được gắn kết, hãy chroot để bắt đầu sử dụng thư mục được gắn kết làm phân vùng gốc:

sudo chroot /mnt

Bạn sẽ nhận được một #/lời nhắc. Điều đầu tiên cần làm là xác nhận rằng bạn đang sử dụng đúng /bootthư mục. Đi đến /boot/grubvà xem các tập tin ở đó. Cần có một loạt các tệp .mod và một tệp grub.cfg. Nếu thư mục trống, đừng tiếp tục, vì điều đó có nghĩa đây KHÔNG phải là bootthư mục thực sự của bạn . Nhìn ở trên để xem làm thế nào để xác định nếu bạn cần gắn một bootthư mục bổ sung .

Khi bạn đã xác nhận /boot/có chứa các tệp chính xác, nghĩa là đó vị trí chính xác, hãy nhập:

sudo update-grub

Điều này sẽ xây dựng lại tập tin /boot/grub/grub.cfg của bạn với các mục menu.

Sau đó thoát khỏi chroot:

exit

Tại thời điểm này, bạn có thể muốn kiểm tra xem mọi thứ đã được cập nhật chính xác chưa. Đối với điều này, cd /mnt/boot/grubvà kiểm tra xem các tệp của grub có ở đó không, cần có một loạt các tệp .mod và grub.cfg, các tệp sau sẽ có các mục cho các hạt nhân Ubuntu của bạn. Nếu bạn chỉ thấy các tệp grub.cfg và không có tệp .mod, điều đó có nghĩa rằng đây KHÔNG phải là thư mục khởi động chính xác, hãy xem phía trên để biết cách gắn một phân vùng khởi động riêng.

Ngắt kết nối các hệ thống tập tin:

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/

Và sau đó khởi động lại, hy vọng menu Grub của bạn sẽ được khôi phục.


Khi tôi cố chạy ba lệnh mount, tôi nhận được "mount point / mnt / dev không tồn tại" hoặc lệnh tương ứng cho mỗi lệnh.
Kelley

Ubuntu của bạn có cài đặt trên / dev / sda5 không? Nếu vậy, sau khi sudo mount /dev/sda5 /mntbạn có thể cd /mntvà thấy cây cài đặt Ubuntu của bạn ở đó. Nó nên có dev, sys và Proc. Nếu không, có thể bạn đang gắn phân vùng sai. Bạm có thể kiểm tra cái này không? Cảm ơn!
roadmr

Tôi đã khởi động lại LiveCD và lần này nó dường như đang hoạt động. Tôi phải gõ một cái gì đó sai lần đầu tiên, mặc dù tôi đã cẩn thận. Dù sao, tôi đang khởi động lại bây giờ ... và không, không có gì thay đổi. Vẫn không có lựa chọn Ubuntu trong menu Grub.
Kelley

Vì vậy, để trả lời câu hỏi của bạn, sau khi chạy "sudo mount / dev / sda5 / mnt", và sau đó "cd / mnt", tôi thấy dev, sys và Proc.
Kelley

1
Thưa ngài, là một người cứu mạng :) Cảm ơn vì điều này. Làm việc như người ở.
vào

14

Khởi động từ đĩa CD trực tiếp.

Nhấn Alt+ Ctrl+ Tđể mở terminal và chạy các lệnh sau:

gắn kết sudo / dev / sda5 / mnt

Cài đặt bộ tải khởi động GRUB2:

sudo grub-install --root-thư mục = / mnt / dev / sda

Đó là /dev/sda- bản thân đĩa cứng, không phải phân vùng Ubuntu - /dev/sda5.

Ngắt kết nối phân vùng Ubuntu và khởi động lại máy tính như sau:

sudo umount / dev / sda5; khởi động lại sudo

Nếu bạn đã cài đặt nhiều HĐH, hãy phát hiện lại các HĐH như sau:

sudo update-grub

Đó là nó!


1
gắn cờ của tôi để xóa - không có điểm nào trong cùng một điều hai lần
23 93 26 35 19 57 3 89

Cảm ơn, nhưng điều đó không làm việc. Nó cài đặt lại Grub, nhưng khi tôi khởi động lại thì nó vẫn chưa được cập nhật, vì vậy cài đặt Ubuntu của tôi vẫn không hiển thị trong Grub. Bằng cách nào đó tôi cần cập nhật Grub trước khi khởi động lại, như từ LiveCD.
Kelley

@Kelley Bạn có chắc cài đặt Ubuntu trên sda5 không? Bạn có thể kiểm tra nó bằng cách chạy sudo fdisk -l. Cài đặt Ubuntu sẽ có *sau / dev / sdxx.
Basharat Sialvi

Vâng, đó là trên sda5. Tuy nhiên, * nằm sau sda2, là phân vùng Windows của tôi (và phân vùng cuối cùng mà tôi có thể khởi động, vì đó là lựa chọn duy nhất trên menu Grub của tôi).
Kelley

Chroot. Xin vui lòng đọc câu trả lời khác.
ish

1

Giải pháp của tôi cho vấn đề đó là:

  1. tải xuống supergrub2disk từ http://www.supergrubdisk.org/carget/doad/supergrub2diskdoad/super-grub2-disk-urdy/
  2. đặt nó trên Pendrive http://www.supergrubdisk.org/put-super-grub2-disk-into-an-usb-pendrive-as-an-iso-image-from-windows/
  3. khởi động máy tính từ Pendrive với supergrub2disk trên nó
  4. đăng nhập vào Ubuntu của bạn
  5. nhận Boot-Repair cho Ubuntu từ https://help.ubfox.com/community/Boot-Repair

Có thể đó không phải là giải pháp nhanh nhất nhưng với tôi đó là giải pháp dễ nhất.


1

Giải pháp này giống hệt như câu trả lời của roadmr ngoại trừ dễ dàng hơn nhiều.

  1. Khởi động vào AntiX Live CD.
  2. Menu> Ứng dụng> Công cụ hệ thống> Sửa chữa khởi động
  3. Chọn 'Sửa tệp cấu hình GRUB' (tùy chọn này không chạy update-grub)
  4. Chọn ổ đĩa / phân vùng nơi / boot nằm
  5. Khởi động lại khi nó hoàn thành.

Trong trường hợp cụ thể của tôi, 'Cài đặt lại GRUB Bootloader' đã sửa nó cho tôi .. Tôi có một thiết lập windows / linux khởi động kép. Tôi đã sử dụng Macrium 7 để tạo một bản sao của một ổ đĩa thành một tập tin. Sau đó khôi phục tập tin đó vào một ổ đĩa mới. Sau khi tôi khôi phục nó vào ổ đĩa mới, nó sẽ khởi động sang màn hình đen với con trỏ nhấp nháy ở phía trên bên trái .



-1

Cảm ơn tất cả sự giúp đỡ tuyệt vời! Tuy nhiên, cuối cùng dường như không có gì hoạt động và vì tôi có một phân vùng riêng / nhà, tôi có thể cài đặt lại Ubuntu mà không mất bất kỳ dữ liệu nào. Tôi vẫn phải cài đặt lại chương trình và thực hiện một số cấu hình, nhưng mọi thứ có vẻ tốt ở điểm này.


1
Vui mừng khi biết bạn đã giải quyết nó bằng cách nào đó, nhưng chroot nên đã làm việc, và đó, tôi xem xét giải pháp tốt nhất.
Mahesh

Đúng. Tôi không biết tại sao nó không hoạt động, nhưng câu trả lời là rất tốt (và tôi đã nâng cao nó). Các bạn đã cung cấp rất nhiều sự giúp đỡ, và có lẽ câu trả lời sẽ giúp người khác vượt qua vấn đề này.
Kelley
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.