原料:Newifi D1(Newifi 2)一臺(tái)
這個(gè)機(jī)子自帶了一個(gè) Micro SD 插槽,刷了 OpenWrt 之后一直沒怎么用到。閑著來折騰一下把 Micro SD 卡掛載到 /overlay 分區(qū),增加內(nèi)部可用的空間。
參照 openwet 官方 wiki 上的 exroot 教程,我們要做以下的步驟。
首先要使用 Micro SD 卡槽,需要安裝以下兩個(gè)內(nèi)核模塊:
opkg install kmod-sdhci kmod-sdhci-mt7620
接下來在 /dev 下應(yīng)該可以看到有 mmcblk0 的文件了,那就是我們的 Micro SD。
然后再安裝一些文件系統(tǒng)相關(guān)的軟件包。
block-mount kmod-fs-ext4 e2fsprogs fdisk
這個(gè)時(shí)候輸入
block info
應(yīng)該可以看到你的 SD 卡信息。
這里我們把 SD 卡格式化成 ext4 格式。
mkfs.ext4 /dev/mmcblk0p1
接下來,轉(zhuǎn)移現(xiàn)有的文件到 SD 卡上。不知道 OpenWrt 中 / 目錄和 /overlay 目錄的意義的可以看后面。
mount /dev/mmcblk0p1 /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mnt
稍等一會(huì),文件就復(fù)制完成了。
接下來要?jiǎng)?chuàng)建 mmcblk0p1 的掛載配置,全自動(dòng)可以使用以下命令
block detect > /etc/config/fstab; \
sed -i s/option$'\t'enabled$'\t'\'0\'/option$'\t'enabled$'\t'\'1\'/ /etc/config/fstab; \
sed -i s#/mnt/mmcblk0p1#/overlay# /etc/config/fstab; \
cat /etc/config/fstab;
這樣子就可以完成掛載點(diǎn)的設(shè)置。
于是現(xiàn)在來實(shí)際把 mmcblk0p1 掛載到 /overlay 上
mount /dev/mmcblk0p1 /overlay
查看一下掛載后的效果
df
root@OpenWrt:/dev# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 2560 2560 0 100% /rom
tmpfs 126944 1308 125636 1% /tmp
/dev/mtdblock6 3756448 31236 3514680 1% /overlay
overlayfs:/overlay 28224 7976 20248 28% /
tmpfs 512 0 512 0% /dev
/dev/mmcblk0p1 3756448 31236 3514680 1% /overlay
現(xiàn)在可以看到,/overlay 的空間已經(jīng)增加了。
這時(shí)候就可以重啟你的路由器了,看看是否成功自動(dòng)掛載。
看,這時(shí)候想安裝什么軟件都可以了。
/overlay 是什么意思呢?
OpenWRT 一般使用的文件系統(tǒng)是 SquashFS ,這個(gè)文件系統(tǒng)的特點(diǎn)就是:只讀。
那,一個(gè)只讀的文件系統(tǒng),是怎么做到保存設(shè)置和安裝軟件的呢?
這里就是使用一個(gè) /overlay 的分區(qū),overlay顧名思義就是覆蓋在上面一層的意思。
雖然原來的文件不能修改,但我們把修改的部分放在 overlay 分區(qū)上,然后映射到原來的位置,讀取的時(shí)候就可以讀到我們修改過的文件了。
但為什么要用這么復(fù)雜的方法呢? OpenWRT 當(dāng)然也可以使用 EXT4 文件系統(tǒng),但使用 SquashFS + overlay 的方式有一定的優(yōu)點(diǎn)。
首先 SquashFS 是經(jīng)過壓縮的,在路由器這種小型 ROM 的設(shè)備可以放下更多的東西。
然后 OpenWRT 的恢復(fù)出廠設(shè)置也要依賴于這個(gè)方式。在你捅 Reset 重置的時(shí)候,它只需要把 overlay 分區(qū)清空就可以了,一切都回到了剛刷進(jìn)去的樣子。
如果是 EXT4 文件系統(tǒng),就只能夠備份每個(gè)修改的文件,在恢復(fù)出廠設(shè)置的時(shí)候復(fù)制回來,十分復(fù)雜。
當(dāng)然,SquashFS + overlay 也有它的缺點(diǎn),修改文件的時(shí)候會(huì)占用更多的空間。
首先你不能夠刪除文件,因?yàn)閯h除文件實(shí)際上是在 overlay 分區(qū)中寫入一個(gè)刪除的標(biāo)識(shí),反而占用更多的空間。
另外在修改文件的時(shí)候相當(dāng)于增加了一份文件的副本,占用了雙份的空間。
聯(lián)系客服