OpenWrt 存储空间扩容的两种方案

420次阅读
没有评论

共计 4463 个字符,预计需要花费 12 分钟才能阅读完成。

说明:当我们通过群晖 VMM 虚拟机安装 Open­Wrt 时,默认会分配一个 10GB 的存储空间,而实际情况中 Open­Wrt 存在大量的剩余空间是未被使用的,典型的铺张浪费有木有?Open­Wrt 实际使用容量完全取决于 Open­Wrt 编译时所设置的固件大小。若我们想要充分折腾软路由,则需要对 Open­Wrt 进行扩容。

对于存储空间扩容的思路主要有两种:利用剩余的存储空间或是添加一块新的磁盘进行扩容。本文将以两个小示例分别介绍这两种扩容方案具体的实现步骤,以供大家举一反三。如果你也有扩容的需求,可部分参考本文,其实逻辑上相通。

OpenWrt 扩容方案

注意⚠️:本文教程基于运行的群晖VMM虚拟机,x86_64 平台 + EXT4 文件系统的 Open­Wrt;对于squashfs 文件系统及硬路由的扩容方案可能并不适用。

1. 前期准备

1.1 如果你怕操作出错,可进入 虚拟机 找到正在运行的 Open­Wrt 虚拟机,点击 操作 – 拍快照 方便出错时可以快速恢复。

OpenWrt 存储空间扩容的两种方案
1.2 通过 Xshell、Putty 等 SSH 终端工具登录 Open­Wrt ,安装磁盘分区工具:

opkg update
opkg install cfdisk fdisk e2fsprogs

命令行中 cfdisk 、fdisk 均为磁盘分区工具,e2fsprogs 包含了 mkfs 命令,用于格式化分区。

2. 方案一:利用剩余空间扩容

2.1 创建新分区

SSH 终端运行 cfdisk 命令进入磁盘分区界面,通过键盘上下键切换到 Free space (剩余空间),左右键切换至 NEW (新增分区),然后按下回车键。

OpenWrt 存储空间扩容的两种方案
分区类型设置为 Primary (主分区),按下回车键。

OpenWrt 存储空间扩容的两种方案
左右键切换 Write 按下回车键,写入新分区。

OpenWrt 存储空间扩容的两种方案
输入 yes 按下回车键,确认写入新分区。

OpenWrt 存储空间扩容的两种方案
切换 Quit ,按下回车键退出。运行 fdisk -l 命令,查看是否成功创建新分区。

OpenWrt 存储空间扩容的两种方案

2.2 格式化新分区

SSH 终端运行下面的命令,将新分区的文件系统格式化为 ext4

mkfs.ext4 /dev/sda3

2.3 挂载新分区

进入 Open­Wrt 管理后台,依次点击 系统 – 挂载点 找到并点击全局设置中的 生成配置 。

OpenWrt 存储空间扩容的两种方案
在 挂载点 找到创建的新分区,点击 修改 重新调整挂载项目的设置。

OpenWrt 存储空间扩容的两种方案
勾选 启用此挂载点挂载点 选择为 作为根文件系统使用 ,完整复制根目录准备中的所有命令行后,点击 保存并应用

OpenWrt 存储空间扩容的两种方案

⚠️ 上面复制得到的命令行不要直接运行!!!不要直接运行!!!否则报错。

需要手动修改命令行中 mount /dev/sda1 /tmp/extroot 为 cfdisk 创建的新分区盘符,例如这里应修改为 mount /dev/sda3 /tmp/extroot,然后进入 SSH 终端,运行修改后的完整命令行,如下:

mkdir -p /tmp/introot
mkdir -p /tmp/extroot
mount --bind / /tmp/introot
mount /dev/sdb1 /tmp/extroot # 修改后
tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf -
umount /tmp/introot
umount /tmp/extroot

回车键到底,直到跑完所有命令行。然后运行 reboot 重启 Open­Wrt ~

OpenWrt 存储空间扩容的两种方案
重新进入 SSH 终端运行 df -h ,如上图表示扩容成功~

OpenWrt 存储空间扩容的两种方案

3. 方案二:通过新增磁盘扩容

3.1 添加新磁盘

打开群晖 VMM 找到正在运行的 Open­Wrt 虚拟机,选择 关机 – 强制停止

OpenWrt 存储空间扩容的两种方案
在 虚拟机 中找到已经停止运行的 Open­Wrt 虚拟机,依次选择 操作 – 编辑,找到 存储 设置项,自定义磁盘空间大小(例如 10GB),点击 + 号,新增一块磁盘,例如 虚拟盘 2 (建议勾选空间回收),点击 确定 保存设置。

OpenWrt 存储空间扩容的两种方案
回到 虚拟机 ,点击已停止运行的 Open­Wrt 虚拟机,执行 开机 操作。

