Live CD: o script não funciona corretamente após o login

0

Eu tenho um servidor PXE / NFS (192.168.1.10), um PC cliente e um PC sem disco. Eu instalei o Ubuntu 12.04 base para o PC cliente. Eu escrevi este script (update.sh) para funcionar após o login no PC cliente.

SERVER=192.168.1.10
echo "Copying files"
mount $SERVER:/srv/nfs/updatefiles  ~/nfs
cp ~/nfs/file.txt ~/texts/
umount ~/nfs
echo "Reconfigure SSH"
dpkg-reconfigure openssh-server
echo "Completed"

Alterei chown e chmod e adicionei permissão no final dos sudoers.

sudo chown root:root ~/updatefiles/update.sh
sudo chmod 700 ~/updatefiles/update.sh
sudo nano /etc/sudoers
- hduser ALL=(ALL) NOPASSWD:/home/hduser/updatefiles/update.sh

Eu criei .bash_profile para invocar este script após o login.

sudo nano ~/.bash_profile
- sudo $HOME/updatefiles/update.sh

Funciona corretamente após a reinicialização do PC cliente. Então eu criei um live cd do linux (ubuntu.iso) do PC cliente usando o Relinux (um implemento de remastersys). Eu copiei ubuntu.iso para o servidor NFS e inicializei o PC sem disco via PXE / NFS. Estou recebendo essa mensagem de erro após o login no PC sem disco.

Copying files
mount.nfs: /home/hduser/nfs is busy or already mounted
umount.nfs: /home/hduser/nfs: device is busy
debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable.
Completed

Às vezes, o NFS mount funciona e algumas vezes reconfigura o SSH, mas, na maioria das vezes, estou recebendo esse erro. Eu adicionei sleep 5 ao topo do script para fazer isso funcionar, mas recebi a mesma mensagem de erro novamente. Ele funciona corretamente quando invoco update.sh manualmente após o login ser concluído. O que está causando esse erro? Obrigado por qualquer ajuda.

    
por Eyüp Alemdar 16.03.2014 / 14:00

1 resposta

0

Eu corri este script como Radu explicou aqui . Ele executará o comando mount a cada 3 segundos porque alguns processos mantêm arquivos abertos para gravação:

while :; do mount $SERVER:/srv/nfs/updatefiles ~/nfs && break || sleep 3; done

Lazy desmontar depois de tudo:

umount -l ~/nfs
    
por 17.03.2014 / 07:31