Det lykkedes ikke at få den kanoniske sti til /cow

Jeg forsøger at installere Ubuntu 12.10 i et stykke tid, og passerer forhindringer en efter en. Nu er jeg i følgende situation.

Jeg har fået en PC og 10 GB HDD som vil være helt dedikeret til Ubuntu, så ingen mulighed for Wubi og dual boot.

Jeg forsøgte at installere fra DVD, men den går i stå ved "Out of frequency" fejl. Så jeg var nødt til at tilpasse mig til USB boot mulighed. Men min pc er USB ikke bootbar, så workaround er "Plop Boot Manager". Så jeg gør installationsproceduren som følger:

  1. starter fra et cd-drev, som har Plop installeret.
  2. vælger USB-opstart i plop-indstillingerne.
  3. opstart begynder fra USB.
  4. skærmen giver til sidst "out of frequency" fejl
  5. tryk på Shift+Alt+F1 for at få terminalen.
  6. Åbn grub med sudo nano /etc/default/grub.
  7. Foretag de nødvendige ændringer.
  8. sudo update-grub.

Nu her får jeg fejl som følger:

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

Mit system er

P4 3,06 GHz, 1 GB ram , 10 GB HDD uden operativsystem, CRT-skærm lg StudioWorks (7 år gammel). Mobo Mercury P4 266a NDMx (865 tilsvarende). Hele systemet er perfekt i funktionsdygtig stand under XP, men det er USB ikke bootable, og alle andre enheder fungerer perfekt.

Hvad skal jeg gøre som det næste?

Efter opstart fra Ubuntu live-cd'en (Prøvede 14.04 og 16.04) Jeg var i stand til at arbejde omkring dette problem ved at køre update-grub chroot'ed til grub-partitionen. (Erstat /dev/sda1 nedenfor med den partition, du har installeret grub på. Alle kommandoer som 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
Kommentarer (8)

Find dit drev, der skal starte op med

mount

Eller

parted -l

Eller

fdisk /dev/sda

Og skriv p for at få en liste over partitioner, se efter type 83.

(Hvis du'har Fedora skal du måske bruge kommandoerne "vgs" og "lvs" og hvis du'har mdraid skal du måske "cat /proc/mdstat" eller mdadm -A --scan eller insmod raid1 eller insmod raid5 og derefter mdadm -A --scan) og du vil bruge /dev/md0 eller /dev/mapper/my-vg i stedet for /dev/sda

så prøv at montere den

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

Er dette dit drev? Cool!

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

(Eller hvilket /dev-drev dit root-drev end er, med dets monterede sti)

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

(Tving det, hvis det ikke kan lide dine partitioner.)

Nu burde den starte op i grub, og du kan bruge grub-kommandoerne til at starte op, efter at du har genstartet og valgt det rigtige boot-drev fra BIOS-opsætningen, eller ved at trykke ESC eller F12 afhængigt af din BIOS og om du er hurtig nok, så ved Grub-prompten - du kan bruge tab completion til at finde det, hvis det ikke er (hd0,1) men (hd1,3) eller noget andet i stedet, men pas på, tab completion hænger nogle gange i et par sekunder, hvis grub ikke kan læse drevet.

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

Ellers har du forhåbentlig stadig en intakt grub.cfg-fil... eller måske virker det her:

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

Det er kommandoen update-grub, som giver dig fejlen, når du bruger den fra en live-cd. Jeg stod over for en lignende situation, da jeg lavede en grub rescue. Det problem du har er, at update-grub og grub-install kommandoerne ikke virker direkte under live cd (jeg ved ikke hvorfor). Så du er nødt til at gå til /usr/sbin, hvor kommandoerne er placeret, og udføre dem derfra (dvs. ./update-grub).

Kommentarer (6)