プライマリシステム(NFS経由でPXEクライアントを提供)が読み取り専用で、ルートファイルシステムが読み取り専用NFSプライマリシステムがlowerdirで、tmpfsが親/作業ディレクトリであるoverridefsファイルシステムであるPXEboot環境を設定しようとしています。 。
OverlayFSを使用するためにAuFS initramfsスクリプトを編集しましたが、うまくいきました。とは別にサブディレクトリ(/ etc / environmentなど)にあるファイルを編集しようとすると、読み取り専用で開きます。これは、新しいファイル(たとえば/ etc / foobar)または親ディレクトリにコピーされたファイルの場合には適用されません。文書。ファイルを編集する前にファイルをタップすると問題が軽減される可能性がありますが、理想的ではなく、他のアプリケーションがクラッシュする可能性があります。
AuFSにはこの問題はありません。どんな提案がありますか?以下は、簡潔にするために編集されたinitramfsスクリプト(/etc/initramfs-tools/scripts/init_bottom/00_overlayfs_init)の関連部分です。
mkdir /overlay
mkdir /local
mkdir /remote
# mount the temp file system and move real root out of the way
mount -t tmpfs none /local
mount --move ${rootmnt} /remote
mkdir /local/rw
mkdir /local/work
mount -t overlayfs -o lowerdir=/remote,upperdir=/local/rw,workdir=/local/work overlay /overlay
#test for mount points on overlay file system
[ -d /overlay/ro ] || mkdir /overlay/remote
[ -d /overlay/rw ] || mkdir /overlay/local
mount --move /remote /overlay/remote
mount --move /local /overlay/local
mount --move /overlay ${rootmnt}
編集:追加情報
Vimなどのエディタを使用して編集しようとすると、vimはファイルを読み取り専用として宣言します:wq!
。E166: Can't open linked file for writing
root@dark-node:~# echo FOO=bar >> /etc/environment
-bash: /etc/environment: Permission denied
root@dark-node:~# echo FOO=bar > /etc/environment
-bash: /etc/environment: Permission denied
root@dark-node:~# touch /etc/environment
root@dark-node:~# echo FOO=bar >> /etc/environment
root@dark-node:~# cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/game::/usr/local/games"
FOO=bar
root@dark-node:~# uname -a
Linux dark-node 4.4.0-57-generic #78-Ubuntu SMP Fri Dec 9 23:50:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
答え1
私は同じ問題を経験しました。 (同じことをしようとしました:PXEブート環境を備えた読み取り専用基本システム)。
私が見る行動は次のようになりますこのUbuntuのバグレポート。変更を書き込めません。既存のファイルを送信する必要がありますが、できることはあります。削除それらは(しかし、それらは子ファイルシステムに保存されています。上位層はそれらの不在のみを記録します。)それから書き直します(この時点で上位層には私が編集できるコピーがあります)。
私が理解したのは、OverlayFSとNFSが一緒にうまく機能しないためです。低いファイルシステムでファイルを変更しようとすると予想される操作は「コピー」と呼ばれ、OverlayFSがNFSファイルシステムを使用しようとすると、NFSはxattrsをサポートしていないため中断されます。
これまで私が見つけることができる唯一の有望なアプローチは、fusion_xattrsを使用してNFSマウントでxattrsをシミュレートできることです(ここで説明)しかし、これには2つのNFS共有マウントポイントが必要です。 1つは「実際の」マウントポイント、もう1つは最初のマウントポイントが必要な「xattr-enhanced」マウントポイントです。