跳转至

硬盘扩容

OpenWrt 安装成功后,磁盘空间才 86 Mib,没安装几个软件就不够用了,这怎么能忍? 默认配置

准备工作

本教程基于 SquashFS 文件系统的 OpenWrt,如果是基于 ext4 系统话,应该会更简单。在扩容前需要安装几个特定的工具,cfdiskresize2fslosetup,导航至【软件包】-【过滤器】

【过滤器】输入 losetup,点击下方【安装】 losetup

【过滤器】输入 cfdisk,点击下方【安装】 cfdisk

【过滤器】输入 resize2fs,点击下方【安装】 resize2fs

ESXi 虚拟磁盘扩容

在进行磁盘扩容前,必须完全关闭 OpenWrt 虚拟机,在 ESXi 管理界面确认虚拟机状态为"已关闭电源" 开始操作。

扩展虚拟磁盘

工具安装成功后,先扩充物理磁盘,导航至【虚拟机】选择虚拟机后编辑,将硬盘设置成想要的大小,陈大剩设置成了 3 GB 扩充虚拟主机物理磁盘

验证磁盘扩展

虚拟机启动后,通过 SSH 连接验证磁盘是否成功扩展:

Bash
# 查看分区信息
cat /proc/partitions
查看分区信息 可以看到分区信息 sda 中多很了多。

OpenWrt 系统层面扩容

连接系统

使用 ttyd 工具 或 SSH 连接到 OpenWrt 命令行: 登录 SSH 可通过命令,查看一下原始磁盘的大小

Bash
# 查看磁盘使用情况
df -h
验证磁盘扩展

扩充磁盘

扩充磁盘按照如下命令操作:

使用 cfdisk 命令查看磁盘状态,能看到有 2.9 G 的空余磁盘(Free space),选择需要扩容的第二个磁盘,选择【Resize】回车 查看磁盘状态

弹出来 New size 输入要扩大的大小,陈大剩这里默认是 3 G New size

扩充成功后选,选择【Write】回车 写入磁盘

写入磁盘后,会弹出确认写入操作,输入【yes】回车后,选择【Quit】回车 确认写入

设置循环

扩充磁盘后,还需要设置循环,目前还只用了 cfdisk 工具,接下来使用 losetupresize2fs 工具,输入如下命令

Bash
losetup /dev/loop0 /dev/sda2
resize2fs -f /dev/loop0
不出意外,能看到如下结果
Text Only
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/loop0 is mounted on /overlay; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 24
The filesystem on /dev/loop0 is now 3123008 (1k) blocks long.

提示

循环设备是 Linux 内核提供的一种虚拟块设备,它可以将一个普通文件映射为块设备来使用。

简单来说,就是让系统把一个文件当作硬盘分区来操作

重启系统

看到结果后,使用命令重启 OpenWrt:

Bash
reboot

验证扩容结果

系统重启后,验证扩容是否成功:

Bash
# 查看磁盘使用情况
df -h

# 查看覆盖文件系统大小
df -h /overlay

# 查看可用空间
df -h | grep overlay
成功扩容后的输出示例: 成功扩容后的输出示例

结果

通过上述步骤后,能看到软件包已经扩容成功,还是不能忍,可以继续加空间 结果


创建日期: 2025年7月22日 最后更新: 2025年8月11日