
Ich weiß fast nichts über das Programmieren in Ubuntu. Ich verwende derzeit einen Dual-Boot von Ubuntu 16.04 LTS und Windows 10. Alles war in Ordnung. Aber heute ist ein Fehler aufgetreten, der besagt:
„Dateisystem kann nicht gefunden werden“
und dann grub
beginnt die Rettung. Nach einiger Zeit des Suchens habe ich eine Lösung gefunden, die Folgendes vorschlägt:
ls
set prefix=(hd0,msdos5)/boot/grub
insmod normal
normal
Ich weiß, dass ls
hier Festplattenpartitionen aufgelistet werden (sagen Sie mir, wenn ich falsch liege). Dann set prefix
muss ich (in ) eine Partition auswählen. Als ich msdos5 auswählte, trat ein Fehler auf. Nach einigem Probieren wählte ich msdos6 aus. Dann lief es. Aber das Problem ist, dass ich aus einer anderen Lösung für dieses Problem diesen Code geschrieben habe:
set boot=(hd0,msdos6)
Ich glaube, ich habe es vermasselt. Wahrscheinlich geht es darum, welche Partition der Festplatte gebootet wird. Jetzt läuft mein Laptop, nachdem ich diesen Code geschrieben habe, und jedes Mal, wenn ich den Laptop einschalte, bleibt der Bootvorgang am Anfang hängen und zeigt denselben Fehler an. Ich muss den Code jedes Mal neu schreiben, wenn ich den Laptop starten muss. Wie kann ich dieses Problem lösen? Ich muss wahrscheinlich auch wissen, welche Partition gebootet wird (msdos*), und ich weiß nicht, wie ich das herausfinden kann.
Antwort1
Ich habe eine Lösung für diese Art von Problem, wenn grub rescue>
die Eingabeaufforderung beim Booten auftritt und Sie einen Code wie den folgenden schreiben müssen:
grub rescue> ls
grub rescue> set boot=(hd0,msdos*)
grub rescue> set prefix=(hd0,msdos*)/boot/grub
grub rescue> insmod normal
grub rescue> normal
Nach dem Booten wird das auf Linux/Ubuntu basierende Betriebssystem geladen. Öffnen Sie dann ein Terminal und geben Sie den folgenden Befehl ein:
useranf@ ~ $ sudo update-grub
Geben Sie dann diesen Befehl ein:
useranf@ ~ $ sudo grub-install /dev/sda
Starten Sie Ihr System nach diesem Vorgang abschließend neu.
Antwort2
In der obigen Antwort von Deepak Bundela muss meiner Meinung nach die folgende Zeile korrigiert werden:
grub rescue> set boot=(hd0,msdos*)
Zu:
grub rescue> set root=(hd0,msdos*)
(ich wiederhole das *, wie Bundela es ausgedrückt hat, um nicht vom eigentlichen Problem abzulenken)
Ich konnte keine Grub-Umgebungsvariable namens Boot finden, und soweit ich mich erinnere, war sie immerset root=()
ich bin etwas verwirrt von all den Kommentatoren, die sagten, dass es auf ihren Distributionen funktioniert hat. Haben sie ein set boot
oder ein gemacht set root
?
grub rescue>
Wenn man in der Eingabeaufforderung einfach Folgendes eingibt set
, werden alle festgelegten Umgebungsvariablen aufgelistet. Bei all meinen Grub-Rettungsabenteuern habe ich nie gesehen, dass die boot
Umgebungsvariable aufgelistet wurde.