Was kann ich tun, wenn der Fehler "Versuch, außerhalb der Festplatte 'hd0' zu lesen oder zu schreiben" auftritt und die Boot-Reparatur das Problem nicht löst?

35

Ich habe versucht, Xubuntu 13.10 auf einem älteren Computer zu installieren . Bei der Installation sind einige Probleme aufgetreten, die für meine Probleme relevant sein können. Vor allem:

  1. Die Bildschirmauflösung war extrem niedrig. Die Fenster waren viel größer als der Bildschirm und ich musste sie bewegen, um zur Schaltfläche "Weiter" zu gelangen.

  2. Der Mauszeiger war eine verschwommene Farbe, die die ganze Zeit blitzte.

Die Installation wurde beendet und ich habe versucht, den Computer neu zu starten. Sofort bekam ich:

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

Ich habe ein Boot Repair USB-Laufwerk erstellt, es gebootet und die Standardreparatur gewählt. Die Anwendung teilte mir mit, dass das Problem behoben ist und dass ich diesen Link jemandem zeigen sollte , der mir helfen kann , wenn dies mein Problem nicht löst .

Was soll ich als nächstes tun? Ich habe bereits versucht, Ubuntu und Xubuntu zu installieren, beide ohne Erfolg.

BEARBEITEN:

Ich habe eine Problemumgehung gefunden.

  1. Stecken Sie den Xubuntu Live USB ein
  2. Wähle "Xubuntu ausprobieren"
  3. Wählen Sie im Einstellungsmenü "Xubuntu installieren"

Dies hat das Problem für mich behoben. Da es gelöst ist, kann ich die Antwort nicht testen.

Martin Drozdik
quelle
(fast-) Duplikat von askubuntu.com/questions/229715/…
Reinier Post

Antworten:

36

Suchen Sie mithilfe der folgenden Technik die Partition, in der Linux vorhanden ist

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

Nun wird das Startmenü des Systems angezeigt. Booten Sie in 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

Dies behebt den Bootloader.

