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
- Manual do Grub: Solução de problemas: o GRUB oferece apenas um shell de resgate abrange o método básico de recuperação descrito acima
- Para ver os comandos e variáveis disponíveis, consulte Grub Manual: A lista de comandos de entrada de linha de comando e menu e Variáveis de ambiente especiais .
- Pode ser possível carregar outros módulos ausentes, por exemplo se os comandos
search
ousearch.file
não forem reconhecidos, defina$prefix
corretamente e, em seguida, façainsmod search
, parals
doinsmod ls
etc. Executefind /boot/grub -name *.mod
em uma instalação Linux funcional para ver todos os dinamicamente módulos Grub carregados. - Você pode sempre apenas inicialize a partir de mídia externa e reinstale o Grub .