openwrt固件格式的選擇
通常github發(fā)布的固件,都提供兩種選擇:.ext4和.squash.
發(fā)布人通常說,老手選擇.ext4,新手選擇.squash.
但這不是全部事實。因為即便是linux,也沒人推薦你一直使用root權(quán)限使用。而.ext4固件就等于你一直用root權(quán)限使用軟路由,這就非常危險。至少.squash還提供了重置的機(jī)會,這當(dāng)然是更好的選擇。
但,這就引出另一個問題,假若我們需要升級軟路由中某些軟件,甚至需要頻繁的升級,固件所提供的/overlay空間慢慢就不夠用了。當(dāng)/overlay寫滿之后,路由器就不能保存任何配置,不能保存任何升級,各種部署好的應(yīng)用慢慢都不能運行了(這種事情通常發(fā)生在軟路由運行一年以上的時候)。新手就會選擇重新刷固件。這就有些煩。
而/overlay本質(zhì)上是不能擴(kuò)容的。但是,它是可以屏蔽的。這就意味著.squash的固件也可以通過屏蔽原始/overlay的方式,給/overlay指定一個新的存儲空間,變相增加/overlay空間,我分配了10G,這就可以不擔(dān)心軟件升級問題,避免路由器存儲空間耗盡。
流行的固件,我見過最多的/overlay空間就是1GB,但是目前的TF卡基本是64GB起步,32GB、16GB產(chǎn)品都已經(jīng)不多了。所以這種固件更多是為了兼容老的存儲卡,或者非常非常廉價的存儲卡,或者不能用存儲卡的軟路由設(shè)備。
基于此,我們當(dāng)然可以手動更改它最初的/overlay空間。只擴(kuò)容/overlay是可以的,因為.squash的所有寫入和配置操作都是在/overlay中進(jìn)行的,這是一個只在邏輯上存在的文件夾,邏輯上和固件核心文件都是隔離的,你怎么改動都不會影響固件最初的本體,路由器讀取/overlay中的配置文件運行,而固件本身文件是不改動的。? ?/overlay可以看成是固件的一個可編輯鏡像。? 這也是.aquash可以重置的原因,重置的原理就是清空/overlay所有數(shù)據(jù),重新復(fù)制固件原始數(shù)據(jù)到/overlay,這就能方便的重新設(shè)置路由器。至少比重新刷固件方便。
【這是最近使用軟路由的備忘錄,以及我一年多以來所遇到的問題,以及解決思路】