1, puppyパッケージマネージャでunionfs-fuseを依存関係も含めてインストール
2, 作業フォルダの作成
例) /root/new/base root/new/changed /root/new/wook
mkdir -p /root/new/{base,changed,wook}
3, 内容を変更するsfsを /root/new/base にマウントする
例)/mnt/home/bionic64/puppy_bionicpup64_8.0.sfs
mount -t squashfs /mnt/home/puppy_bionicpup64_8.0.sfs /root/new/base
*/root/new/baseは読み取り専用でファイルの追加や削除、変更はできない
4, /root/new/baseと/root/new/changedをまとめてCopy on Writeで/root/new/wookにマウント
#参考) まとめて束ねるUnionFSの不思議な世界
https://www.techscore.com/blog/2014/07/ ... o-unionfs/
unionfs-fuse -o cow /root/new/changed=RW:/root/new/base=RO /root/new/wook
* /root/new/wookはァイルの追加や削除、変更が可能なのでここを弄る
5、/root/new/wookに.unionfs-fuse というフォルダが出来るので除外(-e /root/new/wook/.unionfs-fuse)してsfsを作成する
mksquashfs /root/new/wook /root/puppy_bionicpup64_8.0.sfs -b 1048576 -comp xz -e /root/new/wook/.unionfs-fuse
6、アンマウント
umount /root/new/wook
umount /root/new/base
7、作業フォルダを削除
rm -r /root/new
# 3月12日 一部編集