56 votes

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 entièrement dédié à Ubuntu, donc pas d'option de Wubi et de dual boot.

J'ai essayé d'installer à partir du DVD, mais l'erreur "Out of frequency" s'est produite. 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. à partir d'un lecteur de CD sur lequel plop est installé.
  2. opter pour le démarrage USB dans les options de plop.
  3. Le démarrage commence à partir de l'USB.
  4. le moniteur donne éventuellement une erreur "hors fréquence".
  5. presse Shift + Alt + F1 pour obtenir le terminal.
  6. ouvrir le Grub avec sudo nano /etc/default/grub .
  7. effectuer les changements nécessaires.
  8. sudo update-grub .

Maintenant, je reçois 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 ?

43voto

Nathan Kidd Points 842

Après avoir démarré depuis le live CD Ubuntu (j'ai essayé 14.04 et 16.04), j'ai pu contourner ce problème en exécutant update-Grub en chroot'ed sur la partition Grub. (Substituer /dev/sda1 ci-dessous avec 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
grub-install /dev/sda # May not be required
update-grub2

23voto

Richard Harrison Points 14891

Trouvez votre lecteur qui est censé démarrer avec

mount

または

parted -l

または

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" et "lvs" et si vous avez mdraid, vous devrez peut-être "cat /proc/mdstat" 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 dur ? 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 Grub pour démarrer, après avoir redémarré et sélectionné le bon lecteur de démarrage dans la configuration du BIOS, ou en appuyant sur ESC ou F12 selon votre BIOS et si vous êtes assez rapide, puis à l'invite 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, si tout va bien, vous avez encore un fichier Grub.cfg intact...

ls
ls (hd0,1)/
ls (hd0,1)/boot
configfile (hd0,1)/boot/grub.cfg

ou peut-être que ceci va marcher :

grub-mkconfig -o /mnt/boot/grub/grub.cfg

Bien sûr, vos chemins peuvent être différents, alors jouez avec ces commandes jusqu'à ce que vous puissiez voir ce qui se passe et où.

Dans le pire des cas, cela peut être le signe d'une défaillance imminente du disque dur, ou dans le meilleur des cas, il peut s'agir d'un drapeau de partition ou d'un fichier de démarrage qui a été écrasé accidentellement.

12voto

Tim B. Points 219

Solution révisée basée sur le code ci-dessus

La solution ci-dessus ne fonctionnera pas totalement sans problème car elle monte la partition de démarrage dans le répertoire / (racine) du système de fichiers. Cela fait que Grub se plaint que /boot n'existe pas, bien sûr. Ceci corrigera ce problème :

mkdir /mnt/chrootdir
mkdir /mnt/chrootdir/boot
mount /dev/sda1 /mnt/chrootdir/boot
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

Comme vous le voyez, j'ai également supprimé les sauts de ligne afin que l'exécution soit plus facile pour tout le monde.

Une autre solution (plus simple)

Si vous continuez à avoir des problèmes pour le faire fonctionner, vous devriez chercher à copier la partition /boot sur la partition / (racine). Pour cela, démarrez votre système avec le dvd de démarrage Ubuntu live et ouvrez le terminal. Tapez dedans :

sudo su
fdisk -l

Pour savoir quelles partitions vous avez. Dans mon cas, sda1 est ma partition /boot qui fait environ 250MB et sda5 qui fait environ 500GB. J'utilise ces valeurs dans les commandes ci-dessous :

mkdir /mnt/boot/
mount /dev/sda1 /mnt/boot/

mkdir /mnt/root/
mount /dev/sda5 /mnt/root/

cp -R /mnt/boot/ /mnt/root/boot/

Définissez l'indicateur de démarrage pour la partition de données et supprimez-le pour la partition de démarrage :

fdisk /dev/sda
b -> 1 (unset the bootable flag for the first partition)
b -> 5 (set the bootable flag for the fifth partition)
w -> write changes to the MBR

Votre ordinateur va maintenant chercher les fichiers de démarrage dans le sda5. Il est temps de refaire le chrootage, cette fois avec certains dossiers requis nécessaires pour Grub et qui sont déjà générés par votre disque vivant Ubuntu :

mkdir /mnt/chrootdir/
mkdir /mnt/chrootdir/dev/
mkdir /mnt/chrootdir/proc/
mkdir /mnt/chrootdir/sys/

mount /dev/sda5 /mnt/chrootdir/
mount --bind /dev/ /mnt/chrootdir/dev/
mount --bind /proc/ /mnt/chrootdir/proc/
mount --bind /sys/ /mnt/chrootdir/sys/

chroot /mnt/chrootdir/

grub-install /dev/sda

L'installation est terminée. Aucune erreur n'a été signalée.

Si vous ne voyez pas de message indiquant que le fichier Grub.cnf est généré, exécutez également la commande update :

update-grub2 /dev/sda

Vous pouvez maintenant redémarrer en toute sécurité et voir le menu de démarrage bien connu apparaître à nouveau.

Cette solution était la seule qui fonctionnait pour moi après la migration d'un serveur physique vers une machine virtuelle. J'espère que quelqu'un trouvera cette solution utile !

1voto

Chruegel Points 11

Je sais, c'est un vieux problème, mais j'ai eu les mêmes problèmes aujourd'hui avec la version actuelle de mint-linux (basée sur ubuntu). J'ai trouvé une solution très simple ! :-) Déconnectez la connexion internet lors de la première installation. Cela empêche le chargement d'un grub2 non compatible. Faire la mise à jour de tous après l'installation est terminée.

1voto

SinLey Points 11

J'ai la même erreur. Le seul problème était que /cow était toujours monté sur /.

Un peu sudo umount /cow a fait l'affaire.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X