虎泰克博客

(转载)OpenWrt下把SD卡挂载到 /overlay ,扩大软件空间


OpenWrt下把SD卡挂载到 /overlay ,扩大软件空间

在墙内外搜索无数文章,唯有这篇文章能够看得懂并奏效,感谢作者。

虎mx泰bi克mo新udubw闻txwg网yqwpg版权所有,请勿未授权转载!!!

 

虎_efs_泰ype克wn新dym闻xxuyh网wwgnl版权所有,请勿未授权转载!!!

原文地址:https://blog.samnya.cn/mount-sd-card-to-overlay-on-openwrt/  作者:Sam喵

虎u泰saqkr克f新ta闻wvb网hh版权所有,请勿未授权转载!!!

 

虎jpm泰_z克e新qkf闻gya网zbdvs版权所有,请勿未授权转载!!!

原料:Newifi D1(Newifi 2)一台

虎afqh泰l克kte新gfqx闻zov网kip版权所有,请勿未授权转载!!!

这个机子自带了一个 Micro SD 插槽,刷了 OpenWrt 之后一直没怎么用到。闲着来折腾一下把 Micro SD 卡挂载到 /overlay 分区,增加内部可用的空间。

虎lt泰y克wof_n新cdbx闻ns网sztxi版权所有,请勿未授权转载!!!

 

虎mgv泰mofz克or新x闻hna网wiua版权所有,请勿未授权转载!!!

参照 openwet 官方 wiki 上的 exroot 教程,我们要做以下的步骤:

虎xqzts泰qhp克dzqd新sj闻n网m_版权所有,请勿未授权转载!!!

 

虎cyfpj泰mtr克dropj新s闻m_qiv网cwf_z版权所有,请勿未授权转载!!!

首先要使用 Micro SD 卡槽,需要安装以下两个内核模块:

opkg install kmod-sdhci kmod-sdhci-mt7620

 

虎uptx泰duajd克h新oaso闻fgsc_网se版权所有,请勿未授权转载!!!

接下来在 /dev 下应该可以看到有 mmcblk0 的文件了,那就是我们的 Micro SD。

虎go泰sugvq克j新guhzv闻anw_w网dvol_版权所有,请勿未授权转载!!!

 

虎ktd泰re克w新ot闻joln网aod版权所有,请勿未授权转载!!!

然后再安装一些文件系统相关的软件包。

opkg install block-mount kmod-fs-ext4 e2fsprogs fdisk

 

虎_iir泰m克kmj新af闻thngb网tol版权所有,请勿未授权转载!!!

这个时候输入

block info

应该可以看到你的 SD 卡信息。

虎bvce泰z_clo克pht新m闻qb网p版权所有,请勿未授权转载!!!

 

虎pyini泰n克tloqh新w闻j网kj版权所有,请勿未授权转载!!!

这里我们把 SD 卡格式化成 ext4 格式。

mkfs.ext4 /dev/mmcblk0p1

 

虎ft泰obf克h新xt闻lz_on网ackce版权所有,请勿未授权转载!!!

 接下来,转移现有的文件到 SD 卡上。不知道 OpenWrt 中 / 目录和 /overlay 目录的意义的可以看后面。

mount /dev/mmcblk0p1 /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mnt

稍等一会,文件就复制完成了。

虎bln泰pdgfy克wvpk新kws闻u网nnw版权所有,请勿未授权转载!!!

 

虎ca泰nxqh克q新vpej闻dze网dt_io版权所有,请勿未授权转载!!!

接下来要创建 mmcblk0p1 的挂载配置,全自动可以使用以下命令

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;

 

虎eeakc泰k克vvt新rfaps闻dhrut网uaovj版权所有,请勿未授权转载!!!

这样子就可以完成挂载点的设置。

虎x_泰imv克ljhq新qi闻arq网h版权所有,请勿未授权转载!!!

 

虎qw泰hmie克pk新lqt闻lkam网xx版权所有,请勿未授权转载!!!

于是现在来实际把 mmcblk0p1 挂载到 /overlay 上

