Cứu hộ Grub - lỗi: hệ thống tập tin không xác định


59

Tôi có một hệ thống multiboot được thiết lập. Hệ thống có ba ổ đĩa. Multiboot được cấu hình với Windows XP, Windows 7 và Ubuntu - tất cả trên ổ đĩa đầu tiên. Tôi còn rất nhiều dung lượng chưa được phân bổ trên ổ đĩa và đã đặt trước nó để thêm các hệ điều hành khác và để lưu trữ các tệp ở đó trong tương lai.

Một ngày nọ, tôi tiếp tục và tải xuống Trình hướng dẫn phân vùng và tạo một phân vùng NTFS hợp lý từ bên trong Windows 7, vẫn còn một số không gian chưa phân chia. Mọi thứ hoạt động tốt, cho đến khi tôi khởi động lại máy tính vài ngày sau đó.

Bây giờ tôi đang nhận được:

error: unknown filesystem.  
grub rescue>

Trước hết tôi rất ngạc nhiên khi không tìm thấy bất kỳ loại lệnh trợ giúp nào, bằng cách thử:

help, ?, man, --help, -h, bash, cmd,, Vv

Bây giờ tôi bị mắc kẹt với hệ thống không thể khởi động. Tôi đã bắt đầu nghiên cứu vấn đề và thấy rằng mọi người thường khuyên nên khởi động vào Live CD và khắc phục sự cố từ đó. Có cách nào để khắc phục vấn đề này từ trong cứu hộ grub mà không cần Live CD không?

CẬP NHẬT

Bằng cách làm theo các bước từ các lệnh Persist được nhập vào giải cứu GRUB , tôi có thể khởi động để nhắc initramfs. Nhưng không nơi nào xa hơn thế.

Cho đến nay, từ khi đọc hướng dẫn về cứu hộ grub , tôi đã có thể thấy các ổ đĩa và phân vùng của mình bằng lslệnh. Đối với ổ cứng đầu tiên tôi thấy như sau:
(hd0) (hd0, msdos6) (hd0, msdos5) (hd0, msdos2) (hd0, msdos1)

Bây giờ tôi biết rằng (hd0, msdos6) có chứa Linux trên đó, vì ls (hd0,msdos6)/liệt kê các thư mục. Những người khác sẽ đưa ra "lỗi: hệ thống tập tin không xác định."

CẬP NHẬT 2

Sau các lệnh sau, bây giờ tôi vào menu khởi động và có thể khởi động vào Windows 7 và Ubuntu, nhưng khi khởi động lại, tôi phải lặp lại các bước này.

ls
ls (hd0,msdos6)/
set root=(hd0,msdos6)
ls /
set prefix=(hd0,msdos6)/boot/grub
insmod /boot/grub/linux.mod
normal

CẬP NHẬT 3

Cảm ơn Shashank Singh, với hướng dẫn của bạn, tôi đã đơn giản hóa các bước của mình để sau đây. Tôi đã học được từ bạn rằng tôi có thể thay thế msdos6 chỉ bằng 6 và tôi chỉ có thể làm insmod normalthay vì insmod /boot/grub/linux.mod. Bây giờ tôi chỉ cần tìm ra cách lưu cài đặt này từ bên trong grub, mà không cần khởi động vào bất kỳ HĐH nào.

set root=(hd0,6)
set prefix=(hd0,6)/boot/grub
insmod normal
normal

CẬP NHẬT 4

Chà, có vẻ như đó là một yêu cầu để khởi động vào Linux. Sau khi khởi động vào Ubuntu, tôi đã thực hiện các bước sau được mô tả trong hướng dẫn :

sudo update-grub
sudo grub-install /dev/sda

Điều này đã không giải quyết vấn đề. Tôi vẫn nhận được nhắc nhở cứu hộ grub. Tôi cần làm gì để khắc phục vĩnh viễn?

