O arquivo de imagem initramfs precisa ser atualizado sempre que o grub.conf é modificado?

1

Estou tentando decifrar um problema de configuração de inicialização do Linux envolvendo o grub legado (0.97), o LVM2 e o dracut e tentando eliminar alguns poucos detalhes.

Meu processo de tentativa e erro é assim:

  1. Modifique o grub.conf
  2. Instale o grub.conf no MBR via shell grub
  3. Reinicializar
  4. Kernel panic

No interesse de remover o # 4, estou faltando uma etapa na qual preciso atualizar a imagem do initramfs?

O que a imagem initramfs contém que pode pertencer a quais sistemas de arquivos são montados durante a inicialização?

Estou tentando descobrir como fazer o script de atualizações por atacado de sistemas em execução com tempo de inatividade mínimo, colocando um novo sistema operacional em uma partição sobressalente do LVM e modificando o grub.conf / menu.lst para inicializar a partir da partição sobressalente.

O sistema operacional é baseado no CentOS 6, e usamos o instalador do Anaconda - por algum motivo, o Anaconda cria um arquivo /boot/grub/grub.conf e o simboliza em /boot/grub/menu.lst .

    
por javanix 24.10.2013 / 00:03

2 respostas

4

Você menciona o grub.conf e o Grub 0.97. Grub 0,97 não usa grub.conf . Usa menu.lst . Parece que você tem os dois binários instalados no seu sistema e você tem atrapalhado um pouco as coisas.

Você não precisa reconstruir seus arquivos initramfs / initrd ao alterar seu grub.conf ou menu.list. Não há quase nenhuma relação entre os dois, pelo menos não em qualquer distro que vi.

Os arquivos grub devem existir fora do initramfs, uma vez que são usados antes do disco ser carregado. O Grub chama o kernel e aponta para o local da imagem do disco RAM. Se você estivesse adicionando outra opção ao seu menu grub para inicializar outro sistema operacional, por exemplo, você não precisaria fazer nada com o initramfs.

Se você alterar alguma coisa sobre como seu sistema é inicializado, talvez seja necessário fazer alterações na configuração do grub e também em outras configurações, o que pode exigir que você atualize seu initramfs. Portanto, talvez seja necessário atualizar os dois, mas não é necessário atualizar o initramfs porque você atualiza o grub ou vice-versa.

    
por 24.10.2013 / 02:21
2

Tem que haver uma partição de inicialização, que armazena

  • grub.conf,
  • o kernel a ser carregado,
  • a imagem do initramfs
  • alguns componentes do grub (normalmente instalados em / boot / grub).

Esta partição de inicialização precisa ser legível pelo grub, então não pode estar dentro do LVM. É uma boa prática criar uma partição primária pequena e separada na frente do disco de inicialização (eu normalmente uso 100MB para isso, normalmente montado como / boot).

O que está presente no initramfs e como ele é configurado depende da sua implementação. Normalmente, sua distro Linux contém sua implementação específica initramfs (então tudo depende de qual distro você usa).

O initramfs tem que ser capaz de montar o sistema de arquivos raiz, e para isso, ele precisará dos módulos do kernel necessários para alcançar aquele disco, partição & sistema de arquivos, a menos que eles já estejam compilados no próprio kernel. Ele também precisa de alguma maneira para especificar sua escolha do sistema de arquivos raiz e as opções de montagem a serem usadas. Algumas implementações precisam atualizar a imagem do initramfs ao alterar algumas configurações, escolhendo um sistema de arquivos raiz diferente ou usando diferentes opções de montagem. No entanto, é possível escrever uma implementação initramfs que não precise de nenhuma atualização, exceto ao alterar / atualizar / recompilar o kernel & os módulos, lendo os parâmetros necessários da linha de comando do kernel. Portanto, para saber exatamente como a implementação do initramfs funciona, você precisa ler o script ou ler a documentação específica da sua distribuição.

    
por 24.10.2013 / 00:22