Uratowanie gruba - błąd: nieznany system plików

59

Mam skonfigurowany system multiboot. System ma trzy dyski. Multiboot jest skonfigurowany z Windows XP, Windows 7 i Ubuntu - wszystko na pierwszym dysku. Na dysku pozostało mi dużo niepartycjonowanego miejsca i rezerwowałem je na dodawanie innych systemów operacyjnych i przechowywanie tam plików w przyszłości.

Pewnego dnia poszedłem naprzód i pobrałem Kreatora partycji i utworzyłem logiczną partycję NTFS z poziomu Windows 7, wciąż pozostawiając trochę niepartycjonowanego miejsca. Wszystko działało dobrze, dopóki kilka dni później nie uruchomiłem ponownie komputera.

Teraz dostaję:

error: unknown filesystem.  
grub rescue>

Przede wszystkim byłem zaskoczony, że nie znalazłem żadnego polecenia pomocy, próbując:

help, ?, man, --help, -h, bash, cmd, Itd.

Teraz utknąłem z systemem innym niż bootowalny. Zacząłem badać problem i stwierdziłem, że ludzie zwykle zalecają uruchomienie z Live CD i stamtąd naprawiają problem. Czy istnieje sposób, aby rozwiązać ten problem z poziomu programu ratującego grub bez konieczności Live CD?

AKTUALIZACJA

Wykonując kroki z poleceń Persist wpisanych do ratowania GRUB , mogłem uruchomić system z poleceniem initramfs. Ale nigdzie dalej.

Do tej pory nie czytałem instrukcji na temat ratowania gruba , mogłem zobaczyć moje dyski i partycje za pomocą lspolecenia. W przypadku pierwszego dysku twardego widzę:
(hd0) (hd0, msdos6) (hd0, msdos5) (hd0, msdos2) (hd0, msdos1)

Wiem teraz, że (hd0, msdos6) zawiera na nim Linuksa, ponieważ ls (hd0,msdos6)/zawiera listę katalogów. Inni podadzą „błąd: nieznany system plików”.

AKTUALIZACJA 2

Po następujących poleceniach przechodzę teraz do menu rozruchu i mogę uruchomić system Windows 7 i Ubuntu, ale po ponownym uruchomieniu muszę powtórzyć te kroki.

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

AKTUALIZACJA 3

Dzięki Shashank Singh, dzięki waszym instrukcjom uprościłem moje kroki do następujących. Nauczyłem się od ciebie, że mogę zastąpić msdos6 tylko 6 i że mogę to zrobić insmod normalzamiast insmod /boot/grub/linux.mod. Teraz muszę tylko wymyślić, jak zapisać te ustawienia z poziomu samego gruba, bez uruchamiania systemu operacyjnego.

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

AKTUALIZACJA 4

Wygląda na to, że jest to wymagane do rozruchu w systemie Linux. Po uruchomieniu systemu Ubuntu wykonałem następujące kroki opisane w instrukcji :

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

To nie rozwiązało problemu. Nadal pojawia się komunikat ratowania gruba. Co muszę zrobić, aby to naprawić na stałe?

Dowiedziałem się również, że numery napędów jak w hd0 muszą być tłumaczone na litery napędów jak w / dev / sda dla niektórych poleceń. hd1 to sdb, hd2 to sdc i tak dalej. Partycje wymienione w grub jako (hd0, msdos6) zostaną przetłumaczone na / dev / sda6.

AKTUALIZACJA 5

Nie mogłem zrozumieć, dlaczego następujące czynności nie naprawiły grub:

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

Więc pobrałem naprawę rozruchu na podstawie odpowiedzi z https://help.ubuntu.com/community/Boot-Repair postu. Wydawało się, że to załatwia sprawę po wybraniu opcji „Zalecana naprawa (naprawia najczęściej występujące problemy)”.

użytkownik53817
źródło
Zdnet.com/... zawiera również przydatne informacje na ten temat.
K7AAY
mam podobny problem, ale w moim Live USB jest również bezużyteczne. goo.gl/Mr61V1
Ramesh
Zmiana kolejności rozruchu, zaczynając od dysku CD odzyskiwania systemu Windows 7, uruchamiając terminal, wpisując „Bootrec.exe / FixMbr” (bez cudzysłowów) i ponownie uruchamiając system naprawił mój problem.
Consuela
W poprzedniej aktualizacji3 działał dla mnie, ale teraz ten sam problem. Nie działa, nawet próbowałem z wymienionych folderów w trybie ratowania grub. Próbowałem wykonać kopię zapasową danych przy użyciu urządzenia ISO ubuntu, istniejącego ubuntu nie wymieniono. Pomóż mi, co powinienem teraz zrobić?
Jaccs
To wydaje się być pytaniem kanonicznym, ale jeszcze starsze pytanie to Nieznany system plików: grub rat .
Peter Mortensen