OpenWrt 存储空间扩容的两种方案

3.2 磁盘分区

SSH 终端连接 Open­Wrt,运行下面命令查看磁盘信息

fdisk -l

此时,会显示一个未被使用的磁盘 sdb 即新磁盘,,屏幕打印信息如下:

root@OpenWrt:~# fdisk -l
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: QEMU HARDDISK
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: dos
Disk identifier: 0x711b2af7

Device     Boot Start     End Sectors  Size Id Type
/dev/sda1  *      512   66047   65536   32M 83 Linux
/dev/sda2       66560 1704959 1638400  800M 83 Linux


Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

若要使用这块新磁盘,就需要对新磁盘进行分区,运行以下命令:

fdisk /dev/sdb

创建一个主分区,分区操作步骤如下:

root@OpenWrt:~# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.37).
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 0x1d291a31.

Command (m for help): n (输入 n 创建分区)
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p (输入 p 创建主分区)
Partition number (1-4, default 1): (回车键,默认创建一个分区)
First sector (2048-20971519, default 2048): (回车键)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971519, default 20971519):

Created a new partition 1 of type 'Linux' and of size 10 GiB.

Command (m for help): w (输入 w 写入分区表)
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

查看磁盘信息:

fdisk -l

屏幕打印信息如下:

root@OpenWrt:~# fdisk -l
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: QEMU HARDDISK
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: dos
Disk identifier: 0x711b2af7

Device     Boot Start     End Sectors  Size Id Type
/dev/sda1  *      512   66047   65536   32M 83 Linux
/dev/sda2       66560 1704959 1638400  800M 83 Linux


Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: QEMU HARDDISK
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: dos
Disk identifier: 0x1d291a31

Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1        2048 20971519 20969472  10G 83 Linux

其中 /dev/sdb1 即新创建的新分区分配的盘符

3.3 格式化

将分区格式化 ext4 文件系统:

mkfs.ext4 /dev/sdb1

3.4 挂载分区

进入 Open­Wrt 管理后台,依次点击 系统 – 挂载点 找到并点击全局设置中的 生成配置 。

OpenWrt 存储空间扩容的两种方案
在 挂载点 找到创建的新分区,点击 修改 重新调整挂载项目的设置。

OpenWrt 存储空间扩容的两种方案
勾选 启用此挂载点挂载点 选择为 作为根文件系统使用 ,完整复制根目录准备中的所有命令行后,点击 保存并应用

OpenWrt 存储空间扩容的两种方案

⚠️ 上面复制得到的命令行不要直接运行!!!不要直接运行!!!否则报错。

需要手动修改命令行中 mount /dev/sda1 /tmp/extroot 为 fdisk 创建的新分区盘符,例如这里应修改为 mount /dev/sdb1 /tmp/extroot,然后进入 SSH 终端,运行修改后的完整命令行,如下:

mkdir -p /tmp/introot
mkdir -p /tmp/extroot
mount --bind / /tmp/introot
mount /dev/sdb1 /tmp/extroot # 修改后
tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf -
umount /tmp/introot
umount /tmp/extroot

回车键到底,直到跑完所有命令行。然后运行 reboot 重启 Open­Wrt ~

OpenWrt 存储空间扩容的两种方案

4. 写在最后

以上就是喵斯基部落提供的关于 Open­Wrt 存储空间扩容的两个简单的示例,如果你使用的 Open­Wrt 是 EXT4 文件系统可参考本文示例,但需要留意盘符可能有所不同,切勿完全照搬。如果使用的是 squashfs 文件系统那么挂载点需要设置为 /overlay 作为 over­lay 分区使用。

转载来源:https://www.moewah.com/archives/4719.html 作者:喵斯基部落

正文完
 0
评论(没有评论)

空瓶子部落

文章搜索
推荐阅读
顾客满意评价的最佳方法,KANO模型实战应用

顾客满意评价的最佳方法,KANO模型实战应用

前言 KANO模型将产品质量从“顾客需求的满足(物理质量)”和“顾客满意(感受质量)”两个维度进行匹配和关联分...
用于管理和阅读书籍的BookLore

用于管理和阅读书籍的BookLore

简介 什么是 BookLore ? BookLore 是一个自托管的 web 应用程序。 用于组织和管理个人书...
8D 报告背后的工作

8D 报告背后的工作

作为SQE,审核供应商的8D可以说是家常便饭;作为供应商撰写8D报告也是对客户质量问题的有效合理的回复。那么8...
多平台IPTV聚合工具Pixman

多平台IPTV聚合工具Pixman

什么是 pixman/pixman ? pixman/pixman 是一个基于 Docker 的 IPTV 工...
看完这就没有不会的动力学分析系列篇-阻尼设置

