ImmortalWrt扩容
如何xxx
#type / howto
#status / evergreen
[!info] related notes
ImmortalWrt扩容
这次扩容过程虽然波折,但最终通过 DiskMan 插件修改分区表 + 系统重启自动触发文件系统拉伸 成功完成了。
以下是使用 DiskMan 插件为 ImmortalWrt (OpenWrt) 扩容的标准流程总结:
第一步:环境准备
- 安装工具:确保系统安装了
luci-app-diskman及其依赖(fdisk、e2fsprogs等)。 - 确定分区:通常需要扩容的是根目录分区(
/dev/sda2),它紧邻磁盘末尾的“空闲空间(Free Space)”。
第二步:修改分区表(GUI 操作)
- 进入插件:在 Web 界面访问 “系统” -> “磁盘管理”。
- 编辑磁盘:点击对应磁盘(如
/dev/sda)右侧的 “编辑” 按钮。 - 调整分区:
- 方式 A:点击
sda2右侧的 “扩容”,将容量拉满。 - 方式 B:在
Free Space行点击 “新建”。在某些智能版本中,这会自动将空闲空间合并到上一个分区(即sda2)。
- 应用更改:点击保存,此时 分区表(Partition Table) 已完成更新,但文件系统尚未识别新空间。
第三步:拉伸文件系统(核心环节) 不好说!
由于 ImmortalWrt 的 EXT4 镜像通常关闭了 resize_inode 特性,导致无法在系统运行时“在线扩容”,因此有两条路:
- 尝试命令行:输入
resize2fs /dev/sda2。
- 如果显示
Filesystem is now ... blocks long,则扩容成功。 - 如果显示
Invalid argument,说明内核锁定了分区,必须执行下一步。
- 重启系统(离线自动扩容):
- 输入
reboot重启。 - 原理:Combined 类型的镜像在启动初期会检测分区大小。如果分区已变大但文件系统未填充,系统脚本会在挂载根目录前自动完成扩容。
第四步:验证结果
- 重启进入系统后,在终端输入
df -h。 - 查看
/dev/root或/的容量。如果显示为 30G-40G(取决于你分配的大小),则流程圆满结束。
⚠️ 避坑小贴士
- 引导风险:修改分区表后,PARTUUID(分区唯一标识符)可能会改变。如果重启后卡在
Waiting for root device,需手动进入 GRUB 修改root=PARTUUID=...为root=/dev/sda2引导修复。 - 分区类型:此流程仅适用于 EXT4 格式的固件;如果是 SquashFS 格式,无法直接扩容,只能通过新建分区并挂载到
/overlay的方式实现。 不好说!!
上面由 AI 生成感觉部分问题存疑