Como a documentação do kernel afirma, /dev/nfs
não é um dispositivo real, mas apenas uma sugestão para o kernel usar o NFS como rootfs
. Você também terá que informar ao kernel onde encontrar essa raiz através do parâmetro nfsroot
ou um daemon DHCP configurado corretamente. Para este último funcionar, você também terá que configurar seu kernel para configurar automaticamente suas interfaces de rede ou ter um initramfs
que cuida disso.
Além disso, certifique-se de ter o suporte ao NFS embutido em seu binário do kernel e não como um módulo (ou tenha um initramfs
, que cuida disso). O mesmo vale para os drivers de rede: você provavelmente desejará ter o driver para sua placa ethernet embutida em sua imagem do kernel, caso contrário você terá que carregá-la de um initramfs
.
Em suma, existem várias possibilidades:
- Faça como o link acima informa: tenha
root=/dev/nfs
set, forneça o parâmetronfsroot
correto e informe ao seu kernel sua configuração de rede por meio do parâmetroip
(essa seria a melhor maneira de ter certeza de que está funcionando , ou seja, excluir um servidor DHCP mal configurado). - Tenha
CONFIG_IP_PNP
eCONFIG_IP_PNP_DHCP
ativado e configure um daemon DHCP para informar ao seu cliente qual endereço IP usar e onde encontrar sua raiz NFS. - Compile um
initramfs
que faz a configuração correta e a montagem do NFS.
Editar: acho que se você estiver usando um initrd
/ initramfs
como sua edição sugere, você terá que fazer a montagem NFS no initrd
(resp. o seu initrd
tem que estar ciente do fato de que tem que fazer isso). A automontagem através do kernel (como configuração automática de IP, IIRC) só funciona se não houver initrd
.