user223882
quelle
17
Ich verstehe nicht, was das tun soll. Sie spezifizieren eine Menge Befehle, von denen keiner für mich einen Sinn ergibt. Bitte erläutern Sie den Text! Warum "zählen" Sie von msdos9 auf 5 herunter? Wie sehen Sie, dass "das ist Linux"? In meinem Fall zeigt es (hd0, msdos1)! Ich kann nicht "runterzählen" - und sobald ich root und prefix gesetzt und "insmod normal" gemacht habe, erhalte ich genau die gleiche Fehlermeldung wie zuvor. Es tut uns leid. Dies ist keine Antwort, mit der jemand arbeiten könnte. :(
Zordid
13
Sobald ich tippe, insmod normalerhalte ich erneut die Meldung: "Fehler: Versuch, außerhalb der Partition zu lesen oder zu schreiben."
user643722
2
Sie sagen "Angenommen, dies ist Linux", ohne zu sagen, wie ich feststellen kann, welches Linux das ist. Immer wenn ich insmod normal eingebe, bekomme ich "error: unknown filesystem" zurück, das funktioniert bei mir nicht. Können Sie auch erklären, warum dies überhaupt geschieht?
Msknapp
1
Das Beste, was ich bekommen habe, ist eine weitere Eingabeaufforderung. Das Menü wird nie angezeigt.
jbo5112
2
Ich bin mit @Zordid einverstanden - nur eine Liste von kryptischen Befehlen ohne eine Erklärung, was diese Befehle tun, ist nicht nur nicht ausreichend, es könnte möglicherweise gefährlich sein.
Johsm
27

Für alle anderen, die dieses Problem haben:

Das passierte mir, wenn eine Neuinstallation oder eine Grub-Reparatur funktionierte und neu gestartet wurde, aber beim nächsten Neustart wurde derselbe "Versuch, einen Fehler zu lesen" gemeldet. Meistens bekam ich eine Kernel-Panik und der Computer musste hart neu gestartet werden.

Ich befolgte einige Ratschläge und führte eine Neuinstallation mit den erweiterten Optionen durch (verwenden Sie nicht die Option "Datenträger löschen und Ubuntu installieren"). Verwenden Sie dazu die folgenden Partitionseinstellungen:

  1. Erstellen Sie eine ext4-Partition mit 1 GB (1024 MB) am Anfang der Festplatte. eingehängt in "/ boot"
  2. Erstellen Sie den gewünschten Installationsplatz in ext4, der in "/" MINUS Ihrem Swap-Bereich montiert ist
  3. Verwenden Sie den verbleibenden Platz zum Tauschen. (ALLE Partitionen sind primär)
  4. Wählen Sie im Dropdown-Menü für die Startinstallation Ihre Partition "/ boot" aus. Nicht das voreingestellte Laufwerk root!
Andrew
quelle
Dies funktionierte für mich, als die Befehle in der akzeptierten Antwort "Dateisystem wird nicht erkannt" erhielten. Ich habe letztendlich die gleichen Dateisysteme verwendet, aber diese kleine dedizierte / Boot-Partition hat mein Problem behoben. Vielen Dank.
GregHNZ
Dies scheint auch zu funktionieren, wenn / boot die einzige primäre Partition ist.
Aaron Mason
Ich bin dieser Seite beigetreten, nur um zu sagen, dass dies auch für mich funktioniert hat. Die kleine Boot-Partition war genau das, was ich brauchte, um Ubuntu auf einer externen Festplatte zum Laufen zu bringen. Vielen Dank!
Rayryeng - Wiedereinsetzung von Monica
Es hat mir geholfen: Ich hatte eine große (> 5 TB) / Partition und das Hinzufügen einer kleinen / Boot-Partition hat das Problem
behoben
Kann man das tun, ohne die vorhandene Partition zu löschen? Ich habe eine große Partition, in der alle meine Daten am Anfang der Festplatte beginnen.
Pir
6

Es kann leicht durch die Grub-Rettungsaufforderung gelöst werden. Die erste Antwort ist nicht ganz vollständig und ich habe zuerst den gleichen Fehler erhalten. So funktioniert es:

Zuerst müssen wir die primäre Partition finden. Hier befinden sich die wesentlichen Dateien, die zum Booten von Linux benötigt werden. Geben Sie also Folgendes ein:

Grub> ls

Sie sollten nun eine Liste sehen, die mit (hd0) (hd0, msdos5) (hd0, msdos1) vergleichbar ist. Beachten Sie, dass Sie möglicherweise andere Partitionen als ich sowie mehrere Laufwerke haben, der Vorgang jedoch identisch ist.

Durchsuchen Sie nun die Partitionen, um die primäre zu finden -

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

Bis grub entweder eine Liste der Dateien auf dieser Partition ausgibt oder den Dateisystemtyp und das Datum der letzten Änderung anzeigt.

2. Wir müssen ein paar Dinge einrichten, sobald wir unsere primäre Partition gefunden haben -

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

Sobald der letzte gesetzte Befehl ausgeführt wurde, gibt Grub eine Liste mit verschiedenen Parametern aus. Lassen Sie uns nun überprüfen, ob wir den richtigen Stamm und das richtige Präfix festgelegt haben -

Grub> ls /boot

Grub sollte eine Liste der in / boot enthaltenen Dateien ausgeben.

3. Wir müssen den Einhängepunkt setzen und den Kernel laden -

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

Und zum Schluss booten wir das System -

Grub> boot

Wenn Sie in der Busybox-Shell booten, geben Sie einfach ein fsck /dev/sda1. Danach geben Sie einfach ein exitund Ihr System wird normal booten.

Zach Parker
quelle
Ich habe mein Leben gerettet, danke!
Timmah
3

Ich habe dieses Problem gelöst, indem ich meine Linux-Partition fast an den Beginn der Festplatte gebracht habe. Als sich die Linux-Partition am Ende meiner 120-GB-Festplatte befand (40 GB vom Ende), bekam ich dieses Problem. Keine einzige Lösung hat nicht funktioniert. Nachdem die Linux-Partition von 40 GB auf 80 GB verschoben wurde, verschwand das Problem.

John
quelle
1
Wie verschiebt man die Linux-Partition an den Anfang der Festplatte?
Pir
1

Nach vielen Stunden habe ich diese Lösung ausprobiert und es funktioniert gut, den Kernel neu zu installieren:

sudo dpkg --configure -a
sudo apt-get install --reinstall linux-image-$(uname -r)
Zeyad Assem
quelle
0

Ich erreiche dieses Problem, wenn ich in virt-manager / QEMU / KVM eine VMDK-Festplatte aus einem OVA-VM- Paket verwendet habe . Die virtuelle Maschine schlug mit dieser Fehlermeldung fehl.

Die Lösung bestand darin, vmdk in qcow2 umzuwandeln:

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

Und stattdessen konvertiertes Bild in virt-manager verwenden.

Honza
quelle
0

Ich hatte dieses Problem beim Versuch, Ubuntu 18 Server und Xubuntu 18 auf einem Dell-Server zu installieren. Die Auswahl von UEFI anstelle von Legacy im BIOS-Menü hat das Problem behoben.

arzach84
quelle