OpenWrt 扩容磁盘方案及实操

2022-11-29 17:28:24 浏览数 (1)

开篇

我们安装 OpenWrt 之后默认的存储空间都很小,如果你是通过下载其他大佬的固件,一般磁盘大小在编译固件的时候大小就固定死了,如果要跑 docker 的话会连个镜像都拉取不下来,若我们想要充分折腾软路由,则需要对 Open­Wrt 进行扩容,然后就可以愉快的玩耍了 。

说明

本教程扩容方案本人仅在 vmware 虚拟机里面做测试通过,理论适用于物理机进行安装,参考文章请自行斟酌。

步骤

  1. 先查看扩容前默认可使用的空间大小,我这里指剩下了129.40MB。

关闭 OpenWrt,建议给虚拟机拍个快照,防止搞炸了重装浪费时间,然后新增一块磁盘,我这里直接新增一个 5G 大小的硬盘做测试,然后打开 OpenWrt 电源。

安装必要工具。

代码语言:javascript复制
opkg update # 更新
opkg install fdisk # 安装工具,有的话就不用执行了

执行命令fdisk -l ,确认自己的磁盘编号

代码语言:javascript复制
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保存分区表并退出 ,按照提示操作即可。

代码语言:javascript复制
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 文件系统格式化分区刚才的分区。

代码语言:javascript复制
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 目录下原来的文件到此目录下。

代码语言:javascript复制
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系统后台,找到挂载点-先点击全局设置里面的生成配置按钮,然后拉到底部挂载点,可以看到我们刚才挂载的磁盘,然后点击修改。

  1. 点击修改之后进入到如下界面,确保启用此挂载点是勾选状态,挂载点选择 作为外部overlay使用,保存&应用,然后重启OpenWrt。
  1. 如果操作没错的话,再次查看空闲空间就是我们设置的空间了。

扩展

当然有人会说如果我给虚拟磁盘分配了10G,可不可以使用剩余空间扩容,当然也是OK的,只是在格式化的磁盘的时候选择你对应剩余空间的编号即可,如果你需要此方案,你可以看下文章末尾的参考链接里面的一些文章。

参考文章

OpenWrt 存储空间扩容的两种方案 OpenWrt扩展根目录 虚拟机下的OpenWrt磁盘Overlay扩容 软路由探索之旅 篇三:给openwrt扩容overlay 3月30日更新 OpenWrt 安装后扩容(非overlay)

0 人点赞