56 votes

Impossible d'obtenir le chemin canonique de /cow

Je tente d'installer Ubuntu 12.10 depuis un certain temps et de surmonter les obstacles un par un. Maintenant, je me retrouve 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 Wubi et de double démarrage.

J'essayais d'installer depuis un DVD, mais cela restait bloqué sur l'erreur "Hors fréquence". J'ai donc dû opter pour l'option de démarrage USB. Cependant, mon PC ne peut pas démarrer depuis l'USB, donc la solution de contournement est "Plop Boot Manager". Je suis en train de suivre la procédure d'installation comme suit :

  1. démarrer depuis un lecteur CD sur lequel plop est installé.
  2. opter pour le démarrage USB dans les options de plop.
  3. le démarrage commence depuis l'USB.
  4. le moniteur finit par afficher l'erreur "hors fréquence".
  5. appuyer sur Shift+Alt+F1 pour accéder au terminal.
  6. ouvrir le grub avec sudo nano /etc/default/grub.
  7. apporter les modifications nécessaires.
  8. sudo update-grub.

Maintenant, voici l'erreur que je rencontre :

/usr/sbin/grub-probe:error: échec de l'obtention du chemin canonique de /cow.

Mon système est

P4 3,06 GHz, 1 Go de RAM, 10 Go de disque dur sans OS, moniteur CRT LG StudioWorks (7 ans). Mobo Mercury P4 266a NDMx (équivalent à 865). Le système fonctionne parfaitement sous XP, mais il ne peut pas démarrer depuis l'USB, et tous les autres appareils fonctionnent parfaitement.

Que devrais-je faire ensuite?

43voto

Nathan Kidd Points 842

Après avoir démarré à partir du CD live d'Ubuntu (essayé 14.04 et 16.04), j'ai pu contourner ce problème en exécutant update-grub chroot'ed sur la partition grub. (Remplacez /dev/sda1 ci-dessous par la partition sur laquelle vous avez installé grub. Toutes les commandes 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/$$
done
chroot /mnt/chrootdir
grub-install /dev/sda # Peut ne pas être nécessaire
update-grub2

23voto

Richard Harrison Points 14891

Recherchez le lecteur qui est censé démarrer avec

mount

Ou

parted -l

Ou

fdisk /dev/sda

Et tapez p pour afficher les partitions, recherchez 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, puis mdadm -A --scan) et vous utiliserez /dev/md0 ou /dev/mapper/my-vg au lieu de /dev/sda

ensuite essayez de le monter

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

Est-ce votre lecteur ? Génial !

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

(Ou le /dev sur lequel votre système racine est installé, avec son chemin de montage)

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

(Forcer s'il n'aime pas vos partitions.)

Il devrait maintenant démarrer dans grub, et vous pourrez utiliser les commandes grub pour démarrer, après avoir redémarré et sélectionné le bon lecteur de démarrage dans le BIOS, ou en appuyant sur Echap ou F12 en fonction de votre BIOS et de votre rapidité, puis à l'invite de Grub - vous pouvez utiliser la complétion par tabulation pour le trouver si ce n'est pas (hd0,1) mais (hd1,3) ou autre chose à la place, mais attention, la complétion par 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, espérons-le, vous avez toujours un fichier grub.cfg intact...

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

ou peut-être que cela fonctionnera :

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

Vos chemins peuvent être différents bien sûr, donc jouez simplement avec ces commandes jusqu'à ce que vous puissiez voir ce qui se trouve où et ce qui se passe.

Cela pourrait être un signe de panne imminente du disque dur au pire, ou au mieux peut-être simplement un drapeau de partition ou un fichier de démarrage qui a été accidentellement écrasé.

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èmes car elle monte la partition de démarrage dans le / (root) du système de fichiers. Cela fait que grub se plaint que /boot n'existe pas, bien sûr. Cela résoudra 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  # à l'intérieur de chroot

Comme vous pouvez le voir, j'ai également supprimé les sauts de ligne pour que ce soit plus facile à exécuter pour tout le monde.

Autre solution (plus simple)

Si vous continuez à avoir des problèmes pour le faire fonctionner, vous devriez envisager de copier la partition /boot sur la partition / (root). Pour ce faire, démarrez votre système avec le DVD de démarrage Ubuntu live et ouvrez le terminal. À l'intérieur, tapez :

sudo su
fdisk -l

Pour savoir quelles partitions vous avez. Dans mon cas, sda1 est ma partition /boot qui fait environ 250 Mo et un sda5 qui fait environ 500 Go. 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 le drapeau bootable pour la partition de données et supprimez-le pour la partition de démarrage :

fdisk /dev/sda
b -> 1 (définit le drapeau non bootable pour la première partition)
b -> 5 (définit le drapeau bootable pour la cinquième partition)
w -> écrire les changements dans le MBR

Votre ordinateur recherchera maintenant les fichiers de démarrage à l'intérieur de la sda5. Il est temps de faire à nouveau le chroot, cette fois avec certains dossiers requis nécessaires pour grub et qui sont générés par votre disque live 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

Installation terminée. Aucune erreur signalée.

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

update-grub2 /dev/sda

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

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

1voto

Chruegel Points 11

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

1voto

SinLey Points 11

Je reçois la même erreur. Le seul problème était que /cow était encore monté sur /.

Un petit 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