ImmortalWrt扩容

如何xxx

#type / howto #status / evergreen

[!info] related notes

ImmortalWrt扩容

这次扩容过程虽然波折,但最终通过 DiskMan 插件修改分区表 + 系统重启自动触发文件系统拉伸 成功完成了。

以下是使用 DiskMan 插件为 ImmortalWrt (OpenWrt) 扩容的标准流程总结:


第一步:环境准备

  • 安装工具:确保系统安装了 luci-app-diskman 及其依赖(fdiske2fsprogs 等)。
  • 确定分区:通常需要扩容的是根目录分区(/dev/sda2),它紧邻磁盘末尾的“空闲空间(Free Space)”。

第二步:修改分区表(GUI 操作)

  1. 进入插件:在 Web 界面访问 “系统” -> “磁盘管理”
  2. 编辑磁盘:点击对应磁盘(如 /dev/sda)右侧的 “编辑” 按钮。
  3. 调整分区
  • 方式 A:点击 sda2 右侧的 “扩容”,将容量拉满。
  • 方式 B:在 Free Space 行点击 “新建”。在某些智能版本中,这会自动将空闲空间合并到上一个分区(即 sda2)。
  1. 应用更改:点击保存,此时 分区表(Partition Table) 已完成更新,但文件系统尚未识别新空间。

第三步:拉伸文件系统(核心环节) 不好说!

由于 ImmortalWrt 的 EXT4 镜像通常关闭了 resize_inode 特性,导致无法在系统运行时“在线扩容”,因此有两条路:

  1. 尝试命令行:输入 resize2fs /dev/sda2
  • 如果显示 Filesystem is now ... blocks long,则扩容成功。
  • 如果显示 Invalid argument,说明内核锁定了分区,必须执行下一步。
  1. 重启系统(离线自动扩容)
  • 输入 reboot 重启。
  • 原理:Combined 类型的镜像在启动初期会检测分区大小。如果分区已变大但文件系统未填充,系统脚本会在挂载根目录前自动完成扩容。

第四步:验证结果

  • 重启进入系统后,在终端输入 df -h
  • 查看 /dev/root/ 的容量。如果显示为 30G-40G(取决于你分配的大小),则流程圆满结束。

⚠️ 避坑小贴士

  • 引导风险:修改分区表后,PARTUUID(分区唯一标识符)可能会改变。如果重启后卡在 Waiting for root device,需手动进入 GRUB 修改 root=PARTUUID=...root=/dev/sda2 引导修复。
  • 分区类型:此流程仅适用于 EXT4 格式的固件;如果是 SquashFS 格式,无法直接扩容,只能通过新建分区并挂载到 /overlay 的方式实现。 不好说!!

上面由 AI 生成感觉部分问题存疑

创建于 2026/1/1 更新于 2026/5/27