2007/10/31

Eee PC 中的小學問 - 有關檔案系統



1. AMI BIOS
2. 開機畫面 (Grub吧)
3. 裝載(只讀) /dev/sda1 為 / 檔案系統,執行 /sbin/fastinit
4. 使用 unionfs 裝載(可寫入) /dev/sda2 為 / 檔案系統上的 overlay *
5. 開始的時候 fastinit 會載入硬體的驅動程式 (LAN, wifi 等)
6. 運行 startx, startx 會執行 icewm 和華碩自己的 GUI - AsusLauncher
7. 開機完成,大約16秒

* 有關 overlay
很久以前的 Linux Live CD 都是只讀的系統,很多程式不喜歡這種限制的環境,
而且只有 650M 左右的地方放檔案,不足夠。
後來就出現了壓縮檔案系統 - squashfs,大大的壓縮比,解決了空間的問題,
可是還只是唯讀。
最後出現了一個兩全其美的解決方法 - squashfs 加上 unionfs,unionfs
的作法是把兩個分割區或者檔案系統堆叠(stack)在一起,有任何寫入/刪除
的動作都做在最後 stack 上去的檔案系統,因此 Live CD 可以用 squashfs
做底層,再用記憶體做 RAM Disk 放上面,模擬一個“正常”的檔案系統給
Live 操作系統用了。
在 Eee PC 上,華碩運用了這個原理做出可以隨時還完的方法,就是把預設的
系統都放到 sda1 上,裝載成唯讀(就像Live CD),再把 sda2 堆叠上去
成可寫入,那麼無論用戶怎樣玩死這個系統,sda1也是原來的樣子,所謂
還原只是把 sda2 重新格式化就行了。
華碩這個設計真聰明!

[這篇文章同時發佈在 XEPC.org]