Como posso saber se o grub está instalado em um disco e se é quais configurações ele possui (notadamente, o que ele tem para o parâmetro raiz)
Preciso verificar muitos discos nas matrizes RAID1 de software para garantir que os dois discos tenham o grub instalado, com o grub em cada disco tendo o valor raiz apropriado.
software-raid
grub
DrStalker
fonte
fonte
grub
0,9x ou menos estava em uso comum e muito antes de ser renomeadogrub-legacy
. Se isso o incomoda, sugiro fazer uma nova pergunta especificamente sobregrub2
. alternativamente, realize uma campanha corrigindo todas as perguntas e respostas que se tornaram obsoletas ao longo do tempo.Respostas:
ATUALIZAR:
Esta resposta é de 2009 e se aplica ao grub-legacy, não ao grub2.
Você pode usar
file
para identificar o GRUB em um MBR. por exemploO
root=
paramater não é armazenado no MBR, é armazenado nomenu.lst
arquivo do GRUB que é armazenado em um sistema de arquivos (normalmente no diretório / boot / grub do root fs ou no diretório grub do sistema de arquivos / boot - mas nem sempre, ele pode estar em qualquer lugar).Você terá que analisar a saída do arquivo acima, determinar em qual disco / partição o
menu.lst
arquivo está, montá-lo, lê-lo e analisá-lo. Você também desejará ler o arquivo grub / padrão para descobrir qual entrada do menu grub é a padrão, porque provavelmente é aquele que possui o parâmetro root = no qual você está mais interessado.fonte
Método Alternativo
file -s
não funcionou para mim no Ubuntu Lucid porque os arquivos mágicos do meu comando file estavam desatualizados . Outra maneira de fazer isso se seus arquivos mágicos não tiverem alcançado as alterações do GRUB é examinar os primeiros 512 bytes do dispositivo usando odd
comando da seguinte maneira:Isso envia a saída do
dd
comando através dostrings
comando, eliminando caracteres não imprimíveis (as estatísticas de transferência são descartadas/dev/null
).Se você vir alguma mensagem que o GRUB exibirá quando encontrar uma falha, você terá o grub instalado.
Dica para o louib no ubuntuforums.org por responder nesta postagem protegida por senha: http://ubuntuforums.org/showthread.php?t=363372
Para os curiosos, é disso que recebi
file -s
:Não há nada sobre o GRUB lá especificamente.
fonte
file -s
comando originalmente usa o grub-pc, que é aparentemente o GRUB2, então parece que você está parcialmente correto. No entanto, eu corrifile -s
em alguns outros sistemas executando o GRUB 0.97 e em alguns funcionou enquanto em outros não. A diferença entre esses sistemas estava nos números nos arquivos mágicos que acompanham o comando file. A troca de arquivos de números mágicos confirmou que as definições do sistema não funcional causaram falha no sistema ativo.Você pode usar
grub-emu
para ver o menu que o grub mostrará quando a máquina reiniciar novamente.Na minha máquina desktop, o menu era exibido conforme o esperado, embora, se eu realmente fingisse inicializar um kernel, recebi um erro "sem esse dispositivo". Eu acho que esse é o comportamento esperado.
No meu DigitalOcean VPS, nenhuma entrada foi exibida no menu grub, embora o servidor realmente tenha reiniciado bem. (Este é um VPS de 2013, portanto, sua milhagem pode variar.)
Algumas notas ao executar
grub-emu
:c
e digitandoexit
.reset
. (Não se preocupe, isso não reiniciará sua máquina. Apenas limpará seu terminal.)fonte
c
seguido deexit
não funcionou para mim.