Khôi phục các tệp .mod đã di chuyển bằng cách sử dụng grubresTHER


33

Tôi đã làm một việc ngớ ngẩn ... Tôi quên rằng Ubuntu 10.04 (Lucid Lynx) đã chuyển sang GRUB  2, nơi chứa rất nhiều tệp * .mod (mô-đun hạt nhân) /boot/grub. Tôi nghĩ rằng chúng là các tập tin nhạc phim được đặt ở đó một cách sai lầm, và tôi đã di chuyển chúng. Không cần phải nói, lần khởi động lại tiếp theo là chấn thương. Tôi đã được trình bày với một cái gì đó mà tôi không có ký ức về việc từng thấy ... một dấu nhắc 'cứu hộ>'.

Tuy nhiên, với sự trợ giúp của Sửa lỗi GRUB: Lỗi lỗi: hệ thống tập tin không xác định , tuy nhiên, tôi đã có thể khôi phục ...

  • Tôi phát hiện ra rằng giải cứu GRUB không có 'cd', 'cp' hoặc bất kỳ lệnh hệ thống tập tin nào khác ngoại trừ biến thể 'ls' của chính nó.
  • Vì vậy, trước tiên tôi phải tìm phân vùng có /bootthư mục chứa vmlinuztệp và các tệp ảnh khởi động khác ... (xấp xỉ từ bộ nhớ của các lần thử không thành công, cũng như các dòng trống cho rõ ràng, được thêm vào 2014-07-10 bởi 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 
    
  • Tôi tìm thấy một /bootthư mục chứa các vmlinuztập tin vmlinuz-2.6.32-33-generictrên phân vùng (hd0,2).

  • Sau đó, tôi tự khởi động từ dấu nhắc 'grub cứu hộ' '. Các lệnh sau sẽ ...

    • Đặt rootđể sử dụng /bootthư mục trên phân vùng (hd0,2).
    • Tải mô-đun hạt nhân linux.
    • Đặt mô-đun đó để sử dụng hình ảnh hạt nhân vmlinuz-2.6.32-33-generic.
    • Đặt initrd (khởi tạo đĩa RAM) để sử dụng hình ảnh initrd.img-2.6.32-33-generic.
    • Khởi động 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  
    
  • Điều này khởi động và gặp sự cố với dấu nhắc BusyBox mà DOES có một số lệnh hệ thống tập tin thô sơ.

  • Sau đó, tôi di chuyển các tệp * .mod trở lại /boot/grubthư mục ...

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • Việc khởi động lại đã thành công, nhưng đó là rất nhiều công việc.

Có cách nào dễ hơn không?


1
Boot-Repair sẽ dễ dàng hơn, theo ý kiến ​​của tôi. Kiểm tra một trong nhiều câu trả lời của tôi trên Boot-Repair để biết chi tiết về cách sử dụng nó.
SirCharlo

1
Cách "dễ nhất" không phải lúc nào cũng là cách tốt nhất. Tôi hoàn toàn không đồng ý với tất cả các ý kiến ​​đề xuất sử dụng Live CD; Thật sự rất khó để khởi động từ Live CD trên các hệ thống không có đầu đọc CD / DVD.
Simón

ican không định vị phân vùng với thư mục / boot. Tất cả các phân vùng theo lệnh ls cung cấp đầu ra hệ thống tập tin không xác định.
Nole

1
Bài đăng của bạn rất hữu ích để tự khởi động kernel và initrd, nhưng hệ thống của tôi không thể tìm thấy dev, sys hoặc Proc, v.v / fstab hoặc sbin / init. Điều đó đã dẫn tôi đến một bài , trong đó đề nghị tải hạt nhân và thiết lập gốc như chi tiết trong các hướng dẫn khởi động thủ công trong tài liệu hướng dẫn grub , ví dụ như: grub> linux (hd0,X)/boot/vmlinuz-a.b.c-d-generic root=/dev/sdaX , nơi Xlà phân vùng với /boot, a.b.c-dlà phiên bản hạt nhân. Sau đó, hệ thống của tôi khởi động tốt! Cảm ơn!
Đánh dấu Mikofski

1
ngoài [Sửa lỗi GRUB: “lỗi: hệ thống tập tin không rõ” [sao]] ( askubuntu.com/q/142300/36961 ) một liên kết tuyệt vời mà bìa các bước sau là Làm thế nào để giải cứu một phi khởi động GRUB 2 trên Linux , các Hướng dẫn sử dụng grub 2 cũng rất hữu ích
Mark Mikofski

Câu trả lời:


5

Không. Tôi nghĩ rằng bạn đã tìm thấy cách dễ nhất để phục hồi từ trạng thái hệ thống của mình bằng cách sử dụng cứu hộ grub ; nó là một hệ thống rất tối giản, cho khả năng khởi động hệ thống vừa đủ.

BTW, tôi tin rằng bạn phải tìm thấy các .modtệp và thực thi insmod linuxhoặc linuxlệnh sẽ thất bại.

Cách khác, như đã đề cập, là khởi động Live CD và cài đặt lại grub2 sau khi chroot'ing vào hệ thống 'bị hỏng'.


Bạn hoàn toàn đúng! Tôi quên rằng tôi đã làm điều đó. Đã thêm vào bài viết gốc của tôi ở trên để tham khảo trong tương lai. Tôi cần phải kỷ luật hơn trong việc ghi chép cẩn thận trong những tình huống này. Xin tư vấn nếu cần chỉnh sửa thêm.
DocSalvager

Tôi cũng đã phải chỉ định root khi tải kernel như trong các tài liệu grub, ví dụ: grub> linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2
Mark Mikofski

Cũng lưu ý, nếu bạn đã tìm thấy các tệp .mod, bạn có thể khôi phục „grub cứu hộ thành GRUB đầy đủ tính năng: # 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 Nguồn: gnu.org/software/grub/manual/html_node/ trộm
MegaBrutal

7

Dưới đây là một số hướng dẫn chung và cơ bản để giúp khắc phục các lỗi khởi động, chẳng hạn như GRUB loading stage 1.5 error 15 (ví dụ sau khi cài đặt Windows trên các ổ đĩa khác nhau):

  1. Khởi động với LiveDVD (ví dụ: đĩa Ubuntu Desktop).

  2. Mở một thiết bị đầu cuối và viết lại cấu hình grub bằng các lệnh sau:

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

Trong trường hợp /dev/sdXlà đĩa mà Ubuntu được cài đặt, và /dev/sdXYlà phân vùng trên đĩa nơi Ubuntu được cài đặt. Nói cách khác, /dev/sdXYchứa /bootvà như vậy.

Sử dụng fdisk -lđể xác minh vị trí cài đặt Ubuntu.


Đã không làm việc. Có lẽ nếu các hướng cụ thể hơn, nó sẽ làm việc.
Tim Stewart

Khi tôi gặp sự cố grub2 trên máy không có ổ đĩa cd, tôi đã có thể khôi phục bằng cách sử dụng ổ đĩa nhớ USB Gparted Live. Tôi đã khởi động vào Gparted trực tiếp. THÌ Tôi đã khởi động một thiết bị đầu cuối và gõ fdisk -l (đó là chữ ell, không phải số 1) Đầu ra từ đó cho phép tôi xác định phân vùng có phân vùng gốc và từ đó tôi làm theo các hướng dẫn tuyệt vời ở trên và tôi đã nhanh chóng khởi động lại lần nữa .
Vic

4
  1. Khởi động vào Live CD

  2. Thiết bị đầu cuối mở (CTRL + ALT + T)

  3. Nhập các lệnh sau:

sudo fdisk -l

Và tìm phân vùng Ubuntu của bạn (nên là / dev / sda1 nếu đó là phân vùng đầu tiên)

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

Bây giờ cài đặt lại Grub2

sudo apt-get install --reinstall grub2

2
Đây có phải là một cách tốt hơn tốt hơn sudo mount /dev/sda1 /mntsudo grub-install --root-directory=/mnt/ /dev/sda && sudo update-grub?

4

Tôi đã có cùng một vấn đề khi tôi nâng cấp hệ thống của tôi.

Tôi đề nghị các bước đơn giản sau:

  1. Khởi động hệ thống của bạn với CD trực tiếp Ubuntu hoặc USB trực tiếp.
  2. Mở terminal và chạy lệnh sudo add-apt-repository ppa: yannubfox / boot-Repair && sudo apt-get update
  3. Sau đó cài đặt sửa chữa khởi động bằng cách chạy lệnh sudo apt-get install -y boot-Repair && boot-Repair

  4. Khởi động sửa chữa khởi động sau khi cài đặt. Ví dụ: từ menu, hãy sử dụng System->Administration->Boot-Repair (chỉ Ubuntu 10.04) và làm theo hướng dẫn.

    Có thể mất 15-20 phút để tìm ra vấn đề và khắc phục nó.

Để được trợ giúp thêm, hãy truy cập liên kết https://help.ubfox.com/community/Boot-Repair


0

Bạn có thể khởi động CD trực tiếp, gắn ổ cứng, mở nautilus dưới quyền root và sao chép các tệp đó vào / boot.

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.