erro: arquivo '/grub/i386-pc/normal.mod' não encontrado

34
error: file '/grub/i386-pc/normal.mod' not found.
grub rescue>

O que posso fazer? Eu apenas sento e olho para ele.

Encontrei meu netbook antigo (Dell Inspiron 1010), que não uso há cerca de quatro anos. Eu substitui o Windows XP pelo Ubuntu 12.10. Eu usei meu drive USB inicializável. Eu instalei e reiniciei. Recebi a mensagem de que normal.mod não foi encontrado.

O que devo fazer? Digite exit , reboot ou quit ? Devo reinstalar?

    
por Don Metlay 11.03.2013 / 05:43

3 respostas

33

O Grub tem uma pequena imagem central que é carregada no momento da inicialização. A imagem principal carrega dinamicamente módulos que fornecem funcionalidade adicional. i386-pc/normal.mod not found indica que o grub não pode carregar normal.mod , que é um módulo do grub que fornece o normal de comando . Para carregar normal.mod você precisa dizer ao grub onde está. Para fazer isso, você pode usar a linha de comando grub (também conhecida como Rescue Console). O Grub iniciará a linha de comando se houver um problema ao inicializar, ou você pode iniciá-lo manualmente segurando a tecla shift enquanto o grub inicia (para forçar mostrar o menu do grub), e então pressionando a tecla 'c'.

Usando o grub, você pode explorar as unidades, partições e sistemas de arquivos. Você precisa:

  • localize a instalação do grub usando ls ou search.file
  • definir variáveis do grub $ prefix e $ root
  • carregue e execute o módulo normal

Exemplo

O seguinte é apenas um exemplo. Você precisará adaptá-lo à sua unidade local e à configuração da partição.

onde é normal.mod? procure em alguns locais prováveis

grub> search.file /i386-pc/normal.mod
error: no such device: /i386-pc/normal.mod

grub> search.file /grub/i386-pc/normal.mod
error: no such device: /grub/i386-pc/normal.mod

grub> search.file /boot/grub/i386-pc/normal.mod
hd0,msdos1

Se você obtiver "Unknown command 'search.file'" , isso significa que o comando search.file não está disponível. Isso provavelmente é porque você está no prompt grub rescue> e não grub> . Nesse caso, você ainda pode continuar e usar o comando ls e seu conhecimento do layout da partição para localizar normal.mod .

encontrou em (hd0, msdos1)

grub> ls (hd0,msdos1)/boot/grub/i386-pc/normal.mod
normal.mod

por que o grub não o encontrou?
check $ prefix - localização absoluta do diretório grub | (isso é definido quando o grub é instalado pelo grub-install)

grub> echo $prefix
(hd0,msdos2)/boot/grub

verificar $ root - dispositivo padrão para caminhos que não incluem um dispositivo
O grub inicialmente define isso para o dispositivo a partir do $ prefix

grub> echo $root
hd0,msdos2

root e prefixo estão apontando para a partição errada (hd0, msdos2)
set $ root e $ prefix para a partição onde encontramos normal.mod (hd0, msdos1)

grub> set root=(hd0,msdos1)
grub> set prefix=(hd0,msdos1)/boot/grub

carregue e execute o módulo normal

grub> insmod normal
grub> normal

Alguns outros comandos que podem ser úteis

ls lista todos os dispositivos e partições

grub> ls
(hd0) (hd0,msdos5) (hd0,msdos1)

partição ls

grub> ls (hd0,msdos1)
        Partition hd0,msdos1: Filesystem type ext* - Last modification time
2014-05-08 15:56:38 Thursday, UUID c864cbdd-a2ba-43a4-83a3-66e305adb1b6 -
Partition start at 1024KiB - Total size 6290432Kib

sistema de arquivos ls (nota / no final)

grub> ls (hd0,msdos1)/
lost+found/ etc/ media/ bin/ boot/ dev/ home/ lib/ lib64/ mnt/ opt/ proc/
root/ run/ sbin/ srv/ sys/ tmp/ usr/ var/ vmlinuz initrd.img cdrom/

veja dentro de / boot / grub presença do diretório i386-pc significa que esta é uma instalação do BIOS presença do diretório x86_64-efi indicaria uma instalação EFI

grub> ls (hd0,msdos1)/boot/grub
i386-pc/ locale/ fonts/ grubenv grub.cfg
por bain 08.05.2014 / 19:58
26

Resolvi isso em uma máquina esta tarde. Parece que uma das causas deste problema é o instalador pensar que você tem inicialização segura EFI, quando você não faz isso e, portanto, carregando os arquivos GRUB incorretos.

O que você precisa fazer é instalar o GRUB 2. Para fazer isso, você precisa inicializar a instância ao vivo, montar sua partição raiz e instalá-la.

Em uma instância ativa, localize a partição na qual sua partição raiz está carregada. GParted vai te dizer isso, ou você poderia usar

sudo fdisk -l

Vá para a partição na qual o Ubuntu é instalado.

Depois de ter sua partição, você precisa montá-la. Supondo que a partição raiz esteja em / dev / sda5, isso seria:

sudo mount /dev/sda5 /mnt

Em seguida, instale o GRUB 2

sudo grub-install /dev/sda --root-directory=/mnt [use copiar e colar para este, pois há alguns espaços que você precisa acertar.]

Assumindo que esse é o seu problema, você deve ser capaz de reinicializar e tudo funcionará bem.

A solução original para isso foi a partir daqui: link

    
por MorrisseyJ 26.04.2013 / 17:58
2

Não encontrei essa informação nos fóruns, por isso quero partilhar algumas informações apesar do facto de esta pergunta ter sido feita há muito tempo:

Se você tem uma partição grande (por exemplo, 1 TB) com o Ubuntu instalado e você não alocou uma adicional para / boot /, pode ser a razão de tais erros. Quando o GRUB é iniciado, ele usa o driver do biosdisk para ler os drivers normais do diretório / boot / grub /. Às vezes, esse diretório pode estar fisicamente localizado no disco rígido em algum lugar após o máximo suportado pelo setor de biosdisk. O problema pode aparecer, por exemplo, após a atualização do sistema. Além disso, estou sempre enfrentando esse problema após a nova instalação do Ubuntu 13.10, mas pode ser diferente, pois depende da placa-mãe / bios.

Você pode verificar isso usando a recuperação do grub - depois de configurar PREFIX e ROOT corretos, tente ls / boot - se você não vir nada, mas puder ver arquivos ao inicializar a partir do LiveCD / flash drive - do que você problema descrito acima.

Você pode fazer coisas diferentes para tornar o sistema inicializável, mas a única maneira de evitar esse problema no futuro (durante dist-upgrades) é colocar o diretório / boot em uma partição pequena separada.

    
por Grief 14.11.2013 / 20:08