error: file '/grub/i386-pc/normal.mod' not found.
grub rescue>
Co mogę zrobić? Po prostu siedzę i patrzę na to.
Znalazłem mojego starego netbooka (Dell Inspiron 1010), z którego nie korzystałem przez około cztery lata. Zastąpiłem Windows XP Ubuntu 12.10. Użyłem rozruchowego napędu USB. Zainstalowałem i uruchomiłem ponownie. Mam wiadomość, której normal.mod
nie znaleziono.
Co powinienem zrobić? Typ exit
, reboot
albo quit
? Czy powinienem ponownie zainstalować?
use your windows partition as your primary boot device
. Ten ostatni krok jest niezbędny. NIE UŻYWAJ / bootuj. Może być inne rozwiązanie: spróbuj ręcznie zmienić urządzenie rozruchowe podczas uruchamiania; nie sądzę jednak, żeby to zadziałało. Jest to od dawna problem utrzymujący się w Ubuntu do wersji 17.10 włącznie. Dziękuję Ci.Odpowiedzi:
Grub ma mały obraz rdzenia, który jest ładowany podczas uruchamiania. Obraz rdzenia dynamicznie ładuje moduły, które zapewniają dalszą funkcjonalność.
i386-pc/normal.mod not found
wskazuje, że grub nie może załadować normal.mod , który jest modułem grub, który udostępnia normalne polecenie . Aby załadować normal.mod , musisz powiedzieć grub, gdzie to jest. Aby to zrobić, możesz użyć wiersza polecenia grub (zwanego także konsolą ratunkową). Grub uruchomi wiersz poleceń, jeśli wystąpi problem z uruchomieniem, lub możesz uruchomić go ręcznie, przytrzymując klawisz Shift podczas uruchamiania grub (aby wymusić pokazanie menu grub), a następnie naciskając klawisz „c”.Za pomocą gruba możesz eksplorować dyski, partycje i systemy plików. Musisz:
Przykład
Poniższy przykład jest tylko przykładem. Będziesz musiał dostosować go do lokalnego dysku i konfiguracji partycji.
gdzie jest normal.mod? spójrz w niektóre prawdopodobne lokalizacje
Jeśli się pojawi,
"Unknown command 'search.file'"
oznacza to, że polecenie search.file nie jest dostępne. Wynika to prawdopodobnie z tego, że maszgrub rescue>
monit, a niegrub>
monit. W takim przypadku możesz nadal korzystać zls
polecenia i swojej znajomości układu partycji, aby znaleźćnormal.mod
.znalazłem w (hd0, msdos1)
dlaczego grub nie znalazł tego?
sprawdź $ prefix - bezwzględna lokalizacja katalogu grub
(ta opcja jest ustawiana, gdy grub jest instalowany przez grub-install)
sprawdź $ root - domyślne urządzenie dla ścieżek, które nie zawierają
gruba urządzenia początkowo ustawia to urządzenie na prefiks $
root i prefiks wskazują na niewłaściwą partycję (hd0, msdos2)
ustaw $ root i $ prefix na partycję, na której znaleźliśmy normal.mod (hd0, msdos1)
załaduj i uruchom normalny moduł
Niektóre inne polecenia, które mogą być pomocne
Lista wszystkich urządzeń i partycji
partycja ls
system plików ls (uwaga / na końcu)
zajrzyj do katalogu / boot / grub
obecność katalogu i386-pc oznacza, że jest to
obecność BIOS -u w katalogu x86_64-efi wskazuje na instalację EFI
search
lubsearch.file
nie zostaną rozpoznane$prefix
poprawnie ustawione, a następnie wykonajinsmod search
, dols
zrobieniainsmod ls
itd. Uruchomfind /boot/grub -name *.mod
działającą instalację systemu Linux, aby zobaczyć wszystkie dynamicznie ładowane moduły Grub.źródło
sudo grub-install /dev/sdX
aby zainstalować swój grub. Myślę, że instalacja LVM w jakiś sposób myli mój grub.Rozwiązałem to na maszynie dziś po południu. Wydaje się, że jedną z przyczyn tego problemu jest to, że instalator myśli, że masz bezpieczny rozruch EFI, a nie ładujesz niepoprawnych plików GRUB.
Co musisz zrobić, to zainstalować GRUB 2. Aby to zrobić, musisz uruchomić system z instancji Live, zamontować partycję root i zainstalować.
Z instancji na żywo znajdź partycję, na której załadowana jest twoja partycja główna. GParted powie ci to, lub możesz użyć
Przejdź na partycję, na której jest zainstalowany Ubuntu.
Po utworzeniu partycji musisz ją zamontować. Zakładając, że partycja root znajduje się na / dev / sda5, byłoby to:
Następnie zainstaluj GRUB 2
sudo grub-install /dev/sda --root-directory=/mnt
[użyj tego do skopiowania i wklejenia, ponieważ jest kilka spacji, które musisz poprawić.]Zakładając, że to twój problem, powinieneś być w stanie ponownie uruchomić komputer i wszystko będzie działać poprawnie.
Oryginalne rozwiązanie tego problemu pochodziło stąd: http://ubuntujournal.blogspot.com/2012/11/fix-new-install-of-ubuntu-1210-wont-boot.html
źródło
Nie znalazłem tych informacji na forach, więc chcę się nimi podzielić, mimo że to pytanie zostało zadane dawno temu:
Jeśli masz dużą partycję (np. 1 TB) z zainstalowanym Ubuntu i nie przydzieliłeś dodatkowej partycji dla / boot /, może to być przyczyną takich błędów. Podczas uruchamiania GRUB używa sterownika biosdisk do odczytu normalnych sterowników z katalogu / boot / grub /. Czasami ten katalog może znajdować się fizycznie na dysku twardym gdzieś po maksimum obsługiwanym przez sektor biosdisk. Problem może pojawić się na przykład po aktualizacji systemu. Ponadto zawsze mam do czynienia z tym problemem po nowej instalacji Ubuntu 13.10, ale może się różnić, ponieważ zależy to od płyty głównej / BIOS-u.
Możesz sprawdzić, czy korzystając z odzyskiwania GRUB - po ustawieniu prawidłowego PREFIKSU i ROOT, spróbuj ls / boot - jeśli nic nie widzisz, ale widzisz tam pliki podczas uruchamiania z dysku CD / flash na żywo - niż masz problem opisany powyżej .
Możesz zrobić różne rzeczy, aby uruchomić system, ale jedynym sposobem na uniknięcie tego problemu w przyszłości (podczas aktualizacji systemu) jest umieszczenie katalogu / boot na osobnej małej partycji.
źródło
Inne rozwiązania mogą nie działać, jeśli pojawi się
grub-rescue
monit i / lub Twoja konfiguracja korzysta z LVM, to powinno.Uruchom z dysku ratunkowego (wskazówka: mam małą dystrybucję na dedykowanej partycji dysku zapasowego USB).
Jeśli używasz LVM, znajdź nazwę swojej grupy woluminów za pomocą
lvdisplay
lub innych poleceń związanych z LVM. Aktywuj go (w przeciwnym raziemount: special drive /dev/volumegroupname/partition does not exist
podczas próby zamontowania pojawi się błąd):Teraz zamontuj zwykłą
/
partycję, np. Na/mnt
:Zamontuj także kilka specjalnych urządzeń (a także
/boot
jeśli są na osobnej partycji):Następnie
chroot
do zwykłej dystrybucji:Na koniec zainstaluj ponownie GRUB2 - polecenia mogą się różnić w zależności od twojej dystrybucji, działa to na Slackware (jeśli masz dysk
/dev/sda
):Uruchom ponownie i powinieneś to zrobić.
źródło
! WYBRANA ODPOWIEDŹ NIGDY NIE DZIAŁA.
TO DZIAŁA:
Drugi krok jest niezbędny .
NIE UŻYWAJ
/boot
.Może być inne rozwiązanie: spróbuj ręcznie zmienić urządzenie rozruchowe podczas uruchamiania; nie sądzę jednak, aby to zadziałało i muszę to jeszcze przetestować.
Jest to od dawna problem utrzymujący się w Ubuntu do wersji 17.10 włącznie.
źródło