2024-11-28 14:55:14
问题背景
玩客云设备在刷入 Armbian 系统后具备了强大的扩展性,但其板载 8GB eMMC 存储成为了一个明显的瓶颈。我目前再用的玩客云系统安装后仅剩余约 5GB 可用空间,即使外接硬盘也只能作为简单的文件存储,无法有效解决系统和应用数据的存储需求。于是我尝试进行存储扩展方案。
方案一:BTRFS 文件系统扩展
适用场景
这种方案适用于全新安装 Armbian 系统的情况。在安装系统时,可以选择使用 BTRFS 文件系统而不是默认的 ext4。BTRFS 文件系统的一大优势在于其支持动态存储池管理,可以轻松实现存储设备的扩展。
操作步骤
-
确认硬盘连接状态
-
添加存储设备
btrfs device add
/dev/sdX /
说明:此命令将新的存储设备添加到 BTRFS 存储池中。将 ‘sdX’ 替换为实际的设备名称(可通过 lsblk 命令查看)。
-
平衡文件系统
btrfs filesystem balance /
说明:此命令会重新分配数据,使其在所有存储设备上均匀分布,以实现更好的性能和空间利用。
方案二:系统目录迁移
适用场景
如果系统已经运行一段时间无法重装,或者使用的是 ext4 文件系统,可以采用这种方案。选择性地将特定系统目录迁移到外部存储设备。
建议可迁移的目录
-
/home – 用户个人数据目录
-
/var – 系统变量数据目录
-
/opt – 第三方应用程序目录
-
其他应用数据目录
详细操作步骤(以 /home 目录为例)
1. 检查硬盘设备
lsblk
说明:此命令会显示所有存储设备的列表。在我得设备上显示以下输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 447.1G 0 disk
mmcblk2 179:0 0 7.2G 0 disk
其中 sda 表示外接硬盘,有447.1G空间,mmcblk2 表示板载 eMMC。
2. 硬盘分区
sudo fdisk /dev/sda
按顺序输入以下命令:
-
n – 创建新分区
-
p – 选择主分区
-
1 – 设置分区号
-
[Enter] – 使用默认起始扇区
-
[Enter] – 使用默认结束扇区(使用全部空间)
-
w – 写入分区表并退出
说明:这些步骤将在外接硬盘上创建一个使用全部空间的主分区。
3. 格式化分区
sudo mkfs.ext4 /dev/sda1
说明:此命令将新建分区格式化为 ext4 文件系统,这是 Linux 系统中最常用的文件系统格式。
4. 创建挂载点
sudo mkdir -p /mnt/external
说明:创建一个临时挂载点,用于后续数据迁移操作。
5. 临时挂载分区
sudo mount /dev/sda1 /mnt/external
说明:将新分区临时挂载到创建的挂载点,以便进行数据迁移。
6. 创建目录结构
sudo mkdir -p /mnt/external/home
说明:在外接硬盘上创建必要的目录结构,为数据迁移做准备。
7. 复制数据
sudo rsync -avxP /home/ /mnt/external/
说明:使用 rsync 命令复制数据,参数说明:
-a:保持文件属性
-v:显示详细信息
-x:不跨越文件系统边界
-P:显示进度并允许断点续传
8. 备份原目录
sudo mv /home /home.bak sudo mkdir /home
说明:将原始目录改名作为备份,并创建新的空目录作为挂载点。
9. 获取分区 UUID
sudo blkid /dev/sda1
说明:获取新分区的唯一标识符,用于配置自动挂载。
10. 配置自动挂载
编辑 /etc/fstab 文件:
sudo nano /etc/fstab
添加以下行(替换为实际的 UUID):
UUID= /home ext4 defaults 0 2
说明:这一步配置系统启动时自动挂载外接硬盘。参数说明:
defaults:使用默认挂载选项
0:不进行备份
2:检查文件系统的优先级
11. 测试新配置
sudo mount -a
说明:测试新的挂载配置是否正确。如果没有错误提示,说明配置成功。
12. 重载系统服务
sudo systemctl daemon-reload
说明:通知系统服务重新加载配置文件。
注意事项
-
进行任何操作前,务必备份重要数据
-
一定要谨慎操作,出现任何错误都可能导致系统崩溃
-
提前确认外接硬盘的健康状态
-
如果有USB 3.0接口,优先选择 USB 3.0
总结
这两种存储扩展方案各有特点:
-
BTRFS 方案操作简单,但要求全新安装系统
-
目录迁移方案更灵活,可用于现有系统
选择哪种方案主要取决于具体需求和系统现状。无论选择哪种方案,请务必仔细按照步骤操作,确保数据安全。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~