看完这就没有不会的动力学分析系列篇-阻尼设置

1. 阻尼的含义与分类 在结构动力学分析中,阻尼对模态分析结果的影响较小,可以不考虑。但对于谐响应分析,响应谱...
最新文章
Free TV:全球免费电视频道 M3U 播放列表,狂揽数万 Star

Free TV:全球免费电视频道 M3U 播放列表,狂揽数万 Star

https://github.com/Free-TV/IPTV 项目简介 Free TV 是一个精心维护的开源...
群晖 Let’s Encrypt 泛域名证书自动更新

群晖 Let’s Encrypt 泛域名证书自动更新

目前acme协议版本更新,开始支持泛域名(wildcard),也就是说,可以申请一个类似*.domain.co...
可以卸载TV Box 了,这款支持「绅士模式」的影视神器你值得拥有

可以卸载TV Box 了,这款支持「绅士模式」的影视神器你值得拥有

还在为找优秀片源难、广告多、平台会员太贵而烦恼?今天给大家挖到一款真正的影视宝藏工具——小猫影视! 作为开源免...
【收藏】一次性解决TV点播/直播自由

【收藏】一次性解决TV点播/直播自由

很多时候,资源就在面前,但是我们视而不见,因为长久的安逸,已经让人失去动手的兴趣。但是每次我需要挨个切换APP...
OpenWrt 存储空间扩容的两种方案

OpenWrt 存储空间扩容的两种方案

说明:当我们通过群晖 VMM 虚拟机安装 Open­Wrt 时,默认会分配一个 10GB 的存储空间,而实际情...
热门文章
提高过程能力指数(CP/CPK)的途径

提高过程能力指数(CP/CPK)的途径

编者按:过程能力指数(CP/CPK)想必各位质量人都耳熟能详、运用自如,质量工程师之家前期也共享过数篇关于过程...
SPC控制图的八种模式分析

SPC控制图的八种模式分析

SPC控制图有八种模式,即八种判断异常的检验准则,每一种检验准则代表一种异常现象,应用SPC控制图进行过程评估...
测量高手放大招:圆跳动测量技巧总结

测量高手放大招:圆跳动测量技巧总结

01. 前言 在五金机加工厂实际的测量工作中,经常碰到要求测量两个要素的圆跳动问题, 利用不同的测量辅件及夹具...
过程能力分析(CP&cpk)

过程能力分析(CP&cpk)

引入过程能力分析的目的? 在我们现有的管理过程中,我们经常会遇到有些具体指标总是不尽人意,存在许多需要改进的地...
新能源汽车 “两会”精神宣贯会

新能源汽车 “两会”精神宣贯会

此次和大家分享新能源汽车相关政策: [embeddoc url=”https://www.ctro...
最新评论
多乐士 多乐士 通过摸索发现ssh拉取会报错,直接网页访问下载会报404错误,不知道原因;但是可以通过群晖CM注册表访问下载,其方法如下: Container Manager-注册表-设置-新增-注册表名称随便写,注册表URL填你的加速地址,勾选信任的SSL自我签署证书,登录信息不填-应用-使用你的地址,这是注册表会显示了,在搜索栏中输入映像名称,搜索结果在每一页的最后一个,你需要划到最后一个进行下载,实测可正常下载安装。 以上供网友参考。
多乐士 多乐士 还有一个比较简单的方法,只是需要一些外部工具。 1、讲损毁硬盘取出,装入外部移动硬盘 2、打开Diskgenius,定位到硬盘 3、格式化系统分区 4、重新插入硬盘 5、存储池->修复存储池即可
多乐士 多乐士 写的不错的文章
辞了老衲 辞了老衲 这个确实有帮助。
渋驀 渋驀 当然任何时候都可以用curl命令和crontab来实现动态更新DDNS的ip地址: 1、安装crontab之后为root用户创建文件/var/spool/cron/root 2、创建并配置ddnsupdate.sh,放到/usr/bin/文件下,文件内容(以he.net为例): Autodetect my IPv4/IPv6 address: IPV4:curl -4 "http://dyn.example.com:password@dyn.dns.he.net/nic/update?hostname=dyn.example.com" IPV6:curl -6 "http://dyn.example.com:password@dyn.dns.he.net/nic/update?hostname=dyn.example.com" 3、添加执行权限chomod +x /usr/bin/ddnsupdate.sh 4、编辑root用户的crontab:*/10 * * * * /usr/binddnsupdate.sh,每10分钟执行一次。好了,可以享受你的DDNS了
21410 21410 请问下载链接在那里?
madkylin madkylin 不错,不错,谢谢分享了,好东西啊 :lol:
feilung feilung 求方法
zengsuyi zengsuyi 应该挺不错的
zise zise 看看是怎么操作的。。 :oops: