Muitas distribuições Linux usam um sistema de arquivos na memória como um sistema de arquivos raiz temporário ao inicializar. Existem duas formas de tais sistemas de arquivos na memória: initrd, a forma tradicional, que é uma unidade de RAM, e initramfs, a forma moderna, que é um sistema de arquivos preenchido por dados de um arquivo.
O trabalho dos programas no initrd (ou initramfs, a diferença é irrelevante aqui) é fazer tudo o que for necessário para montar o sistema de arquivos raiz. Isso inclui o carregamento de módulos para os drivers relevantes (para o disco rígido, para o tipo de sistema de arquivos raiz e para qualquer outra camada de dados, como RAID e criptografia de volume). Isso também inclui tornar o volume da raiz pronto para uso. Solicitar ao usuário a senha de criptografia é uma dessas tarefas.
O initrd é carregado pelo bootloader (Grub, Lilo,…) ao mesmo tempo que o kernel. Geralmente é armazenado no mesmo diretório que o kernel, em /boot
.
A maioria das distribuições organiza a regeneração do initrd sempre que o kernel é atualizado. Você também pode precisar regenerar o initrd em outras circunstâncias, como uma mudança no local do sistema de arquivos raiz ou do tipo de volume. Se o sistema de arquivos raiz estiver criptografado, a distribuição garantirá que o initrd contenha cryptsetup
e crypttab
(são cópias do sistema de arquivos raiz criadas quando o initrd é gerado).