OverlayによるLINUX OSのROM化

提供:sufeeWiki
2023年7月22日 (土) 14:25時点におけるSufee Admin (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

質問

ではこれを 起動時に処理するようにしてください。

# 必要なディレクトリを作成

mkdir /mnt/upper mkdir /mnt/lower


# Upper Layerのデバイスをマウント

# /dev/sdX1 は、適切なデバイスを指定してください(例:/dev/sdb1など)

mount /dev/sdX1 /mnt/upper


# Lower Layer(ストレージのROM化されたデータ)を読み込み専用でマウント

# UUIDがhogehogeのデバイスを使用します

mount -o ro UUID=hogehoge /mnt/lower


# メモリ上にtmpfsを作成してWorkdirをマウント

mount -t tmpfs tmpfs /mnt/overlay-work


# overlayファイルシステムを作成してマウント

mount -t overlay overlay -o lowerdir=/mnt/lower,upperdir=/mnt/upper,workdir=/mnt/overlay-work /mnt/overlay-root


# オーバーレイ化したファイルシステムを / に移動

umount /mnt/overlay-root mount --move /mnt/overlay-root /


# マウントポイントの設定を保存

echo "UUID=hogehoge /mnt/lower ext4 ro 0 1" >> /etc/fstab echo "overlay / overlay rw 0 1" >> /etc/fstab echo "tmpfs /mnt/overlay-work tmpfs defaults 0 0" >> /etc/fstab

回答

起動時に自動的に上記の処理を行うようにするには、上記のコードをスクリプトとして保存し、/etc/rc.local ファイルに追加します(もしくは systemd サービスとして実行する方法もあります)。/etc/rc.local ファイルにスクリプトを追加すると、システム起動時に自動的に実行されます。

以下は手順の概要です:

  1. 上記のコードをテキストエディタで開き、内容をコピーして新しいファイル(例えば、overlay_setup.sh)に保存します。
  2. ファイルを実行可能にします:chmod +x overlay_setup.sh
  3. /etc/rc.local ファイルをテキストエディタで開き、/etc/rc.local ファイルの最後の行(exit 0 の前)に以下の行を追加します: ここで、/path/to/overlay_setup.shoverlay_setup.sh スクリプトのフルパスを指定します。例えば、スクリプトが /root/overlay_setup.sh に保存されている場合、/root/overlay_setup.sh のように指定します。
  4. ファイルを保存して終了します。

これで、システム起動時に/etc/rc.local ファイルが実行され、overlay_setup.shスクリプトが自動的に実行されるようになります。スクリプトが正しく実行されると、overlayファイルシステムが起動時に構築され、指定した条件を満たすことができるはずです。