「OverlayによるLINUX OSのROM化」の版間の差分

提供:sufeeWiki
ナビゲーションに移動 検索に移動
編集の要約なし
編集の要約なし
4行目: 4行目:
<nowiki>#</nowiki> 必要なディレクトリを作成  
<nowiki>#</nowiki> 必要なディレクトリを作成  


mkdir /mnt/upper mkdir /mnt/lower  
mkdir /mnt/upper mkdir /mnt/lower  




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


mount /dev/sdX1 /mnt/upper  
mount /dev/sdX1 /mnt/upper  




18行目: 18行目:
<nowiki>#</nowiki> UUIDがhogehogeのデバイスを使用します  
<nowiki>#</nowiki> UUIDがhogehogeのデバイスを使用します  


mount -o ro UUID=hogehoge /mnt/lower  
mount -o ro UUID=hogehoge /mnt/lower  




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


mount -t tmpfs tmpfs /mnt/overlay-work  
mount -t tmpfs tmpfs /mnt/overlay-work  




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


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




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


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




<nowiki>#</nowiki> マウントポイントの設定を保存  
<nowiki>#</nowiki> マウントポイントの設定を保存  


echo "UUID=hogehoge /mnt/lower ext4 ro 0 1" >> /etc/fstab  
echo "UUID=hogehoge /mnt/lower ext4 ro 0 1" >> /etc/fstab  


echo "overlay / overlay rw 0 1" >> /etc/fstab  
echo "overlay / overlay rw 0 1" >> /etc/fstab  


echo "tmpfs /mnt/overlay-work tmpfs defaults 0 0" >> /etc/fstab
echo "tmpfs /mnt/overlay-work tmpfs defaults 0 0" >> /etc/fstab


== 回答 ==
== 回答 ==

2023年7月22日 (土) 14:27時点における版

質問

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

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

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ファイルシステムが起動時に構築され、指定した条件を満たすことができるはずです。