去年买了个 R2S 来当软路由,为了省心,开箱即用,自带了定制化的 OpenWrt 系统,运行还算稳定,没有出现死机、重启等现象,其实我也只是用了它的 OpenClash 功能,其他不用的功能一律被我关闭,所以整个机子的负载一直都处在一个比较低的状态:

这几天在折腾 Emby ,装插件,昨天折腾了半天群晖的 SFTP 权限,死活装不上,所以我打算将 Emby 装到 R2S 上来(不过最后还是没装在这里),反正闲着也是闲着,就在拉 Docker 镜像这一步的时候,就出问题了,提示我磁盘空间不足,于是就有了我后续一系列的折腾,下面开始正题。

###1. 通过终端连接至 OpenWrt 并获取管理员权限

# 每人根据实际情况调整
ssh [email protected]
# 输入密码登录后,先获取管理员权限
sudo -i

2. 查看磁盘使用情况

df -h

可以看到目前以挂载的分区的使用情况,上面挂载在 /data 下的 /dev/mmcblk0p3 就是我昨天新添加的分区。

###3. 查看所有磁盘信息(包括未挂载磁盘)

fdisk -l

可以看到有两个磁盘,上面的不用管,很明显。下面的 /dev/mmcblk0 就是我插的 32G 内存卡。

可以看到现在内存卡有三个分区,从第 2 步的信息来看,mmcblk02 分区被创建了,但并没有被挂载。

4. 创建新的磁盘分区

4.1 进入磁盘

fdisk /dev/sda

输入 m 可以获取帮助。

4.2 添加新分区

输入 n 并回车。

4.3 选择分区类型

输入 p 选择分区类型,也可以直接回车,默认为 p

4.4 选择分区号

可选1-4,我已经创建了三个,所以只能选 4,一般默认就好。

4.5 选择起始扇区

这里有个坑,导致我昨天明明有很多的剩余空间,但只能创建出 31M的分区,从第 3 步的磁盘信息中可以看到,我的扇区不是从最开始(2048)进行分配的,而是从 65536 开始的,如果你的的磁盘最前面的扇区没有被分配,那么分区的时候,默认是从 2048 开始的,所以这时候,就需要我手动填写。mmcblk02 的结束扇区是 1703935,所以我昨天创建 mmcblk03 的时候,开始扇区填写的是 1703936。

4.6 选择结束扇区

结束扇区的话,默认会到最后(或者下个分区开始扇区的前一位),如果你不想分配完,那也可以手动指定。

4.7退出磁盘操作

w 保存并退出。

fdisk -l

查新查看磁盘信息,会发现刚才创建的分区 mmcblk0p4 已经显示,31M,因为我只剩这么点未分配的空间了。

这是操作的所有步骤

5. 格式化分区

此时刚建好的分区还不能挂载,因为还不知道文件系统的类型,因此需要格式化一下,我将它格式化成了 ext4 格式。

mkfs.ext4 /dev/mmcblk0p4

6. 挂载分区

先在根目录创建一个目录,用于挂载分区

cd /
mkdir data2

然后进行挂载

mount /dev/mmcblk0p4 /data2

可以看到已经被成功挂载了,已经可以正常使用 data2 目录了。权限可以根据用途自行设置。

7. 卸载分区

umount /data2

8. 删除分区

8.1 进入磁盘操作

fdisk /dev/mmcblk0

8.2 查看分区信息

输入 p 回车,查看分区的信息

8.3 删除分区

d 删除分区,然后输入要删除的分区编号,回车。

磁盘分区相关的基本操作就这些,结果是,我分好了区,最终还是没顺利把 Emby 跑起来,最后还是在群晖上顺利安装上了插件,只是过程依旧艰辛,下篇文章再讲。