immortalwrt-25.12.1-x86-64-generic-squashfs-combined-efi.img扩容

参考文档:ImmortalWrt25.12.0 安装后扩容 (for squashfs) <- 被非x86步骤坑了
参考视频:OpenWrt的空间扩容问题,可以这么直接解决!

squashfs = 只读固件分区(rom)+ overlay可写分区
所有插件、配置、docker、下载文件全部存在 overlay。OpenWrt官方原生镜像默认overlay只有 约280MB,非常小!需要扩容才能充分利用磁盘空间

[!NOTE]
额外方案备选(很多人忽略)不扩容overlay!
保持默认小overlay,docker目录迁移到独立数据分区

1
2
>/etc/config/dockerd
>option data_root '/mnt/data/docker'

优势:系统分区压力小,就算docker塞满也不会搞崩OpenWrt本体,我N5105就是这么用。

1. 安装必要的工具

1
apk add fdisk resize2fs blkid

2. 看一下要扩容的硬盘和分区,要记下分区的起始位置(如图示为66048)

image-20260730223212915

3. 输入d删除2分区,并输入n重新创建2分区,起始位置不能变;

一、overlay分区推荐尺寸(按硬盘区分)

内置硬盘容量 overlay推荐大小 说明
16GB SSD 8GB 日常插件 + 少量docker
32GB SSD 12~16GB 主流选择,docker、AdGuard、qBittorrent基础版
64GB SSD 20~32GB 大量容器、网盘、缓存、日志
≥128GB 32~48GB 不建议把整块盘给overlay!剩余空间单独做数据盘

重要忠告
不要把整个硬盘全部划给overlay!
原因:

  1. overlay是系统分区,如果塞满100%,OpenWrt直接卡死、无法登陆、配置损坏;
  2. 下载、PT、媒体文件不要存overlay,建议单独挂载一个独立数据分区存放。

✅ 黄金通用方案(N5105最常用32G NVMe)
overlay 设置 16GB,剩下空间新建ext4分区,挂载为 /mnt/data 存放下载/缓存。

使用建议(避坑关键点)

  1. 日常轻度使用(仅科学上网、防火墙、AdGuardHome)
    32G盘 → overlay 12G足够

  2. 中度使用(Docker,旁路由,多个容器)
    32G盘 → overlay 16G

  3. 重度:Docker+下载工具+大量缓存
    64G盘 → overlay 24G,剩余独立分区放资源

  4. 阈值提醒
    overlay占用尽量不要长期超过85%,定时清理docker镜像、日志。

image-20260730224108084

4. 输入w,写入并退出;

5. 执行 losetup, 显示如下,记住OFFSET数字10223616

1
2
3
root@ImmortalWrt:~# losetup 
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop0 0 10354688 1 0 /nvme0n1p2 0 512

6. 执行 losetup -f -o 10223616 /dev/nvme0n1p2,这里的数字要和上一步的一样

7. 执行 losetup, 查看loop1是否有相同的OFFSET

1
2
3
4
root@ImmortalWrt:~# losetup 
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop1 0 10354688 0 0 /dev/nvme0n1p2 0 512
/dev/loop0 0 10354688 1 0 /nvme0n1p2 0 512

8. 执行一下下述步骤,否则在后续运行resize.f2fs时会失败

1
2
3
mount /dev/loop1 /mnt
ls -l /mnt
umount /dev/loop1

9. 执行 lsblk -f, 查看UUID是否相同

1
2
3
4
5
6
7
8
root@ImmortalWrt:~# lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
loop0 f2fs rootfs_data a1f52071-d12f-441f-97fe-c64ebec45157 234.5M 19% /overlay
loop1 f2fs rootfs_data a1f52071-d12f-441f-97fe-c64ebec45157
nvme0n1
├─nvme0n1p1 vfat kernel 1234-ABCD 23.8M 25% /mnt/nvme0n1p1
├─nvme0n1p2 squashfs 0 100% /rom
└─nvme0n1p128

10. 重要步骤,执行 resize.f2fs /dev/loop1

一连串输出后显示“ Done: 0.215767 secs”表示成功了,秒数各有不同

11. 执行fdisk -l查看nvme0n1p2的Size

1
2
3
4
Device           Start      End  Sectors  Size Type
/dev/nvme0n1p1 512 66047 65536 32M Linux filesystem
/dev/nvme0n1p2 66048 67174399 67108352 32G Linux filesystem
/dev/nvme0n1p128 34 511 478 239K BIOS boot

12-13下面的是x86架构需要做的事,不然会无法正常开机。

12. 获取分区的PARTUUID

image-20260730225829504

13. 编辑grub.cfg文件,将里的PARTUUID全部替换为刚刚拿到的

1
vim /boot/grub/grub.cfg

image-20260730230351897

14. reboot重启就行了

剩余空就可以用来存放Data数据

使用fdisk /dev/nvme0n1创建新分区后,再使用下面的命令格式化新分区(ext4格式)

1
mkfs.ext4 -m 0 /dev/nvme0n1p3

参数解释:

  • -m 0:取消保留 5% 系统预留空间(数据盘不需要)

immortalwrt-25.12.1-x86-64-generic-squashfs-combined-efi.img扩容
https://blog.carlvictor.cn/posts/ee1046fd.html
作者
Carl Victor
发布于
2026年7月30日
许可协议