Odpowiedzi:

25

Nie mogłem zrozumieć, dlaczego następujące czynności nie naprawiły grub:

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

Pobrałem więc naprawę rozruchu na podstawie odpowiedzi z komend Persist wpisanych na postu ratunkowym GRUB . Wydawało się, że to załatwia sprawę po wybraniu opcji „Zalecana naprawa (naprawia najczęściej występujące problemy)”.

Użyłem również Grub Customizer, aby dostosować kolejność wpisów rozruchowych.

użytkownik53817
źródło
Nie działało, ponieważ po uruchomieniu ostatniego polecenia trzeba ponownie uruchomić sudo update-grub. Podczas sesji na żywo musisz zamontować docelowy system plików na mnt, chroot w systemie plików, a następnie musisz uruchomić sudo update-grub z chroota.
mchid
Korzystając z informacji zawartych w tej odpowiedzi (instalacja i korzystanie z naprawy rozruchu) oraz z pytania, działało to w przypadku odzyskiwania na netbooku Acer, gdzie wybrałem niewłaściwy element w menu GRUB, „Środowisko odzyskiwania systemu Windows (moduł ładujący) (włączony /dev/sda1)” podczas rozruchu.
Peter Mortensen
7

Istnieje alternatywna przyczyna tego problemu. W tym konkretnym przypadku GRUB był w jakiś sposób uszkodzony i wymagał naprawy lub ponownej instalacji. Jednak, jak pokazano w Gracie Rescue nie powiodło się z „Boot Repair” z błędem „nieznany system plików” , możliwe jest również, że partycja główna, na której zainstalowany jest GRUB, może zostać uszkodzona. Aby to naprawić:

Jest to możliwe rozwiązanie, ale nie powinno się go używać, aby uniknąć dalszego uszkodzenia partycji root. Po uruchomieniu polecenia fsck -t ext4 /dev/sda1program próbuje wyszukać i naprawić błędy w uszkodzonym systemie plików. Zastąp sda1 rzeczywistą partycją root. Zamień ext4 na rzeczywisty system plików; musisz znać system plików, w przeciwnym razie partycja będzie bardziej uszkodzona. Aby uzyskać więcej informacji, zobacz Naprawianie uszkodzonego systemu plików .


Mimo że to pytanie ma odpowiedź, istnieje alternatywny sposób rozwiązania problemu, który zadziałał dla mnie. Kroki opisano w bolesnym wideo Grub Rescue - przewodnik dla początkujących . Krótko mówiąc, całkowicie ponownie zainstaluje GRUB 2 zamiast go naprawić.

Ponieważ oglądanie tego filmu jest tak bolesne, wymienię poniższe kroki (tak jak powinienem, bez względu na to, jak bolesne jest oglądanie filmu)

  1. Uruchom sesję Ubuntu na żywo. Wideo korzysta z płyty CD na żywo, a ja korzystałem z USB na żywo. Upewniłem się, że USB na żywo ma tę samą wersję Ubuntu, co na moim dysku twardym.
  2. Znajdź, gdzie zamontowano partycję root. W filmie użytkownik używa Nautilus do poruszania się po każdym zamontowanym napędzie. Został zamontowany z długim ciągiem cyfr i znaków. W takim przypadku wykonaj następujące czynności, aby ponownie zainstalować partycję. W przeciwnym razie przejdź do kroku 5.
  3. Wyświetl terminal za pomocą Ctrl+ Alt+ Ti użyj mountpolecenia, aby znaleźć nazwę partycji.
  4. Zamontuj partycję. Utwórz nowy folder w folderze multimediów. sudo mkdir /media/ubuntu. Następnie po prostu zamontuj partycję w tym folderze. sudo mount /dev/sdxx /media/ubuntugdzie xxo sdxxjest określone w etapie 3.
  5. Powiąż następujące katalogi z katalogu głównego na żywo CD / USB do katalogu głównego w twojej wersji Ubuntu. Katalogi to dev proci sys. Zrób to za pomocą następujących poleceń:

    sudo mount --bind /dev /media/ubuntu/dev
    sudo mount --bind /sys /media/ubuntu/sys
    sudo mount --bind /proc /media/ubuntu/proc
    
  6. Zmień katalog główny na katalog na partycji Ubuntu. sudo chroot /media/ubuntu/

  7. Po wykonaniu powyższych czynności, ponowna instalacja GRUB 2 spowoduje zainstalowanie go w katalogu głównym twojej dystrybucji Ubuntu, a nie w Live CD / USB. Więc śmiało i biegnijsudo grub-install /dev/sdx

