Qual é a diferença entre initrd e initramfs?

12

Gostaria de saber qual a diferença entre initrde initramfs?

Sen
fonte

Respostas:

12

O Initrd foi descontinuado, substituído pelo Initramfs, que não possui alguns dos pontos fracos do initrd:

  • O Initrd requer que pelo menos um driver de sistema de arquivos seja compilado no kernel
  • Um disco criado pelo Initrd precisa ter um tamanho fixo
  • Todas as leituras / gravações no Initrd são armazenadas em buffer de forma redundante (desnecessariamente) na memória principal

Eu acho que isso é tudo.


Como esse comando update-initramfs gera /boot/initrd.img?

Ele transforma os arquivos necessários em um cpio arquivo morto , que é um formato de arquivo binário (muito semelhante ao tar, não é amplamente utilizado no Linux) e, em seguida, usa o gzip para compactar esse arquivo morto. O gzip não é um arquivo compactado, apenas uma compactação (é por isso que você obtém arquivos .tar.gz).

No momento da inicialização, o arquivo é descompactado e descompactado em um    disco ram .

Veja também: Como um computador é inicializado

Stefano Palazzo
fonte
"O Initrd requer que pelo menos um driver de sistema de arquivos seja compilado no kernel". Eu tenho muita idéia disso. Poderia explicar isso??
Sen
Normalmente, os drivers do sistema de arquivos podem ser aparafusados ​​no sistema operacional à vontade, para algumas coisas eles precisam ser compilados diretamente no kernel. O que é chato, já que todas as versões do kernel precisam ser personalizadas, aumentar, introduzir dependências adicionais e assim por diante. (Pelo menos é o que eu acredito ser o caso, pode muito bem estar errado, eu não tenho um grande conhecimento sobre sistemas de arquivos especificamente)
Stefano Palazzo
É como o initramfs não precisa ser montado inicialmente?
Sen
Todos os sistemas de arquivos precisam ser montados antes de poderem ser utilizados. Se você quiser aprender mais sobre o initramfs, dê uma olhada em en.wikipedia.org/wiki/Initrd - há uma explicação muito mais detalhada.
Stefano Palazzo
Como esse comando update-initramfs gera /boot/initrd.img?
Sen
3
  • O initrd foi baseado em dispositivo de bloco, o initramfs é a base de arquivos.

  • com o initrd, você criou uma imagem do sistema de arquivos. com o initramfs, você cria um archive com os arquivos que o kernel extrai para um tmpfs.

karthick87
fonte
você poderia me explicar as etapas desde o início até o carregamento e a leitura do initramfs?
Sen