使用Ubuntu20.04。我可以通过手动调用创建shell的命令来禁用覆盖文件系统,然后从这个新shell中调用第二个脚本。然而,我希望能够脚本它,以便我可以自动更新一台pc。
下面是我运行到diable OverlayFS的两个脚本:
脚本1:打开一个允许永久更改的shell (overlayroot-chroot创建一个新的shell)
#!/bin/bash
# Enter chroot mode, which allows one to make permanent changes to / parition
echo "Enter mood to make permanent changes"
echo "Press CTRL+D to exit when finished editing"
sudo overlayroot-chroot脚本2:进行更改
#!/bin/bash
# Disable OverlayFS
echo "Disable overlayfs (read only file system at /)"
FILE=/etc/overlayroot.conf
cat << EOF | sudo tee $FILE
overlayroot_cfgdisk="disabled"
overlayroot=""
EOF
echo "COMPLETE."
echo "Press CTRL+D to exit chroot mode."
echo "Then 'sudo reboot' for the changes to take effect."脚本2需要在脚本1创建的shell中运行。
但是,如何通过命令来运行新创建的shell呢?
发布于 2022-03-12 10:00:11
那不管用。每个脚本都用自己的PID生成一个新的shell。
我将在script2.sh中创建bash函数,在script1中创建源代码script1。
从script2调用script1中的函数。
source ./script2.sh
# call the function
do_stuffdo_stuff() {
echo "hello world"
}发布于 2022-03-12 10:07:54
通过简单地回显命令以遇到overlayroot-chroot (我以前还没有成功)解决了这个问题:
echo "source /home/path/to/overlayfs/disable.sh" | sudo overlayroot-chroothttps://unix.stackexchange.com/questions/694056
复制相似问题