Impossible d'obtenir le chemin canonique de /cow

J'essaie d'installer Ubuntu 12.10 depuis un certain temps, et je passe les obstacles un par un. Je me retrouve maintenant dans la situation suivante.

J'ai un PC et un disque dur de 10 Go qui sera totalement dédié à Ubuntu, donc pas d'option de Wubi et de dual boot.

J'ai essayé d'installer à partir d'un DVD, mais il se bloque à l'erreur "Out of frequency". J'ai donc dû m'adapter à l'option de démarrage USB. Mais mon PC n'est pas amorçable par USB, donc la solution de contournement est "Plop Boot Manager". Je procède donc à l'installation comme suit :

  1. je commence à partir d'un lecteur de CD sur lequel plop est installé.
  2. j'opte pour le démarrage par USB dans les options de plop.
  3. le démarrage commence à partir de l'USB.
  4. le moniteur donne éventuellement une erreur de type "out of frequency&quot ;.
  5. appuyez sur Shift+Alt+F1 pour obtenir le terminal.
  6. Ouvrez le grub avec sudo nano /etc/default/grub.
  7. Faites les changements nécessaires.
  8. sudo update-grub.

Maintenant, j'obtiens l'erreur suivante :

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

Mon système est

P4 3.06 GHz, 1 GB ram , 10 GB HDD sans OS, moniteur CRT lg StudioWorks (7 ans). Mobo Mercury P4 266a NDMx (865 équivalent). L'ensemble du système est parfaitement en état de marche sous XP, mais il est USB non bootable, et tous les autres périphériques fonctionnent parfaitement.

Que dois-je faire ensuite ?

Après avoir démarré à partir du CD live Ubuntu (j'ai essayé 14.04 et 16.04), j'ai pu contourner ce problème en exécutant update-grub en mode chroot sur la partition grub. (Remplacez /dev/sda1 ci-dessous par la partition sur laquelle vous avez installé grub. Toutes les commandes sont effectuées en tant que 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
Commentaires (8)

Trouvez votre lecteur qui est censé démarrer avec...

mount

Ou

parted -l

Ou

fdisk /dev/sda

Et tapez p pour lister les partitions, cherchez le type 83.

(Si vous avez Fedora, vous devrez peut-être utiliser les commandes "vgs&quot ; et "lvs&quot ; et si vous avez mdraid, vous devrez peut-être &quot ;cat /proc/mdstat&quot ; ou mdadm -A --scan ou insmod raid1 ou insmod raid5 et ensuite mdadm -A --scan) et vous utiliserez /dev/md0 ou /dev/mapper/my-vg au lieu de /dev/sda

puis essayez de le monter

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

C'est votre disque ? Cool !

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

(Ou n'importe quel lecteur /dev de votre racine, avec son chemin monté)

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

(Forcez-le s'il n'aime pas vos partitions.)

Maintenant, il devrait démarrer dans grub, et vous pouvez utiliser les commandes de grub pour démarrer, après avoir redémarré et sélectionné le bon lecteur de démarrage depuis le BIOS Setup, ou en appuyant sur ESC ou F12 selon votre BIOS et si vous êtes assez rapide, puis à l'invite de Grub - vous pouvez utiliser la complétion de tabulation pour le trouver si ce n'est pas (hd0,1) mais (hd1,3) ou autre chose à la place, mais attention, la complétion de tabulation se bloque parfois pendant quelques secondes si grub ne peut pas lire le lecteur.

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

Ou, avec un peu de chance, vous avez toujours un fichier grub.cfg intact... ou peut-être que ceci fonctionnera :

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

C'est la commande update-grub qui vous donnera l'erreur lorsque vous l'utilisez à partir d'un cd live. J'ai été confronté à une situation similaire lorsque je faisais un sauvetage de grub. Le problème que vous rencontrez est que les commandes update-grub et grub-install ne fonctionnent pas directement sous live cd (je ne sais pas pourquoi). Vous devez donc aller dans /usr/sbin où se trouvent les commandes et les exécuter à partir de là (c'est-à-dire ./update-grub).

Commentaires (6)