Live CD:登录后脚本无法正常工作

Live CD:登录后脚本无法正常工作

我有一台 PXE/NFS 服务器 (192.168.1.10)、一台客户端 PC 和一台无盘 PC。我在客户端 PC 上安装了基础 ubuntu 12.04。我编写了这个脚本 (update.sh),以便在登录到客户端 PC 后运行。

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

重启客户端 PC 后,它正常工作。然后我使用 Relinux(remastersys 的一个工具)从客户端 PC 创建了一个 Linux Live CD(ubuntu.iso)。我复制ubuntu.iso到 NFS 服务器并通过 PXE/NFS 启动无盘 PC。登录无盘 PC 后,我收到此错误消息。

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

我按照 Radu 的解释运行了这个脚本这里. 它将每 3 秒运行一次 mount 命令,因为有些进程保持文件打开以供写入:

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

一切完成后延迟卸载:

umount -l ~/nfs

相关内容