Co zrobić, gdy pojawia się błąd „próba odczytu lub zapisu poza dyskiem„ hd0 ”” i naprawa systemu nie rozwiązuje problemu?

35

Próbowałem zainstalować Xubuntu 13.10 na starszym komputerze. Zauważyłem pewne trudności podczas instalacji, które mogą być związane z moimi problemami. Szczególnie:

  1. Rozdzielczość ekranu była bardzo niska. Okna były znacznie większe niż ekran i musiałem je przesunąć, aby przejść do przycisku „Dalej”.

  2. Kursor myszy był rozmyciem kolorów, które cały czas migały.

Instalacja zakończyła się i próbowałem ponownie uruchomić komputer. Natychmiast otrzymałem:

error: attempt to read or write outside of disk 'hd0'. 
Entering rescue mode... 
grub rescue>

Zrobiłem dysk USB do naprawy rozruchu , uruchomiłem go i wybrałem domyślną naprawę. Aplikacja powiedziała mi, że problem został naprawiony i że jeśli to nie rozwiąże mojego problemu, powinienem pokazać ten link komuś, kto może mi pomóc.

Co mam teraz zrobić? Próbowałem już zainstalować Ubuntu i Xubuntu, oba bez powodzenia.

EDYTOWAĆ:

Znalazłem obejście.

  1. Podłącz Xubuntu na żywo USB
  2. Wybierz „wypróbuj Xubuntu”
  3. W menu ustawień wybierz „zainstaluj Xubuntu”

To rozwiązało problem. Ponieważ jest rozwiązany, nie mogę przetestować odpowiedzi.

Martin Drozdik
źródło
(prawie) duplikat askubuntu.com/questions/229715/…
Reinier Post

Odpowiedzi:

36

Zlokalizuj partycję, w której obecny jest Linux, za pomocą następującej techniki

grub rescue > ls
(hd0) (hd0, msdos9)
grub rescue > ls (hd0,msdos9)/
grub rescue > ls (hd0,msdos8)/
grub rescue > ls (hd0,msdos5)/ # suppose this is root and bootloader of linux
grub rescue > ls (hd0,msdos5)/
grub rescue > set root=(hd0,msdos5)
grub rescue > set prefix=(hd0,msdos5)/boot/grub
grub rescue > insmod normal
grub rescue > normal

Teraz pojawi się menu startowe systemu. Uruchom system Linux.

sudo update-grub
sudo grub-install  /dev/sda # If the drive is hd0 the equivalent is sda, if it's hd1 then use sdb

To naprawia moduł ładujący.

użytkownik223882
źródło
17
Nie rozumiem, co to powinno zrobić. Określasz wiele poleceń, z których żadne nie ma dla mnie sensu. Dodaj trochę więcej tekstu wyjaśniającego! Dlaczego „odliczasz” z msdos9 do 5? Jak widzisz, że „to jest linux”? W moim przypadku pokazuje (hd0, msdos1)! Nie mogę „odliczać” - a kiedy ustawię root i prefiks i zrobię „insmod normal”, otrzymuję dokładnie taki sam komunikat o błędzie jak poprzednio. Przepraszam. To nie jest odpowiedź, z którą każdy mógłby pracować. :(
Zordid
13
Gdy tylko piszę, insmod normalponownie pojawia się komunikat: „błąd: próba odczytu lub zapisu poza partycją”.
user643722,
2
mówisz „przypuśćmy, że to jest linux”, nie mówiąc, jak mogę stwierdzić, który z nich jest linuxem. Ilekroć wpisuję insmod normal, pojawia się komunikat „błąd: nieznany system plików”, to nie działa dla mnie. Czy możesz również wyjaśnić, dlaczego tak się dzieje?
msknapp
1
Najlepsze, co dostałem, to kolejne polecenie grub. Menu nigdy się nie pojawia.
jbo5112
2
Zgadzam się z @Zordid - sama lista tajemniczych poleceń bez wyjaśnienia, co te polecenia robią, jest nie tylko niewystarczająca, może być potencjalnie niebezpieczna.
Johsm
27

Dla każdego, kto ma ten problem:

Działo się tak w przypadku, gdy nowa instalacja lub naprawa GRUBa działała i uruchamiała się ponownie, ale przy następnym uruchomieniu ponownie otrzymywałbym tę samą „próbę odczytania błędu”. Najczęściej wpadałem w panikę jądra i komputer wymagałby twardego restartu.

Postępowałem zgodnie z kilkoma radami i przeprowadziłem nową instalację, korzystając z opcji zaawansowanych (nie używaj „wymaż dysku i zainstaluj ubuntu”), używając następujących ustawień partycji:

  1. Utwórz partycję ext4 1 GB (1024 MB) na początku dysku; zamontowany w „/ boot”
  2. Stwórz pożądaną przestrzeń instalacyjną w ext4 zamontowanym w „/” MINUS swoim obszarze wymiany
  3. Użyj pozostałego miejsca na zamianę. (WSZYSTKIE partycje będą podstawowe)
  4. W menu rozwijanym instalacji rozruchowej wybierz partycję „/ boot”. Nie domyślny katalog główny dysku!
Andrzej
źródło
Działa to dla mnie, gdy polecenia w zaakceptowanej odpowiedzi brzmiały: „System plików nie został rozpoznany”. Skończyło się na tym samym zestawie systemów plików, ale ta mała dedykowana partycja / boot była tym, co naprawiło mój problem. Dzięki.
GregHNZ
Wygląda na to, że działa to również, jeśli / boot jest jedyną partycją podstawową.
Aaron Mason,
Dołączyłem do tej witryny tylko po to, aby powiedzieć, że to również działało dla mnie. Mała partycja rozruchowa była tym, czego potrzebowałem, aby to działało podczas umieszczania Ubuntu na zewnętrznym dysku twardym. Dzięki!
rayryeng - Przywróć Monikę
Pomogło mi to: miałem dużą (> 5 TB) / partycję, dodanie małej partycji / boot naprawiło problem
neutrinus
Czy można to zrobić bez usuwania istniejącej partycji? Mam dużą partycję ze wszystkimi moimi danymi, zaczynającymi się na początku dysku.
pir
6

Można to łatwo rozwiązać za pomocą monitu ratunkowego Grub. Pierwsza odpowiedź nie jest do końca pełna i na początku mam ten sam błąd. Oto jak to działa:

1. musimy znaleźć partycję podstawową. Tam będą znajdować się niezbędne pliki potrzebne do uruchomienia Linuksa, więc wpisujemy to -

Grub> ls

Powinieneś teraz zobaczyć listę porównywalną do (hd0) (hd0, msdos5) (hd0, msdos1). Pamiętaj, że możesz mieć inne partycje niż ja, a także wiele dysków, ale proces jest taki sam.

Teraz przeszukaj partycje, aby znaleźć podstawowy -

Grub> ls (hd0)
Grub> ls (hd0,msdos5)
Grub> ls (hd0,msdos1)

Aż grub nie wyświetli listy plików na tej partycji lub pokaże typ systemu plików i datę ostatniej modyfikacji.

Po drugie, musimy znaleźć kilka rzeczy po znalezieniu naszej podstawowej partycji -

Grub> set prefix=(hd0,msdos1)/boot/grub
Grub> set root=(hd0,msdos1)
Grub> set

Po wykonaniu ostatniego zestawu poleceń Grub wyświetli listę różnych parametrów. Teraz sprawdźmy, czy ustawiliśmy prawidłowy katalog główny i prefiks -

Grub> ls /boot

Grub powinien wypisać listę plików zawartych w katalogu / boot.

3. musimy ustawić punkt montowania i załadować jądro -

Grub> linux /vmlinuz root=/dev/sda1
Grub> initrd /initrd.img

Na koniec uruchamiamy system -

Grub> boot

Jeśli skończy się ładowanie do powłoki busyboksa, po prostu wpisz fsck /dev/sda1. Następnie wystarczy wejść, exita system uruchomi się normalnie.

Zach Parker
źródło
Uratowałem mi życie, dzięki!
Timmah
3

Rozwiązałem ten problem, przenosząc partycję Linuksa blisko początku dysku twardego. Kiedy partycja linux znajdowała się na końcu mojego dysku twardego 120 Gb (40 Gb od końca), dostałem ten problem. Żadne rozwiązanie nie zadziałało. Po przeniesieniu partycji linux na przestrzeń z 40 Gb na 80 Gb problem zniknął.

Jan
źródło
1
Jak przenieść partycję Linux na początek dysku?
pir
1

Po przeszukaniu wielu godzin wypróbowałem to rozwiązanie i działa ono dobrze, aby ponownie zainstalować jądro:

sudo dpkg --configure -a
sudo apt-get install --reinstall linux-image-$(uname -r)
Zeyad Assem
źródło
0

Osiągam ten problem, gdy użyłem dysku vmdk z pakietu maszyny wirtualnej OVA w virt-manager / QEMU / KVM. Maszyna wirtualna nie działa z tym komunikatem o błędzie.

Rozwiązaniem było przekonwertowanie vmdk na qcow2:

qemu-img convert -O qcow2 MyAppliance-disk1.vmdk MyAppliance.qcow2

I zamiast tego użyć przekonwertowanego obrazu w virt-manager.

Honza
źródło
0

Miałem ten problem podczas próby zainstalowania Ubuntu 18 Server i Xubuntu 18 na serwerze Dell. Naprawiono to, wybierając opcję UEFI zamiast Legacy w menu BIOS.

arzach84
źródło