时隔多年再次重装 OpenWrt,早已忘记当初的安装方法。许多教程已经过时或缺少关键细节,因此记录本文以便日后查阅,也方便有需要的人参考。如有问题,欢迎在评论区讨论。本文仅作为参考,请谨慎操作,数据风险自负。
本文将演示如何在树莓派4B上安装 ImmortalWrt 并进行扩容。
1. 安装 ImmortalWrt
ImmortalWrt 是 OpenWrt 的一个分支 ,它移植了更多的软件包,支持更广泛的设备,默认优化了配置文件,并为中国大陆用户进行了本地化修改。
1.1 下载 ImmortalWrt
前往 ImmortalWrt 固件选择工具 下载对应固件:
搜索设备型号,查找对应固件。

每个设备一般会对应四个固件:

- SYSUPGRADE vs. FACTORY:
- FACTORY 固件是用于首次安装ImmortalWrt。
- SYSUPGRADE 固件是用于升级已经运行ImmortalWrt的设备,它会保留你的配置。
- EXT4 vs. SQUASHFS:
- EXT4 是一个可读写的日志文件系统,更灵活,可以更方便地修改系统文件。
- SQUASHFS 是一个只读的压缩文件系统,通常与一个小的可写分区(如JFFS2或UBI)结合使用。它在系统稳定性、节省空间和抗意外修改方面有优势。如果系统被破坏,可以更容易地恢复到初始状态。
首次安装,选择 FACTORY 版本,树莓派设备推荐使用 EXT4。
下载 FACTORY(EXT4) 的版本。
1.2 烧录 ImmortalWrt
利用 rufus 工具将上一步得到的 immortalwrt-[版本号]-bcm27xx-bcm2711-rpi-4-ext4-factory.img.gz 直接烧录到内存卡,保持 rufus 默认设置即可。
2. 初始化系统
2.1 连接与首次登录
ImmortalWrt 不再默认创建 Wi-Fi 热点,所以需要通过有线的方式连接到它。
把内存卡插到树莓派中,接通电源。然后用一个网线连接树莓派和电脑。
在电脑上访问 192.168.1.1
。默认账号名为 root,密码为空。
登录后按照提示修改默认密码。
2.2 配置网络
进入 “网络” - “接口”,然后编辑默认 lan 接口。

根据实际需求配置网络。
由于我将其作为旁路由使用,所以设置了静态 IP 地址,并指定了相应的网关和 DNS。且在“DHCP 服务器”界面,勾选“忽略此接口”。
确认无误后,点击“保存并应用”,并强制执行。
然后,就可以用网线将树莓派连接到路由器了。
3. 扩容分区
完成后上述步骤后,ImmortalWrt 就能正常使用了。但是默认 ImmortalWrt 只用了 300MB 的储存,并没有用完整张储存卡。所以可用空间很少,并且被浪费。
接下来我们来扩容。
安装需要用到的工具
opkg update opkg install fdisk resize2fs losetup
查看当前分区状况
fdisk -l
你会看到类似下面的输出(120GB 的内存卡,只用了 64MB + 300MB):
重新分区
进入 fdisk 工具:
fdisk /dev/mmcblk0
输入
p
查看分区表,记住第二分区开始的位置:输入
d
删除第二个分区:输入
n
重新创建分区:- 分区类型:选择
p
,或直接回车使用默认值。 - 分区序号:选择
2
,或直接回车使用默认值。 - 起始扇区:输入之前记录的
147456
(根据实际情况替换,使用原起始扇区)。 - 结束扇区:可以指定大小,或直接回车使用默认值,默认值是占用所有剩余空间。
- 当提示是否移除标识:输入
N
。
最后,输入
w
确认并执行变更:- 分区类型:选择
再次查询分区情况,可以看到第二个分区现在已经扩大。
fdisk -l
接下来还需要让系统能够识别这个分区:
先查看当前是否有循环设备:
losetup
此时,输出可能为空。或者有一些设备。在下个命令中,不要与已有设备冲突,可以用
loop1
或其他未使用的编号。创建循环设备:
losetup /dev/loop0 /dev/mmcblk0p2
扩展文件系统到分区全部空间:
resize2fs -f /dev/loop0
重启系统,网页访问树莓派,可以看到扩容成功,磁盘空间大小已经更新。
reboot

4. 参考链接
https://blog.caliburn.work/archives/1709726837347