No se pudo obtener la ruta canónica de / vaca

43

Estoy intentando instalar Ubuntu 12.10 durante bastante tiempo, y superando obstáculos uno por uno. Ahora estoy en una situación como la siguiente.

Tengo una PC y un disco duro de 10 GB que estarán totalmente dedicados a Ubuntu, por lo que no hay opción de Wubi y arranque dual.

Estaba tratando de instalar desde DVD, pero se está atascando en el error "Fuera de frecuencia". Así que tuve que adaptarme para la opción de arranque USB. Pero mi PC no es USB de arranque, por lo que la solución es "Plop Boot Manager". Entonces estoy haciendo el procedimiento de instalación de la siguiente manera:

  1. comenzando desde una unidad de CD que tiene instalado plop.
  2. optando por el arranque USB en las opciones de plop.
  3. El arranque comienza desde USB.
  4. el monitor finalmente da un error "fuera de frecuencia"
  5. presione Shift+ Alt+ F1para obtener el terminal.
  6. abre la comida con sudo nano /etc/default/grub.
  7. hacer los cambios necesarios
  8. sudo update-grub.

Ahora aquí recibo el siguiente error:

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

Mi sistema es

P4 3.06 GHz, 1 GB de ram, 10 GB de disco duro sin sistema operativo, monitor CRT lg StudioWorks (7 años). Mobo Mercury P4 266a NDMx (equivalente a 865). Todo el sistema funciona perfectamente bajo XP, pero es USB no arrancable y todos los demás dispositivos funcionan perfectamente.

¿Qué debería hacer después?

ulkaNCST
fuente
¿Tiene su computadora los requisitos mínimos de sistema recomendados para ejecutar Ubuntu? He tenido problemas para instalar 12.04 en máquinas con menos de 1 GB de RAM.
CSCameron
Sí, ahora he agregado la especificación de mi sistema a la pregunta.
ulkaNCST
askubuntu.com/questions/207663/… podría valer la pena intentarlo.
Rinzwind
55
Primero monte su disco duro en alguna carpeta, diga /mnty luego chrooten /mnt.
verde

Respuestas:

30

Después de arrancar desde el CD en vivo de Ubuntu (Probado 14.04 y 16.04) pude solucionar este problema ejecutando update-grub chroot'ed en la partición grub. (Sustituya a /dev/sda1continuación con cualquier partición en la que haya instalado grub. Todos los comandos como 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
Nathan Kidd
fuente
2
Intentar ejecutar mount me da el error: NTFS signature is missing.que es extraño, porque debería ser Ext4, no NTFS ...
Cerin
@Cerin, enfatizo / dev / sda1 fue la partición correcta para mí, pero evidentemente no para ti, si ese volumen es NTFS.
Nathan Kidd
Tu solución es confusa. ¿Necesita ejecutar la primera parte y la segunda desde dentro del chroot de la primera? ¿O tiras todo lo que hiciste en la primera parte y solo ejecutas la segunda parte? ¿Por qué monta / dev / sda y / dev / sda1?
Cerin
2
Seguí tus instrucciones y terminé teniendo /usr/sbin/grub-probe: error: failed to get canonical path of '/boot'.solo mi /bootpartición en mi unidad de arranque, el resto estaba en otro lado.
Trineo
1
Tuve que hacer un adicional grub-install /dev/sdaantes update-grub, ¡entonces funcionó!
kiw
11

Encuentra tu disco que se supone que debe arrancar

mount

O

parted -l

O

fdisk /dev/sda

Y escriba p para enumerar las particiones, busque el tipo 83.

(Si tiene Fedora, puede que tenga que usar los comandos "vgs" y "lvs" y si tiene mdraid puede que tenga que "cat / proc / mdstat" o mdadm -A --scan o insmod raid1 o insmod raid5 y luego mdadm -A --scan) y usará / dev / md0 o / dev / mapper / my-vg en lugar de / dev / sda

entonces intenta montarlo

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

¿Es este tu viaje? ¡Guay!

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

(O la unidad / dev que sea su raíz, con su ruta montada)

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

(Fuerce si no le gustan sus particiones).

