У меня есть сервер PXE/NFS (192.168.1.10), клиентский ПК и бездисковый ПК. Я установил базовую Ubuntu 12.04 на клиентский компьютер. Я написал этот скрипт (update.sh) для работы после входа в систему на клиентском ПК.

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"

Я изменил chown и chmod и добавил разрешение в конце 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

Я создал .bash_profile чтобы вызвать этот скрипт после входа в систему.

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

Он работает правильно после перезагрузки клиентского ПК. Затем я создал linux live cd (ubuntu.iso) с клиентского ПК с использованием Relinux (орудия remastersys). Я скопировал ubuntu.iso на NFS-сервер и загрузил бездисковый ПК через PXE/NFS. Я получаю это сообщение об ошибке после входа на бездисковый компьютер.

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

Иногда монтирование NFS работает, а иногда переконфигурирование SSH работает, но в основном я получаю эту ошибку. Я добавил sleep 5 в начало скрипта, чтобы он заработал, но я снова получил то же сообщение об ошибке. Он работает правильно, когда я update.sh вручную после завершения входа в систему. Что вызывает эту ошибку? Спасибо за любую помощь.

1 ответ1

0

Я запускаю этот скрипт, как объяснил Раду здесь. Он будет запускать команду монтирования каждые 3 секунды, поскольку некоторые процессы сохраняют файлы открытыми для записи:

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

Ленивое размонтирование после всего сделанного:

umount -l ~/nfs

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .