8G存储太痛苦!这份玩客云Armbian扩容指南让你告别纠结

2024-11-28 14:55:14 9点赞 64收藏 13评论

问题背景

玩客云设备在刷入 Armbian 系统后具备了强大的扩展性,但其板载 8GB eMMC 存储成为了一个明显的瓶颈。我目前再用的玩客云系统安装后仅剩余约 5GB 可用空间,即使外接硬盘也只能作为简单的文件存储,无法有效解决系统和应用数据的存储需求。于是我尝试进行存储扩展方案。

方案一:BTRFS 文件系统扩展

适用场景

这种方案适用于全新安装 Armbian 系统的情况。在安装系统时,可以选择使用 BTRFS 文件系统而不是默认的 ext4。BTRFS 文件系统的一大优势在于其支持动态存储池管理,可以轻松实现存储设备的扩展。

8G存储太痛苦!这份玩客云Armbian扩容指南让你告别纠结

操作步骤

  1. 确认硬盘连接状态

  • 移动硬盘正确连接到玩客云的 USB 接口

  • 确保供电充足,建议使用带独立供电的硬盘盒

  1. 添加存储设备

btrfs device add /dev/sdX /

说明:此命令将新的存储设备添加到 BTRFS 存储池中。将 'sdX' 替换为实际的设备名称(可通过 lsblk 命令查看)。

  1. 平衡文件系统

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。

8G存储太痛苦!这份玩客云Armbian扩容指南让你告别纠结

2. 硬盘分区

sudo fdisk /dev/sda

按顺序输入以下命令:

  • n - 创建新分区

  • p - 选择主分区

  • 1 - 设置分区号

  • [Enter] - 使用默认起始扇区

  • [Enter] - 使用默认结束扇区(使用全部空间)

  • w - 写入分区表并退出

说明:这些步骤将在外接硬盘上创建一个使用全部空间的主分区。

8G存储太痛苦!这份玩客云Armbian扩容指南让你告别纠结

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

说明:获取新分区的唯一标识符,用于配置自动挂载。

8G存储太痛苦!这份玩客云Armbian扩容指南让你告别纠结

10. 配置自动挂载

编辑 /etc/fstab 文件:

sudo nano /etc/fstab

添加以下行(替换为实际的 UUID):

UUID= /home ext4 defaults 0 2

说明:这一步配置系统启动时自动挂载外接硬盘。参数说明:

  • defaults:使用默认挂载选项

  • 0:不进行备份

  • 2:检查文件系统的优先级

8G存储太痛苦!这份玩客云Armbian扩容指南让你告别纠结

11. 测试新配置

sudo mount -a

说明:测试新的挂载配置是否正确。如果没有错误提示,说明配置成功。

12. 重载系统服务

sudo systemctl daemon-reload

说明:通知系统服务重新加载配置文件。

注意事项

  • 进行任何操作前,务必备份重要数据

  • 一定要谨慎操作,出现任何错误都可能导致系统崩溃

  • 提前确认外接硬盘的健康状态

  • 如果有USB 3.0接口,优先选择 USB 3.0

总结

这两种存储扩展方案各有特点:

  • BTRFS 方案操作简单,但要求全新安装系统

  • 目录迁移方案更灵活,可用于现有系统

选择哪种方案主要取决于具体需求和系统现状。无论选择哪种方案,请务必仔细按照步骤操作,确保数据安全。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
13评论

  • 精彩
  • 最新
  • 楼主你好,首先感谢你的教程。
    其次我好像不知道哪里错了,为啥我做完之后/home里面还有一个/home呢?然后才是迁移过去的数据。
    另外,我要把opt var也要迁移到新的磁盘上扩容空间,那原来的目录路径不是变了嘛。本来是/opt现在路径变成了/home/opt 这样程序运行不起来了。
    还请楼主能指点一下。小弟不材。不知道如何将多个目录迁移到新的碰盘,而不改变原来的路径。

    校验提示文案

    提交
    我的错误:7. 复制数据
    sudo rsync -avxP /home/ /mnt/external/home/ 修改成
    # 正确的方式
    sudo rsync -avxP /home/ /mnt/external/

    校验提示文案

    提交
    同步的时候目录写错了 [喜极而泣]

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 一个SD卡能不能挂载两个目录 /etc/fstab 应该如何写? 还是说我必须把SD卡分成两个区分别挂载不同的目录 ?

    校验提示文案

    提交
    使用Bind Mount可以同一分区,不过不推荐这样做,可能会出意料之外的问题。

    校验提示文案

    提交
    # 先挂载SD卡
    /dev/sdb1 /mnt/sdcard ext4 defaults 0 2

    # 然后设置bind mount
    /mnt/sdcard/home /home none bind 0 0
    /mnt/sdcard/var /var none bind 0 0

    校验提示文案

    提交
    收起所有回复
  • 外置卡引导不就好了吗

    校验提示文案

    提交
    感觉速度慢

    校验提示文案

    提交
    收起所有回复
  • 怎么还原呢?我傻了。把3个文件夹(/home,/var,/opt)都复制到同个U盘里,后面才发现只有一个目录(sd1→/opt) [喜极而泣]

    校验提示文案

    提交
  • 以下是被折叠的评论 查看
已折叠部分评论
展开
收起
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
64
扫一下,分享更方便,购买更轻松