Ahora debería arrancar en grub, y puede usar los comandos de grub para arrancar, después de reiniciar y seleccionar la unidad de arranque correcta desde la configuración del BIOS, o presionando ESC o F12 dependiendo de su BIOS y si es lo suficientemente rápido, luego en el indicador Grub: puede usar la finalización de la pestaña para encontrarla si no es (hd0,1) sino (hd1,3) o algo más, pero tenga cuidado, la finalización de la pestaña a veces se bloquea durante unos segundos si grub no puede leer la unidad .

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

O, con suerte, todavía tiene un archivo grub.cfg intacto ... o tal vez esto funcione:

grub-mkconfig -o /mnt/boot/grub/grub.cfg
Dagelf
fuente
1
No me gustaban mis particiones, pero -fno funcionaba. Tuve que usar--force
RM
para arrancar desde GRUB, en mi sistema tuve que cambiar lo anterior así: linux /vmlinuz root=/dev/sda1 (es decir, la carpeta raíz) initrd /boot/initrd.img (es decir, agregar .img)
Warner
6

Solución revisada basada en el código anterior

La solución de arriba no funcionará totalmente sin problemas porque monta la partición de arranque en / (raíz) del sistema de archivos. Eso hace que grub se queje de que / boot no existe, por supuesto. Esto solucionará ese problema:

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

Como puede ver, también eliminé los saltos de línea para que sea más fácil de ejecutar para todos.

Otra solución (más simple)

Si sigue teniendo problemas para que funcione, debe buscar copiar la partición / boot en la partición / (raíz). Para eso, inicie su sistema con el DVD de arranque en vivo de Ubuntu y abra la terminal. En su interior escriba:

sudo su
fdisk -l

Para saber qué particiones tienes. En mi caso, sda1 es mi partición / boot que tiene aproximadamente 250 MB de tamaño y un sda5 que tiene aproximadamente 500 GB. Yo uso estos valores en los siguientes comandos:

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

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

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

Establezca el indicador de arranque para la partición de datos y elimínelo para la partición de arranque:

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

Su computadora ahora buscará dentro del sda5 los archivos de arranque. Es hora de hacer el chrooting nuevamente, esta vez con algunas carpetas necesarias necesarias para grub y que ya están generadas por su disco en vivo de 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

Instalación terminada. No se reportó ningún error.

Si no ve un mensaje de que se genera el archivo grub.cnf, ejecute también el comando de actualización:

update-grub2 /dev/sda

Ahora puede reiniciar de manera segura y ver aparecer nuevamente el conocido menú de inicio.

Esta solución fue la única que funcionó para mí después de migrar de un servidor físico a una máquina virtual. ¡Espero que alguien encuentre esto útil!

Tim B.
fuente
0

Lo sé, es un viejo problema, pero hoy tuve los mismos problemas con la versión real de mint-linux (basada en ubuntu). ¡Encontré una solución muy simple! :-) Quite la conexión a Internet durante la primera instalación. Esto detiene la carga de un grub2 no compatible. Realice la actualización de todos después de que la instalación haya finalizado.

Chruegel
fuente
0

Tengo el mismo error. El único problema era que / cow todavía estaba montado en /.

Un pequeño sudo umount / cow hizo el truco.

Simon Lejoly
fuente
-6

Es el comando update-grub que le dará el error al usarlo desde un CD en vivo. Me enfrenté a una situación similar cuando estaba haciendo un rescate de larvas. El problema que tiene es que los comandos update-grub y grub-install no funcionan directamente en live cd (no sé por qué). Por lo tanto, debe ir a / usr / sbin donde se encuentran los comandos y ejecutarlos desde allí (es decir ./update-grub).

aveemashfaq
fuente
No, tienes que montar el disco duro y hacer un chroot en él, como dijo @ green7.
psusi
Mi método también funciona. intentalo. es más simple
aveemashfaq
1
No tienes un método. / usr / sbin ya está en la ruta, así que no hay necesidad de cd allí. No puede ejecutar grub-install y update-grub directamente desde el cd en vivo (como señaló) porque intenta configurar grub para arrancar el sistema actual, que sería el cd en vivo, en lugar del sistema operativo instalado en el disco duro manejar.
psusi
Esto, por supuesto, no funciona. Obtiene el error "no se puede obtener la ruta canónica de / vaca". Y las cosas sobre cd-ing a / usr / sbin ... oh chico.
dan3
pruébalo gente. funcionó para mí todo el tiempo
aveemashfaq