Overlayfsの移行の頭痛の種の1つに出くわしました。 aufsを使用すると、複数のROレイヤーを指定でき、それらの一部のファイルの更新は再マウントで更新されました。
aufsを使用したfstab:
aufs /etc aufs noauto,br:/rw-root/etc=rw:/ro-root/etc=ro:/etc=rr 0 0
Overlayfsと同じ機能:
none /.tmp-root/etc overlayfs noauto,upperdir=/ro-root/etc,lowerdir=/etc 0 0
none /etc overlayfs noauto,upperdir=/rw-root/etc,lowerdir=/.tmp-root/etc 0 0
システムを順番にマウントすれば問題なく、すべてが機能します。この問題は、ro-rootパーティションで何かを更新する必要があるときに発生します。 再マウントを実行すると、/ etcは元のro-rootではなく、すでにマウントされたoverlayfsとして認識されます。 (mount --bind
の取り消し線の問題を解決しました)
どうやら問題はファイルのinode
番号にあります。したがって、ファイルの編集は正常に機能しますが、新しいファイルを下位レベルの古いファイルにコピーすると、変更は反映されません。したがって、これは本当のoverlayfsの問題かもしれません。
このセットアップが引き続き機能することを本当に望んでいます(すべての再構築は、+ 50の仮想マシンに影響するため、避けたいと思う非常に多くの作業とテストです)。そうは言っても、この問題を回避するためにinitrdステージの後にreadonly-rootを安全に移動することを達成する答えを受け入れます。それが不可能な場合は、この移動を達成するためにinitrdを変更/修正/作成する最も最小限の方法を提案します。
別の関連する質問がありますが、それはたった2つのレイヤーの単純な形式です。 Simple overlayfs reload question
最初に/.tmp-reoot/etcでremountを実行してから、/ etcで再マウントしてみましたか
例えば。:
mount -o remount /.tmp-reoot/etc
mount -o remount /etc