xóa nhầm / khởi động thư mục và khởi động lại


16

Tôi đã xóa nhầm thư mục / boot khỏi hệ thống tập tin của mình, khởi động lại và tất cả những gì tôi nhận được bây giờ là đây:

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

grub rescue>


Trong trường hợp này, thư mục / boot đã bị xóa hoàn toàn. không chỉ một số tập tin từ nó, cảm ơn.
Imad Nouari

Tôi không biết bất kỳ câu trả lời nào cho câu hỏi khác là đủ để khắc phục điều này ..
Graeme

Đủ công bằng, không thực sự đọc tất cả các câu trả lời. Tôi sẽ luôn đề nghị xây dựng lại toàn bộ mọi thứ thay vì loay hoay tìm cách tìm ra những gì còn thiếu để cho rằng ai đó cũng sẽ có. Mất một nửa thời gian.
Xúc tu Cthulhu

7
Tất nhiên, sai lầm lớn hơn nhiều so với việc xóa /bootlà khởi động lại hệ thống trước khi sửa lỗi này.
Anthon

Câu trả lời:


36

Giáo sư!

Đây là những gì để làm:

  1. Khởi động một bản phân phối trực tiếp. Đây có thể là đĩa cài đặt Ubuntu của bạn hoặc một đĩa khác như Knoppix .

  2. Tìm ổ đĩa / phân vùng nơi bạn đã cài đặt hệ thống tập tin gốc của bạn. Để làm điều này, bạn có thể mở một thiết bị đầu cuối và chạy sudo parted -lhoặc sudo fdisk -l. Nếu bạn không thể nói, sau đó chỉnh sửa câu hỏi của bạn và thêm đầu ra.

  3. Giả sử rằng phân vùng gốc mà bạn tìm thấy từ bước cuối cùng là /dev/sdxy( xnên là một chữ cái khác và yphải là một số), sau đó chạy các lệnh sau trong một thiết bị đầu cuối:

    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. Bây giờ bạn sẽ ở trong một chrootmôi trường có nghĩa là chạy các lệnh ở đây tương đương với việc chạy chúng trên hệ thống đã cài đặt của bạn. Điều đầu tiên bạn muốn làm là cài đặt lại GRUB2 vào thiết bị để nó sao chép các tệp chính xác vào /bootthư mục. Để thực hiện việc này, hãy chạy như sau với ổ đĩa mà phân vùng gốc của bạn đang bật (tức là đã xóa /dev/sdxysố ( y)):

    grub-install /dev/sdx
    
  5. Bây giờ bạn muốn tìm hiểu những gói bạn đã cài đặt có tệp trong thư mục khởi động và cài đặt lại chúng. Điều này sẽ thay thế các hình ảnh hạt nhân đã bị xóa trong số những thứ khác. Lệnh để tìm các gói là:

    dpkg -S /boot
    

    Và để cài đặt lại chúng:

    apt-get --reinstall install ...
    

    Trường hợp ...được thay thế bằng tên của các gói từ lệnh đầu tiên. Không bao gồm dấu phẩy, chỉ có tên gói có dấu cách để phân tách.

    Bước này có thể sẽ yêu cầu truy cập internet (trừ khi các gói đã có trong bộ đệm), vì vậy hãy đảm bảo bạn đã kết nối nếu có vấn đề.

  6. Vì bạn sẽ xóa các hạt nhân của mình và cài đặt lại chúng, điều này sẽ tự động kích hoạt bản cập nhật GRUB2. Nhưng chỉ trong trường hợp họ không có, bạn có thể chạy:

    update-grub
    
  7. Khởi động lại và mọi thứ nên được sửa chữa. Một vấn đề mà lần trước tôi đã làm một điều tương tự là Windows cài đặt không tìm thấy update-grubkhi chạy chrootdo lỗi os-prober. Nếu đây là một vấn đề, chỉ cần chạy sudo update-grublại trong hệ thống được sửa chữa.


@Olivier, cảm ơn ban đầu tôi có /dev/sdaxở khắp mọi nơi sau đó đổi nó thành /dev/sdxy.
Graeme

Thanx cho thông tin tuyệt vời - nó đã cứu tôi, với một bổ sung. Vì tôi có RAID phần mềm, tôi cũng phải làm theo các hướng dẫn ở đây: help.ubfox.com/community/Grub2/Installing theo cài đặt lại bằng phương pháp chroot để khởi động mdadm và lắp ráp các thành viên RAID và thực hiện gắn kết phù hợp. Sau đó, sau khi chroot, cài đặt lại các gói như được mô tả trong câu trả lời này và tất cả đều ổn!
bitfiddler
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.