6. 存储管理

6.1. SD卡扩容

由于在镜像生成时,用户空间的大小就已经固定了,为了照顾使用小容量SD卡用户能够烧录镜像, 我们提供的镜像用户空间容量有所控制,扣除系统和预装软件占用的空间,剩余空间也能满足用户安装很多软件。

但是使用大容量SD卡的用户,有很大一部分存储空间无法被利用,这是一种极大的浪费, 好在我们可以通过新建分区的方法使用这一部分空间。

由于squashfs和ext4两种文件系统的特性,在squashfs扩容时无法扩大安装程序的空间,而ext4可以, 接下来我们以两种不同的文件系统为例,分别讲解他们的扩容过程。

我们使用ttyd终端来进行扩容操作。

6.1.1. 查看sd卡信息

我们先来查看一下存储设备的详细信息。

1
fdisk -l
fdisk

我们可以看到,当前sd卡的设备号是 /dev/mmcblk0,他的总存储空间是14.84GiB。 已经存在mmcblk0p1和mmcblk0p2两个分区。

输入下面的命令,进入cfdisk工具进行后续操作。mmcblk0为对应存储设备的设备号。

1
cfdisk /dev/mmcblk0
fcdisk

6.1.2. 新建分区

通过上下方向键,选中大小为11.2G且没有分区的空间 ,然后使用左右方向键选中 New 选项,按Enter键。

fcdisk-new

确定新建分区的容量大小,可以自己修改,这里我们选择默认的最大值,按Enter键。

fcdisk-newsize

确定新建分区的类型,默认[primary],按Enter键确认。

fcdisk-newprimary

左右方向键选中 Write 选项,按Enter键将设置的参数写入。

fcdisk-newsizewrite

会提示是否确认写入刚刚的配置参数,输入 yes ,按Enter键确认写入。

fcdisk-newsizeyes

左右方向键选中 Quit 选项,按Enter键退出cfdisk工具。

重新查看sd卡空间。可以看到新增了mmcblk0p3,它的容量为11.2G

1
fdisk -l
fdisk2

6.1.3. 格式化分区

分区完成以后,我们对新分区进行格式化。下面的命令中,ext4 表示分区格式, /dev/mmcblk0p3 表示要格式化的分区。

1
mkfs.ext4 /dev/mmcblk0p3
mkfs

我们等待格式化完成后,记住刚刚格式化分区的 UUID

6.1.4. 挂载分区

squashfs和ext4两种文件系统扩容的差异在这里体现。由于squashfs文件系统是只读的,是基于overlay形式的, 我们无法将新建的ext4分区挂载到根目录下,而ext4文件系统的镜像就不存在这种问题。

6.1.4.1. squashfs

打开 系统 -> 挂载点, 点击 新增 挂载点。

新增挂载点

勾选启用,根据UUID或设备号选择新建的格式化分区,然后自定义挂载点。

挂载位置可以自己决定,这里我们输入自定义挂载点之后,按下Enter键保存地址,然后点击保存。

挂载分区

保存并应用设置

保存挂载分区

我们就可以看到新挂载的分区了。

挂载分区后

6.1.4.2. ext4

注意

本小节说使用的镜像是 openwrt-embedfire_doornet1-ext4-20210524.img.gz

在挂载ext4分区之前,我们先在终端执行几条命令。 下面命令的/dev/mmcblk0p3根据自己实际新增的分区填写。

1
2
3
4
5
6
7
mkdir -p /tmp/introot
mkdir -p /tmp/extroot
mount --bind / /tmp/introot
mount /dev/mmcblk0p3 /tmp/extroot
tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf -
umount /tmp/introot
umount /tmp/extroot

执行这些命令需要等待一点时间。完成之后我们开始挂载

打开 系统 -> 挂载点, 点击 新增 挂载点。

选择刚刚操作的分区,将挂载点选择作为根文件系统使用,然后保存并应用。

作为根文件系统

在完成保存之后我们还要进行重启,重启完成后我们打开 系统 -> 软件包 ,可以看到剩余的程序安装空间增大了。

安装空间

这种扩容方式并不是无损的,原来的用户文件分区还是存在的但是已经无法使用,只不过我们移花接木, 将原来的用户文件分区转移到了新的分区。

如何无损的扩容ext4分区,请查看 趣味玩法 -> 一种简单的扩展ext4分区的方法

6.2. 存储设备挂载

除了扩容烧写系统所用的SD卡之外,我们还可以使用DoorNet上的USB口连接连接U盘、移动硬盘或硬盘柜, 以达到扩展存储空间的目的。

警告

由于USB存储设备硬件种类及型号繁杂,本文内容无法做到面面俱到。 故本文档只对当前测试软件及硬件有效,其他硬件仅供参考,不保证适用性,以实际效果为准。

6.2.1. 挂载U盘

小容量U盘建议使用FAT32格式,直接插入U盘, 打开 系统 -> 挂载点, 点击 新增 挂载点。

挂载U盘

我们可以根据UUID或设备来选择要挂载的设备。自定义挂载点位置为/mnt/sda1

挂载U盘1

点击 保存保存并应用 后,我们可以看到设备已被挂载。

挂载U盘完成