Falha ao obter caminho canônico de / cow

39

Eu estou tentando instalar o Ubuntu 12.10 por algum tempo e passando por obstáculos um por um. Agora estou em uma situação como segue.

Eu tenho um PC e 10 GB de HDD, que será totalmente dedicado ao Ubuntu, então não há opção de Wubi e dual boot.

Eu estava tentando instalar a partir do DVD, mas ele está ficando preso no erro "Fora da frequência". Então eu tive que me adaptar para a opção de boot USB. Mas meu PC é USB não inicializável, então a solução é "Plop Boot Manager". Então, estou fazendo o procedimento de instalação da seguinte forma:

  1. a partir de uma unidade de CD que está tendo o plop instalado.
  2. opção de inicialização USB nas opções plop.
  3. a inicialização começa a partir de USB.
  4. O monitor
  5. , eventualmente, fornece um erro "fora da frequência"
  6. pressione Shift + Alt + F1 para obter o terminal.
  7. abra o grub com sudo nano /etc/default/grub .
  8. faça as alterações necessárias.
  9. sudo update-grub .

Agora, aqui estou recebendo o erro da seguinte forma:

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

Meu sistema é

P4 3,06 GHz, 1 GB de RAM, 10 GB de HDD sem SO, monitor CRT lg StudioWorks (7 anos de idade). Mobo Mercury P4 266a NDMx (865 equivalente). Todo o sistema está perfeitamente em condições de funcionamento no XP, mas é USB não inicializável, e todos os outros dispositivos funcionando perfeitamente.

O que devo fazer a seguir?

    
por ulkaNCST 13.02.2013 / 05:18

5 respostas

28

Depois de inicializar a partir do CD live do Ubuntu (tentei 14.04 e 16.04), consegui resolver esse problema executando update-grub chroot'ed na partição do grub. (Substitua /dev/sda1 abaixo com qualquer partição que você instalou o grub. Todos os 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
    
por Nathan Kidd 01.10.2014 / 16:43
9

Encontre sua unidade que deve ser inicializada com

mount

Ou

parted -l

Ou

fdisk /dev/sda

E digite p para listar as partições, procure pelo tipo 83.

(Se você tem o Fedora, você pode ter que usar os comandos "vgs" e "lvs" e se você tem mdraid você pode ter que "cat / proc / mdstat" ou mdadm -A --scan ou insmod raid1 ou insmod raid5 e depois mdadm -A --scan) e você usará / dev / md0 ou / dev / mapper / my-vg ao invés de / dev / sda

tente montá-lo

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

Este é seu disco? Legal!

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

(Ou qualquer um dos / dev drive da sua raiz, com o caminho montado)

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

(Force-o se não gostar das suas partições.)

Agora ele deve inicializar no grub, e você pode usar os comandos grub para inicializar, após reinicializar e selecionar a unidade de inicialização correta a partir da configuração do BIOS, ou pressionando ESC ou F12 dependendo da sua BIOS e se você é rápido o suficiente , então no prompt do Grub:

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

Ou, esperamos que você ainda tenha um arquivo grub.cfg intacto ... ou talvez isso funcione:

grub-mkconfig -o /mnt/boot/grub/grub.cfg
    
por Dagelf 14.04.2016 / 00:15
4

Solução revisada com base no código acima

A solução acima não funcionará totalmente sem problemas porque monta a partição de inicialização no / (root) do sistema de arquivos. Isso faz o grub reclamar que o boot não existe, é claro. Isso consertará esse 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 você vê, eu também removi as quebras de linha para facilitar a execução para todos.

Outra solução (mais simples)

Se você continuar tendo problemas para fazê-lo funcionar, deve copiar a partição / boot na partição / (root). Para isso, inicie o seu sistema com o Ubuntu live boot dvd e abra o terminal. Dentro digite:

sudo su
fdisk -l

Para descobrir quais partições você tem. No meu caso, o sda1 é a minha partição / boot, que tem cerca de 250MB de tamanho e um sda5, que é de cerca de 500GB. Eu uso esses valores nos comandos abaixo:

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

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

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

Defina o sinalizador de inicialização para a partição de dados e remova-a para a partição de inicialização:

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

O seu computador irá agora olhar dentro do sda5 para os arquivos de inicialização. Hora de fazer o chrooting novamente, desta vez com algumas pastas necessárias para o grub e que já são geradas pelo seu disco 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

Instalação concluída. Nenhum erro foi relatado.

Se você não vir uma mensagem informando que o arquivo grub.cnf foi gerado, execute o comando update:

update-grub2 /dev/sda

Agora, você pode reinicializar com segurança e ver o menu de inicialização bem conhecido aparecer novamente.

Essa solução foi a única que estava funcionando para mim depois da migração de um servidor físico para uma máquina virtual. Espero que alguém ache isso útil!

    
por Tim B. 15.05.2016 / 20:44
0

Eu sei, é um problema antigo, mas eu tive os mesmos problemas hoje com a versão atual do mint-linux (baseada no Ubuntu). Eu encontrei uma solução muito simples! :-) Tire a conexão com a internet durante a primeira instalação. Isso interrompe o carregamento de um grub2 não compatível. Faça a atualização de todos após a conclusão da instalação.

    
por Chruegel 15.03.2017 / 19:39
-6

É o comando update-grub que lhe dará o erro ao usá-lo a partir de um live cd. Eu enfrentei uma situação semelhante quando estava fazendo um resgate de grub. O problema que você tem é que os comandos update-grub e grub-install não funcionam diretamente no live cd (não sei por quê). Então, você tem que ir para / usr / sbin onde os comandos estão localizados e executá-los de lá (por exemplo, ./update-grub).

    
por aveemashfaq 02.04.2014 / 20:06