起動時にユーザーオーバーレイをインストールするには、どのファイルを変更する必要がありますか?

起動時にユーザーオーバーレイをインストールするには、どのファイルを変更する必要がありますか?

Arm Cortex A9を使用して組み込みデバイスを開発しています。カーネルバージョンはbuildroot 2018.05によって生成された4.16.0です。ストレージメモリは複数のパーティションを持つMMCです。 U-bootはパーティションからuImageを読み取り、カーネルを起動します。ファイルシステムはカーネルイメージに含まれており、起動時にinitramfsにロードされます(設定:BR2_TARGET_ROOTFS_INITRAMFS)。

overlayfsを使用してフォルダ(mmc)を「ユーザー」ファイルシステムとして使用します/

次の行を追加して、次の名前でディレクトリを/etc正常に上書きしようとしました。/data/etc/etc/fstab

/dev/mmcblk0p1 /data auto defaults 1 2
overlay /etc overlay x-systemd.requires=/data,lowerdir=/etc,upperdir=/data/etc,workdir=/data/work/etc 0 0

これは機能しますが、systemdがサービスを開始した後にオーバーレイがインストールされます。たとえば、ネットワーク設定は私のファイルシステムではなくuImageuserの設定です。 systemdを起動する前に、インストール直後に/オーバーレイをインストールしたいと思います。

起動時にシステムがRAMに最初のメモリ空間を作成し、そこからcpioイメージを抽出することがわかりました。/そこにインストールすると、システムは最初のプログラムであるPID systemd:/sbin/init1を起動します。私の理解は正しいですか?

多くの記事やQ&Aサイトを読んでいますが、起動時に上書きするにはどこを変更する必要があるかはまだわかりません。これを含むファイルは何ですかmount /

ベストアンサー1

この起動時の操作はinitramfsにあります。必要に応じinitramfs/scriptsてファイルシステムを(再)マウントするためにスクリプトを追加し、init-bottom新しいinitramfsパッケージを作成する必要があります。

initこのスクリプトは、カーネルプロセスが終了するとファイルシステムの前に実行されますinit。混乱する理由は、設定コードがファイルシステムに直接配置されず、initramfsファイルにあるためです。

おすすめ記事