我们安装 OpenWrt 之后默认的存储空间都很小,如果你是通过下载其他大佬的固件,一般磁盘大小在编译固件的时候大小就固定死了,如果要跑 docker 的话会连个镜像都拉取不下来,若我们想要充分折腾软路由,则需要对 OpenWrt 进行扩容,然后就可以愉快的玩耍了 。
本教程扩容方案本人仅在 vmware 虚拟机里面做测试通过,理论适用于物理机进行安装,参考文章请自行斟酌。
关闭 OpenWrt,建议给虚拟机拍个快照,防止搞炸了重装浪费时间,然后新增一块磁盘,我这里直接新增一个 5G 大小的硬盘做测试,然后打开 OpenWrt 电源。
安装必要工具。
opkg update # 更新
opkg install fdisk # 安装工具,有的话就不用执行了
执行命令fdisk -l
,确认自己的磁盘编号
root@OpenWrt:~# fdisk -l
Disk /dev/loop0: 214.06 MiB, 224460800 bytes, 438400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
GPT PMBR size mismatch (1065503 != 1065534) will be corrected by write.
The backup GPT table is corrupt, but the primary appears OK, so that will be used.
The backup GPT table is not on the end of the device.
Disk /dev/sda: 520.28 MiB, 545553920 bytes, 1065535 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 8E2DA755-0E50-0BD5-63C5-B1DC8E810D00
Device Start End Sectors Size Type
/dev/sda1 512 41471 40960 20M Linux filesystem
/dev/sda2 41472 1065471 1024000 500M Linux filesystem
/dev/sda128 34 511 478 239K BIOS boot
Partition table entries are not in disk order.
Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
这里可以看到编号
/dev/sdb
是我刚刚添加的5G硬盘
使用 fdisk /dev/sdb
给新磁盘分区,全部使用默认值就可以了。最后输入w保存分区表并退出 ,按照提示操作即可。
root@OpenWrt:~# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.38).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xbd5366e9.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-10485759, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-10485759, default 10485759):
Created a new partition 1 of type 'Linux' and of size 5 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
使用 mkfs.ext4 /dev/sdb
文件系统格式化分区刚才的分区。
root@OpenWrt:~# mkfs.ext4 /dev/sdb
mke2fs 1.46.5 (30-Dec-2021)
Found a dos partition table in /dev/sdb
Proceed anyway? (y,N) y
Creating filesystem with 1310720 4k blocks and 327680 inodes
Filesystem UUID: 752b4263-c24e-46cb-8e35-7e991898e6f6
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
挂载分区后的磁盘,拷贝 /overlay 目录下原来的文件到此目录下。
root@OpenWrt:~# mkdir -p /mnt/sdb # 创建挂载目录
root@OpenWrt:~# mount /dev/sdb /mnt/sdb ## 挂载
root@OpenWrt:~# ls /mnt/sdb # 查看是否挂载成功,只要有lost+found文件就对了
lost+found
root@OpenWrt:~# cp -r /overlay/* /mnt/sdb ## 拷贝文件
root@OpenWrt:/mnt/sdb# ls /mnt/sdb ## 有如下文件就对了
etc lost+found upper work
接下来就是进到OpenWrt系统后台,找到挂载点-先点击全局设置里面的生成配置按钮,然后拉到底部挂载点,可以看到我们刚才挂载的磁盘,然后点击修改。
当然有人会说如果我给虚拟磁盘分配了10G,可不可以使用剩余空间扩容,当然也是OK的,只是在格式化的磁盘的时候选择你对应剩余空间的编号即可,如果你需要此方案,你可以看下文章末尾的参考链接里面的一些文章。
OpenWrt 存储空间扩容的两种方案 OpenWrt扩展根目录 虚拟机下的OpenWrt磁盘Overlay扩容 软路由探索之旅 篇三:给openwrt扩容overlay 3月30日更新 OpenWrt 安装后扩容(非overlay)