CatWrt(OpenWrt) 扩容可用空间,挂载硬盘当 NAS,Docker 分区
本期是结合已经在 x86_64 虚拟机或者物理机安装了 CatWrt 的用进行扩容操作
如果你不知道你需不需要扩容,那么我想你不必扩容,扩容属于一种高级选项,比如想扩容 overlay 安装其他插件使用,将剩余硬盘空间当作 NAS 使用,或者将空间划给 Docker 安装应用使用。
而且如果 CatWrt 更新扩容分区会失效,需要重新配置所以不建议扩容。
那先确定需求:
- CatWrt 默认可用空间还是蛮大的,不太需要给插件扩容 Overlay 分区,除非不够大;
- 如果想将剩余硬盘空间当作 NAS 使用,那么需要分区挂载使用;
- 如果想将剩余硬盘空间划给 Docker 使用,那么需要分区挂载使用。
本期教程使用的 PVE 虚拟化环境,安装好 CatWrt.v24.9.amd64 进行演示。
确定分区
教程将以
- Overlay 分区(或根分区)为
/dev/sda3
即 sda3 分区 - Docker 分区为
/dev/sda4
即 sda4 分区 - NAS 分区开启 SMB 服务,做轻 NAS 功能,为
/dev/sda5
即 sda5 分区
教程里面的空间仅为演示而设,实际使用请根据自己需求进行分区。
在确定好需求后,扩容虚拟机硬盘空间,这里使用的 PVE 假如你使用的 ESXi 流程很类似这里就不列举了。
扩容
扩容 overlay 或扩容根分区,二选一。
推荐扩容 Overlay 分区,因为根分区扩容会失效,需要重新配置。
分区
需要进 CatWrt(OpenWrt) 终端进行操作,这里方便我就使用了 TTYD。
CatWrt login: root
Password:
BusyBox v1.36.0 (2023-07-05 11:34:20 UTC) built-in shell (ash)
_____ _ _
| |___| |_ _ _ _ ___| |_
| --| .'| _| | | | _| _|
|_____|__,|_| |_____|_| |_|
W I R E L E S S F R E E D O M
======================================
CatWrt.v24.9.x86_64
Blog: miaoer.xyz
OpenWrt: Lean source r6781-062d85f8f
======================================
root@CatWrt:~# cfdisk
进入 cfdisk 已经看到按照扩容 Overlay 的教程,我这里设的 3G 已经成功扩容。
我们将光标滚动到 Free space 那边,键盘方向 [↓]
鼠标滚轮也可以操作。
底下默认选择是 [ NEW ]
新建分区(如果不小心按到别的可以按键盘的 ↔️
方向控制)
然后设一个 7G 的大小给 Docker 分区(sda4)
Partition size: 7G
然后回车,继续操作。回车以后光标在 /dev/sda128 了,需要将光标再次指向 Free space,然后回车。(默认还是 [ NEW ])
将剩下的 20G 演示空间分掉,默认是当前硬盘最大可用空间,当作 SMB 挂载。(sda5)
Partition size: 20G
回车以后,将底栏从 [ Quit ]
选择 为 [ Write ]
,回车。
然后确认,输入 yes
回车。
Are you sure you want to write the partition table to disk? yes
底栏从 [ Write ]
选择为 [ Quit ]
,回车,退出 cfdisk。
格式化
现在 sda4 和 sda5 已经成功分区。
root@CatWrt:~# fdisk -l
Disk /dev/sda: 30.78 GiB, 33051410432 bytes, 64553536 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: gpt
Disk identifier: 137AC110-633B-AE85-3AB1-39628F138200
Device Start End Sectors Size Type
/dev/sda1 512 33279 32768 16M Linux filesystem
/dev/sda2 33280 1638911 1605632 784M Linux filesystem
/dev/sda3 1640448 7931903 6291456 3G Linux filesystem
/dev/sda4 7931904 22611967 14680064 7G Linux filesystem
/dev/sda5 22611968 64552959 41940992 20G Linux filesystem
/dev/sda128 34 511 478 239K BIOS boot
Partition table entries are not in disk order.
root@CatWrt:~#
格式化 sda4 和 sda5 到 ext4
mkfs.ext4 /dev/sda4
mkfs.ext4 /dev/sda5
输出结果没问题,没有错误。
root@CatWrt:~# mkfs.ext4 /dev/sda4
mke2fs 1.47.0 (5-Feb-2023)
Discarding device blocks: done
Creating filesystem with 1835008 4k blocks and 458752 inodes
Filesystem UUID: be02d5fb-f133-4cd2-9ae4-49a4758dded6
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
root@CatWrt:~# mkfs.ext4 /dev/sda5
mke2fs 1.47.0 (5-Feb-2023)
Discarding device blocks: done
Creating filesystem with 5242624 4k blocks and 1310720 inodes
Filesystem UUID: 23290300-01dc-4a6a-ae7d-0d3a5ab1f0a8
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
root@CatWrt:~#
挂载 Docker 分区
进入 CatWrt 后台,系统 - 挂载点,选择 生成配置 就可以看到我们刚刚新建的两个分区(sda4 & sda5)出现了。
我们选择刚刚创建好的 sda4 然后选择挂载为 /opt Docker 分区,进行 修改
保存并应用,就可以看到 Docker 概览里面已经成功认出配置的空间大小了。
挂载 NAS 分区
进入 CatWrt 后台,网络存储 - 网络共享
在共享目录菜单里,选择添加
-名字: NAS
-目录: /mnt/sda5
-可预览: 开启
-只读: 关闭
中间的部分不用动
-创建权限掩码 & 目录权限掩码: 0777
然后到终端里面输入 smbpasswd -a root
更改 SMB 服务中的 root 密码, 输入密码时不可见。
root@CatWrt:~# smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.
root@CatWrt:~#
然后将编辑模板里面的 invalid users = root
删掉允许 root 登录
## set invalid users
invalid users = root
通过 系统 - 启动项 找到 sabma4 重启,或者通过命令 /etc/init.d/samba4 restart 重启 SMB 服务。尝试连接 SMB
Windows 在文件浏览器中的路径处输入 \\192.168.1.4
这里的 \ 是 SMB 路径后面是你的 CatWrt(OpenWrt) IP。
用户: root 密码就是你刚刚在 smbpasswd 设置的密码。
教程结束如果遇到问题可以评论留言,特别是 SMB 部分,讲实话我也折腾了有一会,目前只能把 root 允许登录来登录 SMB。
建议大家灵活使用,博客不是教条,根据需求和现有的结合起来。