CatWrt(OpenWrt) 扩容可用空间,挂载硬盘当 NAS,Docker 分区

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 分区,因为根分区扩容会失效,需要重新配置。

^1

^2

分区

需要进 CatWrt(OpenWrt) 终端进行操作,这里方便我就使用了 TTYD。

^3

LOGS
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
Copy

成功扩容 overlay(sda3)

进入 cfdisk 已经看到按照扩容 Overlay 的教程,我这里设的 3G 已经成功扩容。

我们将光标滚动到 Free space 那边,键盘方向 [↓] 鼠标滚轮也可以操作。

底下默认选择是 [ NEW ] 新建分区(如果不小心按到别的可以按键盘的 ↔️ 方向控制)

选择 Free Space

然后设一个 7G 的大小给 Docker 分区(sda4)

 Partition size: 7G
Copy

然后回车,继续操作。回车以后光标在 /dev/sda128 了,需要将光标再次指向 Free space,然后回车。(默认还是 [ NEW ])

将剩下的 20G 演示空间分掉,默认是当前硬盘最大可用空间,当作 SMB 挂载。(sda5)

 Partition size: 20G
Copy

回车以后,将底栏从 [ Quit ] 选择 为 [ Write ],回车。

然后确认,输入 yes 回车。

Are you sure you want to write the partition table to disk? yes
Copy

底栏从 [ 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:~#
Copy

格式化 sda4 和 sda5 到 ext4

BASH
mkfs.ext4 /dev/sda4
mkfs.ext4 /dev/sda5
Copy

输出结果没问题,没有错误。

LOGS
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:~#
Copy

挂载 Docker 分区

进入 CatWrt 后台,系统 - 挂载点,选择 生成配置 就可以看到我们刚刚新建的两个分区(sda4 & sda5)出现了。

我们选择刚刚创建好的 sda4 然后选择挂载为 /opt Docker 分区,进行 修改

保存并应用,就可以看到 Docker 概览里面已经成功认出配置的空间大小了。

挂载 NAS 分区

进入 CatWrt 后台,网络存储 - 网络共享

在共享目录菜单里,选择添加

-名字: NAS

-目录: /mnt/sda5

-可预览: 开启

-只读: 关闭

中间的部分不用动

-创建权限掩码 & 目录权限掩码: 0777


然后到终端里面输入 smbpasswd -a root 更改 SMB 服务中的 root 密码, 输入密码时不可见。

LOGS
root@CatWrt:~# smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.
root@CatWrt:~#
Copy

然后将编辑模板里面的 invalid users = root 删掉允许 root 登录

CONF
    ## set invalid users
    invalid users = root
Copy

通过 系统 - 启动项 找到 sabma4 重启,或者通过命令 /etc/init.d/samba4 restart 重启 SMB 服务。尝试连接 SMB

Windows 在文件浏览器中的路径处输入 \\192.168.1.4 这里的 \ 是 SMB 路径后面是你的 CatWrt(OpenWrt) IP。

用户: root 密码就是你刚刚在 smbpasswd 设置的密码。

输入协议头和 IP
输入用户和密码
成功创建文件测试完成

教程结束如果遇到问题可以评论留言,特别是 SMB 部分,讲实话我也折腾了有一会,目前只能把 root 允许登录来登录 SMB。

建议大家灵活使用,博客不是教条,根据需求和现有的结合起来。


1: https://www.miaoer.net/posts/network/openwrt-overlay
2: https://www.miaoer.net/posts/network/expansion-overlay
3: https://www.miaoer.net/posts/blog/ssh-connection-to-openwrt