Kanonischer Pfad von /cow konnte nicht ermittelt werden

Ich versuche seit geraumer Zeit, Ubuntu 12.10 zu installieren, und überwinde eine Hürde nach der anderen. Jetzt bin ich in einer Situation wie folgt.

Ich habe einen PC und 10 GB HDD, die vollständig auf Ubuntu gewidmet sein wird, so dass keine Option von Wubi und Dual-Boot.

Ich habe versucht, von DVD zu installieren, aber es bleibt bei der Fehlermeldung "Out of frequency" hängen. So musste ich für USB-Boot-Option anzupassen. Aber mein PC ist über USB nicht bootfähig, also ist die Abhilfe "Plop Boot Manager". Ich führe also die Installation wie folgt durch:

  1. Ich starte von einem CD-Laufwerk, auf dem Plop installiert ist.
  2. Auswahl von USB-Boot in den Plop-Optionen.
  3. Das Booten beginnt von USB.
  4. Der Monitor zeigt den Fehler "out of frequency" an.
  5. drücken Sie Shift+Alt+F1 um das Terminal zu öffnen.
  6. Öffnen Sie den Grub mit sudo nano /etc/default/grub.
  7. Nehmen Sie die notwendigen Änderungen vor.
  8. sudo update-grub`.

Jetzt bekomme ich folgende Fehlermeldung:

/usr/sbin/grub-probe:error:failed to get canonical path of /cow.

Mein System ist

P4 3,06 GHz, 1 GB ram , 10 GB HDD ohne OS, Monitor CRT lg StudioWorks (7 Jahre alt). Mobo Mercury P4 266a NDMx (865 entspricht). Das ganze System ist perfekt in Arbeitsbedingungen unter XP, aber es ist USB nicht bootfähig, und alle anderen Geräte arbeiten perfekt.

Was sollte ich als nächstes tun?

Nachdem ich von der Ubuntu-Live-CD gebootet hatte (ich habe 14.04 und 16.04 ausprobiert), konnte ich dieses Problem umgehen, indem ich update-grub chroot'ed auf der grub-Partition ausführte. (Ersetzen Sie unten /dev/sda1 durch die Partition, auf der Sie grub installiert haben. Alle Befehle als root.)

mkdir /mnt/chrootdir
mount /dev/sda1 /mnt/chrootdir
for dir in proc dev sys etc bin sbin var usr lib lib64 tmp; do
    mkdir /mnt/chrootdir/$dir && mount --bind /$dir /mnt/chrootdir/$dir
done
chroot /mnt/chrootdir
update-grub2  # inside chroot
Kommentare (8)

Finden Sie Ihr Laufwerk, das mit

mount

Oder

parted -l

Oder

fdisk /dev/sda

Geben Sie p ein, um die Partitionen aufzulisten, und suchen Sie nach Typ 83.

(Wenn Sie Fedora haben, müssen Sie möglicherweise die Befehle "vgs" und "lvs" verwenden, und wenn Sie mdraid haben, müssen Sie möglicherweise "cat /proc/mdstat" oder mdadm -A --scan oder insmod raid1 oder insmod raid5 und dann mdadm -A --scan) und Sie werden /dev/md0 oder /dev/mapper/my-vg anstelle von /dev/sda verwenden

dann versuchen Sie es zu mounten

mkdir /mnt
mount /dev/sda1 /mnt
cd /mnt
ls -l

Ist das Ihr Laufwerk? Cool!

grub-install --recheck --root-directory=/mnt /dev/sda 

(Oder welches /dev-Laufwerk auch immer dein Root-Laufwerk ist, mit dem dazugehörigen Pfad)

grub-install --recheck --root-directory=/mnt /dev/sda --force

(Erzwingen Sie es, wenn es Ihre Partitionen nicht mag.)

Jetzt sollte es in Grub booten, und Sie können die Grub-Befehle zum Booten verwenden, nachdem Sie neu gebootet und das richtige Boot-Laufwerk im BIOS-Setup ausgewählt haben, oder indem Sie ESC oder F12 drücken, je nach BIOS und ob Sie schnell genug sind, dann am Grub-Prompt - Sie können die Tabulatorvervollständigung verwenden, um es zu finden, wenn es nicht (hd0,1), sondern (hd1,3) oder etwas anderes ist, aber Vorsicht, die Tabulatorvervollständigung bleibt manchmal für ein paar Sekunden hängen, wenn Grub das Laufwerk nicht lesen kann.

insmod linux
ls
root=(hd0,1)
linux /boot/vmlinuz root=/dev/sda1
initrd /boot/initrd
boot

Oder, hoffentlich haben Sie noch eine intakte grub.cfg-Datei... oder vielleicht funktioniert das hier:

grub-mkconfig -o /mnt/boot/grub/grub.cfg
Kommentare (2)

Es ist der Befehl update-grub, der die Fehlermeldung auslöst, wenn man ihn von einer Live-CD verwendet. Ich war mit einer ähnlichen Situation konfrontiert, als ich eine Grub-Rettung durchgeführt habe. Das Problem, das Sie haben, ist, dass die Befehle update-grub und grub-install nicht direkt unter einer Live-CD funktionieren (ich weiß nicht, warum). Sie müssen also zu /usr/sbin gehen, wo sich die Befehle befinden, und sie von dort aus ausführen (d.h. ./update-grub).

Kommentare (6)