Tôi cũng đã học được rằng các số ổ đĩa như trong hd0 cần được dịch sang các ký tự ổ đĩa như trong / dev / sda cho một số lệnh. hd1 sẽ là sdb, hd2 sẽ là sdc, v.v. Các phân vùng được liệt kê trong grub là (hd0, msdos6) sẽ được dịch thành / dev / sda6.

CẬP NHẬT 5

Tôi không thể hiểu tại sao những điều sau đây không khắc phục được grub:

sudo update-grub
sudo grub-install /dev/sda

Vì vậy, tôi đã tải xuống boot-Repair dựa trên câu trả lời từ https://help.ubfox.com/community/Boot-Repair post. Điều đó dường như thực hiện thủ thuật sau khi tôi chọn tùy chọn "Đề xuất sửa chữa (sửa chữa các sự cố thường gặp nhất)".


zdnet.com/ cũng có một số thông tin hữu ích về chủ đề này.
K7AAY

có vấn đề tương tự, nhưng trong USB trực tiếp của tôi cũng vô dụng goo.gl/Mr61V1
Ramesh

Thay đổi thứ tự khởi động, bắt đầu từ CD khôi phục Windows 7, khởi động thiết bị đầu cuối, gõ "Bootrec.exe / FixMbr" (không có dấu ngoặc kép) và khởi động lại đã khắc phục sự cố của tôi.
consuela

Trong update3 trước đây làm việc cho tôi, nhưng bây giờ vấn đề tương tự. Không hoạt động ngay cả tôi đã thử với các thư mục được liệt kê trong cứu hộ grub. Tôi đã cố gắng sao lưu dữ liệu bằng cách sử dụng thiết bị ISO ubfox, ubfox hiện có không được liệt kê ra. Giúp tôi làm gì bây giờ?
Jaccs

Đây có vẻ là câu hỏi kinh điển, nhưng một câu hỏi thậm chí cũ hơn là hệ thống tệp không xác định: cứu hộ grub .
Peter Mortensen

Câu trả lời:


25

Tôi không thể hiểu tại sao những điều sau đây không khắc phục được grub:

sudo update-grub
sudo grub-install /dev/sda

Vì vậy, tôi đã tải xuống sửa chữa khởi động dựa trên câu trả lời từ các lệnh Persist được nhập vào bài giải cứu GRUB . Điều đó dường như thực hiện thủ thuật sau khi tôi chọn tùy chọn "Đề xuất sửa chữa (sửa chữa các sự cố thường gặp nhất)".

Tôi cũng đã sử dụng Grub Customizer để tùy chỉnh thứ tự các mục khởi động.


Nó không hoạt động bởi vì, sau khi chạy lệnh cuối cùng, bạn sẽ cần chạy lại sudo update-grub. Trong phiên trực tiếp, bạn sẽ cần gắn hệ thống tệp đích vào mnt, chroot vào hệ thống tệp và sau đó bạn sẽ cần chạy sudo update-grub từ chroot.
mchid

Sử dụng thông tin từ câu trả lời này (cài đặt và sử dụng sửa chữa khởi động) và từ câu hỏi, nó đã hoạt động để khôi phục trên netbook Acer nơi tôi đã chọn một mục sai trong menu GRUB, "Windows Recovery Môi trường (trình tải) (bật /dev/sda1)" , trong thời gian khởi động.
Peter Mortensen

7

Có một nguyên nhân thay thế của vấn đề này. Trong trường hợp cụ thể này, GRUB bằng cách nào đó đã bị hỏng và cần được sửa chữa hoặc cài đặt lại. Tuy nhiên, như thể hiện trong cứu hộ Grub không thành công với "Boot Repair" với lỗi "hệ thống tệp không xác định" , cũng có thể phân vùng gốc mà GRUB được cài đặt có thể bị hỏng. Để khắc phục điều này:

