A instalação do Linux não inicializa devido ao erro GRUB “no such device”

2

Eu acho que já estou exausto do que sei fazer, então estou enviando os foguetes. Vou tentar cobrir tudo (embora em pedaços), então, por favor, seja paciente.

Eu decidi instalar o Linux Mint 11 onde anteriormente eu tinha o Ubuntu 10.10. Antes dessa instalação, eu tinha uma partição com o Windows XP, que - em algum momento no passado distante - eu costumava inicializar duas vezes. Eu removi a partição nesta instalação.

Após a instalação, o sistema não inicializa. Após a verificação de um CD / DVD, imprime:

error: no such device: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
GRUB rescue>

Não houve problemas ao inicializar o Ubuntu. Eu me lembro de um problema semelhante da última vez que fiz uma instalação (em vez de uma atualização) para o Ubuntu. Já faz um tempo, mas achei que consertei usando FIXMBR e / ou FIXBOOT do CD do XP. Aqueles não funcionaram desta vez.

O prompt GRUB rescue> parece estar quebrado. Mesmo help não funciona. Eu sou capaz de ls , que produz:

GRUB rescue> ls
(hd0) (hd0,msdos1) (hd1) (hd1,msdos1) (hd2) (hd2,msdos5) (hd2,msdos3) (hd2,msdos2) (hd2,msdos1)

Além disso, não sei o que é este dispositivo. Não consigo encontrar um UUID correspondente em /dev/disk/by-uuid . Para esse assunto, não há UUIDs para o meu disco rígido de inicialização (sda, abaixo). Minha configuração é um Frankenbox. Eu sei não confiar na enumeração de dispositivos em tal combinação, mas eles são fornecidos abaixo para fácil discussão.

  • Ch 0 Master: 250GB PATA (sda)
    • sda1
  • Ch 0 Escravo: nenhum
  • Ch 1 Master: SATA de 80 GB (sdb)
    • sdb1: /
    • sdb2: / home
    • sdb3: swap
  • Ch 1 Escravo: DVD SATA
  • Cartão de expansão
  • SATA: 250GB SATA (sdc)
    • sdc1

Eu achei que tinha acertado o ouro quando descobri alguns metadados RAID remanescentes (e confusos) em sda. A unidade não tinha aparecido na instalação do Linux antes, mas depois de usar dmraid -r -E /dev/sda . No entanto, a falha de inicialização persistiu.

Até agora, eu poderia usar o CD de instalação do Mint para "Boot from Local Drive", o que de fato me levaria à minha instalação no sdb1. Depois de usar o CD para inicializar a unidade e executar o seguinte, agravou o problema de fornecer um prompt GRUB> em vez de inicializar na unidade.

# GRUB-install --no-floppy /dev/sdb1
# update-GRUB
GRUB> find /boot/GRUB/stage1
GRUB> root (hd1,0) # result of above
GRUB> setup (hd0)

Há definitivamente uma incompatibilidade, porque o sdb, que tem 3 partições, parece ser (hd2) no prompt GRUB rescue> , mas (hd1) quando realmente inicializado. No entanto, se eu usei UUIDs (e acho que tenho), isso não deve ser um problema. Usando o live CD, vejo sdb1: /boot/GRUB/menu.list para conter

# kopt=root=UUID=[UUID of sdb1]
...
# groot=[UUID of sdb1]

O problema raiz, pelo que entendi, é que o GRUB é, por algum motivo, eu não entendo, tentando inicializar um dispositivo que não existe. Eu não sei como determinar o que está procurando pelo UUID. Eu não vejo nenhum UUID para qualquer coisa em sda.

E agora, nem consigo inicializar a unidade usando o CD.

Atualização:

Eu pensei em colocar a partição /boot na mesma unidade que o MBR pode ajudar, então eu adicionei sda2, configurei o sinal boot e reinstalei (o que provavelmente é um exagero).

Novamente recebo o prompt grub rescue> , mas agora, quando eu ls , obtenho

grub rescue> ls
(hd0) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1) (hd2) (hd2,msdos3) (hd2,msdos2) (hd2,msdos1)

Portanto, sda não é mais (hd0) neste prompt do que sdb é (hd1). Eu não sei porque é tão desalinhado, nem porque é importante. Eu posso tentar novamente, colocando /boot em sdc / (hd0).

    
por N13 20.11.2011 / 05:36

3 respostas

2

A solução foi apenas colocar o carregador do GRUB (MBR?) na unidade correta. Neste caso, o que carregou no Linux como / dev / sdc e (hd2) carregado no GRUB como (hd0).

    
por 23.11.2011 / 04:37
4

Recebi o mesmo erro devido a um UUID mal marcado no bootloader e Esse cara teve a resposta para mim junto com estes comandos disponíveis no modo de recuperação do grub.

Primeiramente, você precisa identificar a unidade e a partição que tem os arquivos de menu do grub normalmente localizados em / boot / grub

ls [to identify your drive and partition options]
ls (hdx,p)/ [to identify which partition has the /boot folder]

Em seguida, você pode carregar o menu de inicialização manualmente a partir da unidade e da partição encontradas acima.

set prefix="(hdx,p)/boot/grub"
set root="(hdx,p)"
insmod normal
normal

No meu caso, eu modifiquei o UUID da nossa unidade de inicialização manualmente e propositalmente, atualizei o menu grub e fstab, mas esqueci de carregar um novo gerenciador de inicialização para atualizar o UUID e / ou dirigir no bootloader. Então, as unidades não estavam na ordem esperada no grub e o acima mencionado cuidava de tudo; ele pegou o menu de volta para que eu pudesse voltar e atualizar o bootloader com as novas informações do UUID

    
por 03.08.2014 / 14:23
-2

Use o utilitário Boot-Repair-Disk . Funcionou muito bem para mim.

    
por 05.10.2013 / 12:30