背景
私はdracutを使ってカスタムinitrdを構築しています。それ:
- ext4 ディスクパーティションを次にマウントします。
/data
- ネットワーク経由で保存されたsquashfs画像の検索
/data
- Squashfsのインストール
/sysroot
サブディレクトリと/data/overlay
親ディレクトリとしてsquashfsミラーにoverlayfsをインストールします。- マウント
/data
をバインドします。/sysroot/data
最後の手順は、新しいルートで新しいイメージをデータファイルシステムに書き込むことで上書きを確認できるように完了しました。私が知っている限り、これは新しいルートでは実行できません。
systemd.mountデバイスを使用してこれらのマウントを実装しています(たとえば、最後のマウント)。
[Unit]
After=sysroot.mount
After=data.mount
[Mount]
Where=/sysroot/data
What=/data
Type=none
Options=bind
[Install]
WantedBy=initrd.target
質問
/sysroot/data
残念ながら、systemdはswitch_rootの前に削除されます。また、/data
squashfs イメージをマウント解除しようとしますが、そのイメージが使用中であるため失敗します。
これらのインストールを維持するようにsystemdに指示する方法はありますか?私が読んで文書ストレージデーモンに対してこれを行う方法については、インストールに対して実行する方法を指定しません。
答え1
/data を /sysroot/data にバインドマウントする必要はありません。
initrdを終了すると、問題なくブロックデバイスを再マウントできます。mount /dev/sda1 /data