
Ubuntu 20.04を使用してください。シェルを生成するコマンドを手動で呼び出してから、この新しいシェルで2番目のスクリプトを呼び出してファイルシステムの上書きを無効にできます。しかし、私はあなたのコンピュータを自動的に更新できるようにスクリプトを書くのが好きです。
OverlayFSを無効にするために実行した2つのスクリプトは次のとおりです。
スクリプト1:永続的な変更を許可するシェルを開く(overlayroot-chrootは新しいシェルを作成します)
#!/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で生成されたシェル内で実行する必要があります。
しかし、新しく作成されたシェルを実行するためにコマンドをどのように渡しますか?
答え1
それは動作しません。各スクリプトは、独自のPIDを持つ新しいシェルを作成します。
script2.shにbash関数を作成し、script1にソースscript2を作成します。
script1 の script2 にある関数を呼び出します。
スクリプト1
source ./script2.sh
# call the function
do_stuff
スクリプト2
do_stuff() {
echo "hello world"
}
答え2
overlayroot-chrootを実行するコマンドをエコーしてこの問題を解決しました(以前は成功しませんでした)。
echo "source /home/path/to/overlayfs/disable.sh" | sudo overlayroot-chroot