前言

之所以会知道这个东西是前天入手了移动RAX3000M 64G EMMC 算力版

我有一定的洁癖,固件要用官方的。插件自己动手装。不用的插件就不装。

按照官方教程:

https://github.com/openwrt/openwrt/pull/13513
官方固件下载:https://firmware-selector.openwrt.org/?version=23.05.3&target=mediatek%2Ffilogic&id=cmcc_rax3000m

从官方教程里摘抄出来的:

eMMC Flash instructions:
1. SSH to RAX3000M, and backup everything, especially 'factory' part.
   ('data' partition can be ignored, it's useless.)
2. Write new GPT table:
   dd if=openwrt-mediatek-filogic-cmcc_rax3000m-emmc-gpt.bin of=/dev/mmcblk0 bs=512 seek=0 count=34 conv=fsync
3. Erase and write new BL2:
   echo 0 > /sys/block/mmcblk0boot0/force_ro
   dd if=/dev/zero of=/dev/mmcblk0boot0 bs=512 count=8192 conv=fsync
   dd if=openwrt-mediatek-filogic-cmcc_rax3000m-emmc-preloader.bin of=/dev/mmcblk0boot0 bs=512 conv=fsync
4. Erase and write new FIP:
   dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=13312 count=8192 conv=fsync
   dd if=openwrt-mediatek-filogic-cmcc_rax3000m-emmc-bl31-uboot.fip of=/dev/mmcblk0 bs=512 seek=13312 conv=fsync
5. Set static IP on your PC:
   IP 192.168.1.254, GW 192.168.1.1
6. Serve OpenWrt initramfs image using TFTP server.
7. Cut off the power and re-engage, wait for TFTP recovery to complete.
8. After OpenWrt has booted, perform sysupgrade.
9. Additionally, if you want to have eMMC recovery boot feature:
     (Don't worry! You will always have TFTP recovery boot feature.)
   dd if=openwrt-mediatek-filogic-cmcc_rax3000m-initramfs-recovery.itb of=/dev/mmcblk0p4 bs=512 conv=fsync

就是你从任何一个可以ssh进去的固件(不管是官方的固件还是你的OPENWRT固件),ssh登进去,然后参考他的代码把下载的三个(gpt,preloader,uboot)文件写进去。到第5步的时候直接跳第9步,把恢复固件直接刷进去。然后再跳第5步接着做。第6步是让你开一个TFTP服务器,路由开机的时候读取服务器的固件来开机。TFTP服务器MacOS是自带的。可以使用。但笔者尝试没有成功。不知道为什么。最后用了MacOS里的虚拟机Windows11开了tftpd64,就成功了。
首次启动后直接从网页luci升级到最新系统。笔者今天升级的是23.05.3
启动后一切好像很正常,就是这个64G的EMMC并没有完全利用。overlay只有92M,装了个passwall和python3可是根本就不够啊。因为以前有用过USB的U盘给OPENWRT扩容,就想着把剩余空间分多个区,然后挂载到OVERLAY上去就可以了。于是安装了fdisk,把剩余的58G分了一个新区,想着按照以前的方式挂载到OVERLAY就可以了。结果弄了一天,还不行!!!

正文-如何扩展系统分区并扩容/overlay和根分区/

无论怎么做,都无法让系统在开机的时候挂载,所以进系统后,根分区都没有变化,软件里一直是只有92M!!!!

查阅了大量资料,最终在官方的两个链接知道,这是一个缺陷。挂载别的分区到/overlay只有在NAND开机的系统上才可以?????只要/overlay不是在/proc/mtd 上面的,都不能在启动阶段读取fatab。

https://openwrt.org/docs/guide-user/additional-software/extroot_configuration
https://forum.openwrt.org/t/boot-errors-on-fstab/37649
https://github.com/openwrt/openwrt/issues/7352

如此,那怎么办?实在没法就得从分区扩容入手了。

刚好看到这篇:

https://forum.openwrt.org/t/resize-emmc-partition-and-attended-sysupgrade/181712

这个兄弟面临和我一样的问题。在回答中,有个答案链接:

https://forum.openwrt.org/t/bpi-r3-resetting-reformatting-emmc/180463/20

里面有一个叫Sailor的,回答可以直接调整系统分区大小。实际上,他说的不详细,但他说的是对的。

答案里说的是香蕉派的一个路由板。处理器和RAX3000M一样,而且讨论的也是emmc的空间问题。

这里我们说的是/dev/mmcblk0p5这个系统盘。如下图:

可以看到系统盘 /dev/mmcblk0p5只有104m。

我们可以用cfdisk,来给它扩容。

opkg update
opkg install cfdisk
cfdisk /dev/mmcblk0

然后我们就看到了cfdisk的界面,我没有截图,大概如下图:

这时选中/dev/mmcblk0p5,然后选Resize,默认回车好像就是扩容了后面的全部剩余空间。这里我是只扩容了2GB,如下图。记得要Write,保存一下,再退出。

这时你会看到 /dev/mmcblk0p5有了2个GB,或者是58GB。重启,固件却依然是92m的/overlay。

我到这一步时是直接就sysupgrade, 就是直接在luci网页重新刷了固件。 刷完后/overlay和 / 根分区直接就是2G,就是你分的容量。至此折腾结束。

By bamboo

Leave a Reply

Your email address will not be published. Required fields are marked *