由于设备需要能回复出产设置功能,以前都是将最原始的文件都备份一份, 但是目前存在一个问题:系统升级后只是修改了一小部分文件,很多内容没有修改,这样就导致备份的大多数内容其实在浪费空间;那能不能和fork 那样做到cow呢?也就是升级的时候你要修改此文件,我才去备份!这样节约存储空间。so可以参考docker的aufs文件系统来设计自己的系统数据盘
mount -n -t aufs -o br:/fp/modified/root=rw :/fp/update/root=ro+wh :/fp/orig/root=rr,noatime unionfs /union_root
当需要修改一个文件,而该文件位于低层branch时,顶层branch会直接复制低层branch的文件至顶层再进行修改,而低层的文件不变,这种方式即是CoW技术(写复制),AUFS默认支持Cow技术。
当删除一个低层branch文件时,只是在顶层branch对该文件进行重命名并隐藏,实际并未删除文件,只是不可见,这种方式即AUFS的whiteout(写隐藏)。
mount -n -t aufs -o \ br:/fp/modified/root=rw\ :/fp/update/root=ro+wh\ :/fp/orig/root=rr,noatime unionfs /union_root /bin/mount -n -t aufs -o remount,udba=notify,noatime,noxino unionfs /union_root mount -n -t aufs -o \ br:/fp/modified/fpwork=rw\ :/fp/update/fpwork=ro+wh\ :/fpwork=rr,noatime unionfs /union_root/fproot/fpwork /bin/mount -n -t aufs -o remount,udba=notify,noatime,noxino unionfs /union_root/fproot/fpworkView Code