8G存储太痛苦!这份玩客云Armbian扩容指南让你告别纠结
问题背景
玩客云设备在刷入 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 方案操作简单,但要求全新安装系统
目录迁移方案更灵活,可用于现有系统
选择哪种方案主要取决于具体需求和系统现状。无论选择哪种方案,请务必仔细按照步骤操作,确保数据安全。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

WALLLE
其次我好像不知道哪里错了,为啥我做完之后/home里面还有一个/home呢?然后才是迁移过去的数据。
另外,我要把opt var也要迁移到新的磁盘上扩容空间,那原来的目录路径不是变了嘛。本来是/opt现在路径变成了/home/opt 这样程序运行不起来了。
还请楼主能指点一下。小弟不材。不知道如何将多个目录迁移到新的碰盘,而不改变原来的路径。
校验提示文案
蒙面黑喵
校验提示文案
lcw1009
校验提示文案
以此类推
校验提示文案
以此类推
校验提示文案
蒙面黑喵
校验提示文案
lcw1009
校验提示文案
WALLLE
其次我好像不知道哪里错了,为啥我做完之后/home里面还有一个/home呢?然后才是迁移过去的数据。
另外,我要把opt var也要迁移到新的磁盘上扩容空间,那原来的目录路径不是变了嘛。本来是/opt现在路径变成了/home/opt 这样程序运行不起来了。
还请楼主能指点一下。小弟不材。不知道如何将多个目录迁移到新的碰盘,而不改变原来的路径。
校验提示文案