私はbuildrootで構築されたLinuxディストリビューションを実行するカスタムstm32ベースのボードを開発しています。システムはSDカードまたはeMMCフラッシュメモリから起動できます。
SystemDがインストールされました。 rootfsは読み取り専用モードでマウントされ、アプリケーションはeMMCの読み取り/書き込みパーティションにデータを保存できます。
このデータパーティションは、eMMCフラッシュから起動したときにのみマウントされます。これを達成するためにdata.mount
必要な場合に使用する条件を追加できるように、.soという名前のシステムファイルを作成しましたConditionKernelCommandLine
。
[Unit]
Description=Mount persistent data partition in operating mode
Before=local-fs.target
DefaultDependencies=no
ConditionKernelCommandLine=device=emmc
[Mount]
What=/dev/disk/by-label/data
Where=/data
Type=ext4
Options=defaults,noatime
ボードがSDカードから起動すると、データパーティションはマウントされませんが、systemd-fsckで確認を続けます。systemd-fsck@dev-disk-by\x2dlabel-data.service
暗黙的なサービスを実行します。
問題は、eMMCにパーティションがない場合、systemd-fsckがパーティションが表示されるのを待つことです。 90年代が待たれる。
予想される条件のため、fsck 依存関係も実行されません。
カーネルコマンドを使用すると、systemd-fsckを無効にできますが、データパーティションが存在しない場合にのみ無効にしたいと思います。
どんなアイデアがありますか?