Inicialização sem disco do Linux - O compartilhamento NFS não é montado durante a inicialização do ramdisk

4

(Este é o meu primeiro post, então espero formatá-lo corretamente). Eu adicionei o máximo de informações possível sem ser TL: DR.

O meu problema básico é que eu bati nas paredes ao tentar fazer uma inicialização sem disco PXE para um servidor NFS (CentOS 6.7 ou CentOS 7). Eu tentei várias coisas e não consigo replicar o sucesso que tive inicialmente com um servidor e cliente CentOS7. Toda vez que eu sigo minhas anotações agora estou chegando a lugar nenhum.

Os erros mais comuns que estou recebendo (dependendo do arquivo initrd.img ou initramfs * .img que eu uso) é

A ticker of *** that shows a text-based progress bar and the message

A start job is running for dev-nfs.device (xx s / 1min 30s)

Em seguida, expira e diz

Timed out waiting for device dev-nfs.device
Dependency failed for File System Check on /dev/nfs
Dependency failed for /sysroot
Dependency failed for Initrd Root File System
Dependency failed for Reload Configuration from the Real Root

O erro acima ocorre quando copio (qualquer um dos) initramfs-3.10. *. img de / boot / para o local da imagem PXE.

Se eu tentar gerar um novo arquivo de imagem initramfs do dracut, ele também lançará o erro acima.

dracut initramfsnew.img

Pode ser que eu não saiba como gerar um initramfs adequado ou realmente não entendo as funções initrd.img e initramfs. Acredito que o tempo limite esteja acontecendo porque os drivers NFS ainda não estão carregados nesse estágio do processo de inicialização, portanto, o cliente não pode montar corretamente o compartilhamento NFS. A razão que eu acho é que eu iniciei exatamente o mesmo cliente PXE em seu sistema operacional local e montei o compartilhamento NFS manualmente e ele funciona 100%, então o compartilhamento NFS está ativo e funciona. Acredito que entendi errado como o initrd.img e o initramfs * .img funcionam.

Se eu baixar o initrd.img de um site espelho do CentOS, recebo 90% do caminho e, em seguida, o erro muda para

No /sbin/init trying fallback

Agora estou em um (por falta de um termo melhor, meio carregado) shell que me dá navegação básica do compartilhamento NFS. Eu posso ir para o / home / disklessuser / e até escrever no NFS ou ler novos arquivos do NFS (testados simples comandos 'touch' no servidor e no cliente). O que parece estar faltando, principalmente, é a opção de login nesta instância, bem como um limite apropriado para os diretórios (ou seja, parece que eu estou logado como root neste ponto da inicialização).

A configuração básica é bem padrão AFAIK:

/var/lib/tftpboot/pxelinux.cfg/default contains (deixei de fora os bits que sei que funcionam - o PXE funciona e aponta para a imagem certa, etc.):

menu label ^1) CentOS 7
  kernel /images/centos7/vmlinuz
  append root=/dev/nfs initrd=/images/centos7/initrd.img nfsroot=10.10.10.10:/srv/nfs/diskless/images/centos7/root rw selinux=0

Eu tentei variantes dos itens acima, como substituir o initrd.img pelo initramfs3.10 * .img (várias versões localizadas no servidor / boot /) e tentei adicionar parâmetros como

ip=dhcp

porque a documentação do dracut sugere que isto irá dizer para obter o caminho nfsroot do DHCP em vez do menu PXE.

Atualmente, tenho o meu DHCP configurado da seguinte forma:

subnet 10.10.10.0 netmask 255.255.255.0 {
   option broadcast-address 10.10.10.255;
   option routers 10.10.10.1;
   range 10.10.10.100 10.10.10.150;

   next-server 10.10.10.10;
   option root-path "10.10.10.10:/var/lib/tftpboot";
   filename "pxelinux.0";
}

Possivelmente isso está em conflito com o compartilhamento NFS prescrito no menu PXE?

De qualquer forma, eu apreciaria qualquer orientação - talvez o mais pertinente para mim é o que fazer com o initrd ou o initramfs. Eu presumo que não há muito diferente sobre ambos, mas como um deles geraria um novo que deveria (espero) incluir drivers de rede básicos para permitir uma montagem NFS?

Em segundo lugar, por que o / sbin / init está ausente quando estou próximo da solução quando uso o initrd.img armazenado no diretório espelho do CentOS em / os / x86_64 / isolinux?

    
por Brattex 15.03.2016 / 10:32

1 resposta

0

você pode inicializar o CentOS-7.0-1406-x86_64-DVD.iso com HTML em vez de NFS com

kernel   = /NWA_PXE/$HEAD_DIR$/images/pxeboot/vmlinuz 
append   = initrd=/NWA_PXE/$HEAD_DIR$/images/pxeboot/initrd.img root=live:http://$IP_BSRV$/$HEAD_DIR$/LiveOS/squashfs.img ksdevice=bootif repo=http://$IP_BSRV$/$HEAD_DIR$/ 
ipappend = 2

fonte Serva

você pode facilmente mudá-lo para o NFS se realmente for necessário

    
por 15.03.2016 / 23:47