Eu fiz uma coisa muito parecida com um sistema MythTV. Cada netboots de máquina frontend sem disco usando DHCP PXE e TFTP. O sistema está executando o Ubuntu 16.04 LTS. (IP 1.1.1.1 é a máquina cliente e 2.2.2.2 é o servidor)
No /etc/dhcp/dhcpd.conf, o IP e o nome do host são atribuídos com base no MAC:
group {
use-host-decl-names on; #forces hostname to host
host bedroom {
hardware ethernet 00:00:00:00:00:00;
fixed-address 1.1.1.1;
}
}
O TFTP chama um script de montagem no init de inicialização, que monta uma home do NFS com base no nome do host. Eu usei o nome do host para legibilidade ao navegar pela estrutura de pastas; você poderia analisar o MAC e usá-lo para o nome da pasta. Arquivo padrão do TFelin pxelinux.cfg:
LABEL linux
DEFAULT vmlinuz-4.4.0-53-generic root=/dev/nfs initrd=initrd.img-4.4.0-53-generic nfsroot=2.2.2.2:/pxeroot init=/boot/mountscript.sh ip=dhcp rw
mountscript.sh:
#!/bin/bash
HOSTNAME='hostname'
MOUNT_OPTS="rw,intr,async,bg,tcp"
mount -t nfs 2.2.2.2:/path/to/homes/home-${HOSTNAME} /home -O MOUNT_OPTS
exec /sbin/init </dev/console >/dev/console 2>&1
Além disso, o / etc / exports tem configurações de exportação do NFS que mapeiam a pasta base necessária para o endereço IP estático exclusivo:
/path/to/homes/home-bedroom 1.1.1.1(rw,async,insecure)
A pasta New homes e as entradas de exportação do NFS para cada nova máquina devem ser adicionadas manualmente.
Observe: este exemplo aplica-se a máquinas de usuário único e uso único que armazenam algumas informações de configuração exclusivas (comandos IR para a TV à qual ele está ligado, principalmente) na pasta principal. Ele alcança seu objetivo declarado de uma pasta pessoal por MAC, mas eu suspeito que a pasta base por usuário é o que você está realmente procurando como menciona joeqwerty. Esta solução não permite que um usuário faça login em qualquer máquina, e exigiria que as pastas pessoais sejam criadas por usuário, por máquina. Isso também significa que sem uma teia confusa de links simbólicos, não haveria uma maneira fácil de acessar os mesmos arquivos em computadores diferentes.