fstab および systemd 自動マウントのオーバーライド

fstab および systemd 自動マウントのオーバーライド

Yocto Linuxベースの組み込みデバイスでは、私のrootfsはROであり、RWデータ用の追加パーティションがあります。これで、ブート時に別のパーティションに保存されている/ etcにオーバーレイを自動的にマウントしたいと思います。これは私のfstabです。

/dev/mmcblk0p6 /data_local ext4 defaults,sync,noexec,rw 0 2
[...]
overlay /etc overlay defaults,lowerdir=/etc,upperdir=/data_local/overlayfs/upper/etc,workdir=/data_local/overlayfs/workdir,X-mount.mkdir,x-systemd.requires=/data_local,x-systemd.before=local-fs.target,x-systemd.before=systemd-networkd 0 0

ただし、最初の起動時に upperdir ディレクトリと workdir ディレクトリがないため、この操作は失敗します。これらのディレクトリを自動的に生成するには、fstabまたはsystemd.mountをどのように取得しますか?

答え1

私は結局Yocto 4.0から利用可能なYoctoのoverridefs-etc.bbclass機能を使用するようになりました。マニュアルは次の場所にあります。https://docs.yoctoproject.org/ref-manual/classes.html#ref-classes-overlayfs-etc

bbclassオーバーレイがインストールされる前に実行時にフォルダが作成されるように、/ sbin / initのinitプロセスにパッチを適用します。望むより:https://git.yoctoproject.org/poky/plain/meta/files/overlayfs-etc-preinit.sh.in

画像にこれを追加するのはとても簡単です。

machine.confに追加します。

OVERLAYFS_ETC_MOUNT_POINT = "/data_local"
OVERLAYFS_ETC_DEVICE = "/dev/mmcblk0p6"
OVERLAYFS_ETC_FSTYPE = "ext4"
OVERLAYFS_ETC_MOUNT_OPTIONS = "defaults,sync"

画像に追加:

IMAGE_FEATURES:append = " overlayfs-etc"

もちろん、ブートメディアに利用可能な追加の読み取り/書き込みインストールパーティションがあることを確認する必要があります(SDカードのフラッシュイメージにあります)。私の場合はmmcblk0p6です。

関連情報