I w ten sposób naprawiasz GRUB-a za pomocą Live CD / USB. Ta metoda została opracowana przez użytkownika YouTube Crazytechzone.

Zero
źródło
6

Posługiwać się:

  1. set prefix=(hdX,Y)/boot/grub. Użyj wcześniej ustalonych wartości.
    Przykład: jeśli system Ubuntu jest na sda5, wprowadź:
    set prefix=(hd0,5)/boot/grub
  2. set root=(hdX,Y). Przykład:set root=(hd0,5)
  3. insmod normal. Spróbuj załadować normalny moduł.
  4. normal

Zasadniczo potrzebujemy GRUB, aby wiedzieć, gdzie /boot/grubjest folder. Jeśli to nie działa, wydaje się, że dobrym pomysłem jest instalacja GRUB-a z płyty rozruchowej.

Shashank Singh
źródło
Dziękuję za Twoją pomoc. Myślę, że moim problemem może być to, że mój katalog rozruchowy znajduje się w katalogu / dev / sdb, a nie / dev / sda. Ale naprawa rozruchu naprawiła to automatycznie, więc nie musiałem nic więcej robić.
user53817,
3

Zabawne, miałem ten sam problem godzinę temu!

W każdym razie to właśnie zrobiłem.

  1. Załaduj ubuntu:

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

    skoro twoje Ubuntu jest zainstalowane w wersji 6, prawda?

  2. uruchomić terminal:

    sudo -i *to access root*
    grub-install --root-directory=/mnt/ /dev/sda
    sudo update-grub
    sudo grub-install /dev/sda
    
Francis
źródło
Dziękuję za odpowiedź, ale zanim opublikowałem odpowiedź, naprawiłem gruba za pomocą narzędzia do naprawy rozruchu. Zaktualizowałem ten post swoim rozwiązaniem. Chciałbym również wypróbować twoją metodę.
user53817,
2

Zainstaluj Boot-Repair w Ubuntu

  1. Uruchom komputer na Ubuntu Live-CD lub Live-USB.

  2. Wybierz „Wypróbuj Ubuntu”

  3. Połącz z Internetem

  4. Otwórz nowy terminal ( Ctrl+ Alt+ T), a następnie wpisz:

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

  6. Następnie wpisz:

    sudo apt-get install -y boot-repair && boot-repair
    
  7. Prasa Enter.

Korzystanie z naprawy rozruchu

wprowadź opis zdjęcia tutaj

Zalecana naprawa

  1. Uruchom Boot-Repair z:

    za. Dash (logo Ubuntu w lewym górnym rogu ekranu)

    b. Lub System-> Administracja-> Menu Boot-Repair (tylko Ubuntu 10.04)

    do. Lub wpisując „boot-repair” w terminalu

  2. Następnie kliknij przycisk „Zalecana naprawa”. Po zakończeniu naprawy zanotuj adres URL (paste.ubuntu.com/XXXXX), który pojawił się na papierze, a następnie uruchom ponownie i sprawdź, czy odzyskałeś dostęp do swoich systemów operacyjnych.

  3. Jeśli naprawa się nie powiodła, podaj adres URL osobom, które pomogą Ci przez e-mail lub forum.

penreturns
źródło
@penreturn Dziękuję bardzo, to działało wspaniale. : D
Jeel Shah,
0

Inną przyczyną tego problemu jest awaria systemu plików na dysku rozruchowym w rzadkich przypadkach. Jak wspomniano w innych odpowiedziach, początkowo używam lspolecenia, aby wyświetlić listę wszystkich dysków / partycji w wierszu ratunkowym GRUB, ale wszystkie zgłaszają nieznany błąd systemu plików . W końcu naprawiłem problem na Ubuntu 16.04 (Xenial Xerus), odzyskując system plików w następujący sposób:

  1. Uruchom z pamięci USB (wypróbuj Ubuntu bez instalacji)

  2. Znajdź dysk rozruchowy (sprawdź pojemność dysku lub wykonaj czynności fsckna każdej partycji):

    sudo fdisk -l
    
  3. Odzyskaj system plików:

    sudo fsck /dev/sdb1
    
  4. Po naprawieniu i wyczyszczeniu systemu plików uruchom ponownie komputer z napędu rozruchowego.

użytkownik84246
źródło