Đây là một giải pháp khả thi, nhưng không nên sử dụng nó vì sợ phân vùng gốc của bạn bị hỏng thêm. Chạy lệnh fsck -t ext4 /dev/sda1, chương trình này cố gắng tìm kiếm và sửa lỗi trên hệ thống tệp bị hỏng. Thay thế sda1 với phân vùng gốc thực sự của bạn. Thay thế ext4 bằng hệ thống tập tin thực tế; bạn phải biết hệ thống tập tin nếu không phân vùng sẽ bị hỏng nhiều hơn. Xem Sửa chữa một hệ thống tập tin bị hỏng để biết thêm thông tin.


Mặc dù câu hỏi này có câu trả lời, có một cách khác để khắc phục vấn đề hiệu quả với tôi. Các bước được giải thích trong video đau đớn Grub Cứu hộ - Hướng dẫn cho người mới bắt đầu . Nói tóm lại, nó sẽ cài đặt lại GRUB 2 hoàn toàn thay vì sửa chữa nó.

Vì video này rất đau khi xem, tôi sẽ liệt kê các bước bên dưới (vì tôi nên xem video đó có đau đến mức nào)

  1. Khởi chạy một phiên trực tiếp của Ubuntu. Video sử dụng CD trực tiếp trong khi tôi sử dụng USB trực tiếp. Tôi chắc chắn rằng USB trực tiếp có cùng phiên bản Ubuntu mà tôi có trên ổ cứng.
  2. Tìm nơi phân vùng gốc của bạn được gắn kết. Trong video, người dùng sử dụng Nautilus để điều hướng qua từng ổ đĩa được gắn. Nó được gắn với một chuỗi dài các số và ký tự. Nếu đây là trường hợp, hãy làm theo các bước sau để kể lại phân vùng. Khác, tiến hành bước 5.
  3. Đưa thiết bị đầu cuối với Ctrl+ Alt+ Tvà sử dụng mountlệnh để tìm tên của phân vùng.
  4. Gắn kết phân vùng. Tạo một thư mục mới trong thư mục phương tiện của bạn. sudo mkdir /media/ubuntu. Sau đó, chỉ cần gắn phân vùng của bạn vào thư mục đó. sudo mount /dev/sdxx /media/ubuntunơi xxcủa sdxxđược xác định trong bước 3.
  5. Liên kết các thư mục sau từ thư mục gốc của CD / USB trực tiếp đến thư mục gốc trên phiên bản Ubuntu của bạn. Các thư mục là dev procsys. Làm như vậy với các lệnh sau:

    sudo mount --bind /dev /media/ubuntu/dev
    sudo mount --bind /sys /media/ubuntu/sys
    sudo mount --bind /proc /media/ubuntu/proc
    
  6. Thay đổi thư mục gốc thành thư mục trên phân vùng Ubuntu của bạn. sudo chroot /media/ubuntu/

  7. Thực hiện như trên, cài đặt lại GRUB 2 sẽ cài đặt nó vào thư mục gốc của bản phân phối Ubuntu của bạn chứ không phải của CD / USB trực tiếp. Vì vậy, đi trước và chạysudo grub-install /dev/sdx

Và đó là cách sửa GRUB bằng CD / USB trực tiếp. Phương pháp này được phát triển bởi crazyTechzone người dùng YouTube.


6

Sử dụng:

  1. set prefix=(hdX,Y)/boot/grub. Sử dụng các giá trị được xác định trước đó.
    Ví dụ: Nếu hệ thống Ubuntu trên sda5, hãy nhập:
    set prefix=(hd0,5)/boot/grub
  2. set root=(hdX,Y). Thí dụ:set root=(hd0,5)
  3. insmod normal. Cố gắng tải các mô-đun bình thường.
  4. normal

Về cơ bản chúng ta cần GRUB để biết /boot/grubthư mục ở đâu . Nếu điều này không hiệu quả, tôi đoán thực hiện cài đặt GRUB từ đĩa CD khởi động là một lựa chọn tốt.