mount /dev/mmcblk0p1 /overlay

 

虎wbd泰nu_克zzmu新tsf_闻arc网qm版权所有,请勿未授权转载!!!

查看一下挂载后的效果

虎tg泰x克_新a闻swd网p_pyg版权所有,请勿未授权转载!!!

 

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

现在可以看到,/overlay 的空间已经增加了。

虎i泰tpwa克x_hpv新f闻snx网dh版权所有,请勿未授权转载!!!

这时候就可以重启你的路由器了,看看是否成功自动挂载。

虎udzk泰mricz克nyup新b_r闻wejl网lqw版权所有,请勿未授权转载!!!

OpenWrt Software Page

虎bpir_泰rsyqi克ulecx新n闻fepy网gb版权所有,请勿未授权转载!!!

看,这时候想安装什么软件都可以了。

虎oy泰ng克ha新xh闻j网e版权所有,请勿未授权转载!!!

 

附录

/overlay 是什么意思呢?

虎xcqx泰ns克kf新i闻ev网jvwaa版权所有,请勿未授权转载!!!

OpenWRT 一般使用的文件系统是 SquashFS ,这个文件系统的特点就是:只读。

虎kzlz泰vqw克ha新y闻h网txcjj版权所有,请勿未授权转载!!!

那,一个只读的文件系统,是怎么做到保存设置和安装软件的呢?

虎x泰v克me新zg闻jk网_wdfq版权所有,请勿未授权转载!!!

这里就是使用一个 /overlay 的分区,overlay顾名思义就是覆盖在上面一层的意思。

虎yf泰fpa克mc新uq闻fldhw网mr版权所有,请勿未授权转载!!!

虽然原来的文件不能修改,但我们把修改的部分放在 overlay 分区上,然后映射到原来的位置,读取的时候就可以读到我们修改过的文件了。

虎v泰ij克kyj新moles闻rt网zir版权所有,请勿未授权转载!!!

 

虎lss泰omzh克mrly新t闻j网htkq版权所有,请勿未授权转载!!!

但为什么要用这么复杂的方法呢? OpenWRT 当然也可以使用 EXT4 文件系统,但使用 SquashFS + overlay 的方式有一定的优点。

虎rzxo泰hxt克c新nuret闻j_brn网iflr版权所有,请勿未授权转载!!!

首先 SquashFS 是经过压缩的,在路由器这种小型 ROM 的设备可以放下更多的东西。

虎re_泰x克o新n_r闻c网rha版权所有,请勿未授权转载!!!

然后 OpenWRT 的恢复出厂设置也要依赖于这个方式。在你捅 Reset 重置的时候,它只需要把 overlay 分区清空就可以了,一切都回到了刚刷进去的样子。

虎lb泰_克fvxpc新s闻lw网pc版权所有,请勿未授权转载!!!

如果是 EXT4 文件系统,就只能够备份每个修改的文件,在恢复出厂设置的时候复制回来,十分复杂。

虎e泰_ktz克vte新ddc闻cfdk网qfaia版权所有,请勿未授权转载!!!

 

虎vdv泰rimye克vhl新v_mya闻aig网_s版权所有,请勿未授权转载!!!

当然,SquashFS + overlay 也有它的缺点,修改文件的时候会占用更多的空间。

虎juu泰idurp克vlj新ef_e闻j网na版权所有,请勿未授权转载!!!

首先你不能够删除文件,因为删除文件实际上是在 overlay 分区中写入一个删除的标识,反而占用更多的空间。

虎e泰u克gu新aj闻rejd网q版权所有,请勿未授权转载!!!

另外在修改文件的时候相当于增加了一份文件的副本,占用了双份的空间。



Statement: all articles / drawings reproduced on this website are for the purpose of transmitting more information and facilitating discussion, which does not mean that the website, the host and the organizer agree with their opinions or confirm the authenticity of their contents. The contents of the articles are for reference only. If the rights of the original author are violated, please contact the website administrator.

Sign in to comment

Comment list

    No data