I am little confused about initramfs and initrd, if they are the same thing.
Eles não são "a mesma coisa" . É por isso que eles têm nomes diferentes.
No entanto, eles podem servir ao mesmo propósito, ou seja, um sistema de arquivos raiz inicial.
Eles diferem no método de implementação, ou seja, como eles existem na memória.
Um initrd é um ramdisk inicial. Um disco virtual é um dispositivo de bloco que existe na memória, normalmente alocado fora da memória principal, em oposição a um dispositivo de bloco que usa armazenamento em massa. O uso do initrd no Linux está obsoleto em favor do initramfs.
Um initramfs é um ramf inicial. Um ramfs utiliza o cache do sistema de arquivos existente como meio de armazenamento. Os ramfs podem armazenar tantos dados quanto a memória disponível.
Does initramfs loads into the memory first and then kernel is loaded into memory and then kernel loads the drivers from the initramfs image file including the systemd process.
Não, pois sua descrição não faz sentido (por exemplo, "o initramfs é carregado na memória" ).
O programa de inicialização (por exemplo, Grub, U-Boot) deve carregar o kernel na memória principal do dispositivo de inicialização.
Se houver um initrd, o programa de inicialização também deverá carregar um arquivo de imagem dele.
or both grub loads both initramfs and kernel into memory simultaneously. then kernel extract the contents on initramfs to proceed further to systemd startup
Fechar.
Se houver um initramfs em vez de initrd, um arquivo cpio será vinculado à imagem do kernel.
Durante a inicialização, o kernel cria um initramfs vazio. O arquivo cpio anexado é então extraído para preencher os ramfs iniciais.
A documentação oficial do Linux é aqui com mais detalhes.