Os parâmetros transmitidos na linha de comando do kernel não precisam ser significativos para o kernel: a documentação dos parâmetros do kernel diz
The kernel parses parameters from the kernel command line up to “–”; if it doesn’t recognize a parameter and it doesn’t contain a ‘.’, the parameter gets passed to init: parameters with ‘=’ go into init’s environment, others are passed as command line arguments to init. Everything after “–” is passed as an argument to init.
Isso não se aplica a init e root , que são realmente parâmetros do kernel e são manipulados pelo kernel. Eles também podem ser manipulados pelo espaço do usuário, uma vez que aparecem em /proc/cmdline . (Assim, por exemplo, o systemd considera o parâmetro quiet do kernel para reduzir sua saída.)
Quando o kernel é inicializado com um initramfs, os parâmetros init e root não são usados pelo kernel diretamente; no que diz respeito ao kernel, eles são fallbacks caso o initramfs não funcione (mas eles ainda são parâmetros do kernel). O initramfs em si é o sistema de arquivos raiz (pelo menos para inicialização), e o kernel procura por um executável init no diretório raiz do initramfs e executa isso. Se alguma coisa falhar (o initramfs não é utilizável, ou não contém /init , ou o último não é executável), o kernel tentará montar o dispositivo especificado por seu parâmetro root e executar /sbin/init ou o executável especificado pelo parâmetro init .