UnionFS

UnionFS 可以拿來 "merge" 不同的目錄成一個,讓 user 只需進入一個目錄,便可以同時間存取我們所 merge 進來,散落各處的目錄。


應用在 EPC 上:/dev/sda1 存放著系統檔案,/dev/sda2 為 empty partition。開機時先將 sda1 與 sda2 mount 起來,然後再 union 它們。


作法大概如下。


mount /dev/sda1 /mnt-system
mount /dev/sda2 /mnt-user
mount -t unionfs -o dirs=/mnt-user=rw:/mnt-system=ro none /mnt


/mnt-user 為 rw,有較高的 priority。/mnt-system 為 read-only,priority 較低。


開機時,df 可以看到 / 是 unionfs。UnionFS 這兒有所謂的 copyup 和 whiteup,分別用在 copy 與 write 時。由於 /mnt-system 是 read-only,所以當我們去修改其中一個檔案時,實際上 unionfs 會在 /mnt-user 中先複製一份(連 parent directory 都會一同複製),並將修改的內容存入。新增一個檔案也是一樣道理。


換句話說,所有我們開機後做的動作,通通都存放在 sda2 中。sda1 是不會動到的。


那這樣要回復 factory default 就很簡單,format sda2 就好了。


詳細資料可參考 Wiki 中的 UnionFS
http://en.wikipedia.org/wiki/UnionFS


 


留言

熱門文章