Cảm ơn sự giúp đỡ của bạn. Tôi nghĩ vấn đề của tôi có thể là thư mục khởi động của tôi là trên / dev / sdb, không phải / dev / sda. Nhưng boot-Repair đã tự động sửa nó, vì vậy tôi không phải làm gì thêm.
dùng53817

3

Thật buồn cười, tôi cũng gặp vấn đề tương tự một giờ trước!

Dù sao, đây là những gì tôi đã làm.

  1. Tải Ubuntu:

    set root=(hd0,6)
    set prefix=(hd0,6)/boot/grub
    insmod normal
    normal
    

    Kể từ khi Ubuntu của bạn được cài đặt trong 6 phải không?

  2. chạy thiết bị đầu cuối:

    sudo -i *to access root*
    grub-install --root-directory=/mnt/ /dev/sda
    sudo update-grub
    sudo grub-install /dev/sda
    

Cảm ơn câu trả lời của bạn, nhưng tôi đã sửa lỗi bằng cách sử dụng công cụ sửa chữa khởi động trước khi bạn đăng câu trả lời. Bây giờ tôi đã cập nhật bài viết này với giải pháp của tôi. Tôi ước tôi có thể đã thử phương pháp của bạn là tốt.
dùng53817

2

Cài đặt Boot-Repair trong Ubuntu

  1. Khởi động máy tính của bạn trên Ubuntu live-CD hoặc USB trực tiếp.

  2. Chọn "Dùng thử Ubuntu"

  3. Kết nối internet

  4. Mở Terminal mới ( Ctrl+ Alt+ T), sau đó gõ:

    sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
    
  5. Nhấn Enter.

  6. Sau đó gõ:

    sudo apt-get install -y boot-repair && boot-repair
    
  7. Nhấn Enter.

Sử dụng Boot-Repair

nhập mô tả hình ảnh ở đây

Đề nghị sửa chữa

  1. Khởi động Boot-Repair từ một trong hai:

    a. Dấu gạch ngang (logo Ubuntu ở phía trên bên trái màn hình)

    b. Hoặc Hệ thống-> Quản trị-> Menu Khởi động-Sửa chữa (chỉ dành cho Ubuntu 10.04)

    c. Hoặc bằng cách gõ 'boot-Repair' trong một thiết bị đầu cuối

  2. Sau đó nhấp vào nút "Đề nghị sửa chữa". Khi quá trình sửa chữa kết thúc, hãy lưu ý URL (paste.ubfox.com/XXXXX) xuất hiện trên một tờ giấy, sau đó khởi động lại và kiểm tra xem bạn đã phục hồi quyền truy cập vào HĐH của mình chưa.

  3. Nếu việc sửa chữa không thành công, hãy chỉ ra URL cho những người giúp bạn qua email hoặc diễn đàn.


@penreturn Cảm ơn bạn rất nhiều, điều này làm việc tuyệt vời. : D
Jeel Shah

0

Một nguyên nhân khác của vấn đề là hệ thống tập tin trên ổ đĩa khởi động có thể bị sập trong những trường hợp hiếm hoi. Như đã đề cập trong các câu trả lời khác, ban đầu tôi sử dụng lslệnh để liệt kê tất cả các ổ đĩa / phân vùng trong lời nhắc cứu GRUB, nhưng tất cả đều báo cáo lỗi hệ thống tệp không xác định . Cuối cùng tôi đã khắc phục sự cố trên Ubuntu 16.04 (Xenial Xerus) bằng cách khôi phục hệ thống tệp như sau:

  1. Khởi động từ thanh USB (thử Ubuntu mà không cần cài đặt)

  2. Tìm ổ đĩa khởi động (kiểm tra dung lượng ổ đĩa hoặc thực hiện fscktrên từng phân vùng):

    sudo fdisk -l
    
  3. Khôi phục hệ thống tập tin:

    sudo fsck /dev/sdb1
    
  4. Sau khi hệ thống tập tin được sửa chữa và dọn dẹp, hãy khởi động lại máy từ ổ đĩa khởi động.

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.