电视盒子 E900V22C Armbian Linux 挂载 TF 卡并迁移 Docker 数据
摘要
- 介绍 Armbian 系统的基本知识,说明电视盒子 E900V22C 的 TF 卡电路参数以及一般 U 盘的实际速度,挂载 TF 卡到系统并配置自动挂载,迁移 Docker 数据到 TF 卡并修改 Docker 配置,验证数据迁移结果。
背景说明
- E900V22C 电视盒子的电路板上留有 TF 卡座及其相关元器件的空位。
- Armbian 系统是基于 Debian/Ubuntu 而构建的专门用于 ARM 芯片的轻量级 Linux 系统。
- 一般 USB2.0 接口的 U 盘的实际写入速度上限为 10MB/s 左右,实际读取速度上限为 20MB/s 左右。
补全 TF 卡电路
- 工具
- 电烙铁或热风枪
- 焊锡丝或针筒式锡膏
- 元器件
- 封装为 SMD 的 MicroSD 卡座
- 封装为 0402 的贴片电阻:33Ω、4.7kΩ、10kΩ
- 封装为 0402 的贴片电容:10pF、1μF
挂载 TF 卡
-
补全 TF 卡电路后,将电源线和网线以及 TF 卡插入电视盒子,打开电源开关。
-
登录 Armbian 系统。在电视盒子已安装 Armbian 系统的情况下,通过 SSH 登录 Armbian 系统。打开终端连接工具软件,协议 选择 SSH2,主机名 为在路由器中查到的电视盒子的 IP 地址,端口 为默认的
22
,点击 连接 按钮 。用户名 为root
,密码 为设置的密码。 -
查看所有可用存储设备。执行
lsblk
命令以列出所有可用块设备的信息。块设备有硬盘,闪存盘,cd-ROM等。
-
查看文件系统信息。执行
blkid /dev/mmcblk1p1
命令以查询 TF 卡mmcblk1p1
分区的UUID
值和所采用的文件系统类型。UUID="e6b9d4f8-e14b-f748-9c4e-fb54186ff2ee" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="423fa0c8-01"
-
修改分区的文件系统类型。如果
mmcblk1p1
分区的TYPE
不为ext4
,执行mkfs.ext4 /dev/mmcblk1p1
命令将mmcblk1p1
分区格式化为ext4
类型的文件系统。 -
创建挂载点。执行
mkdir -p /mnt/sdcard
命令以创建用于挂载 TF 卡的目标目录。 -
临时挂载。执行
mount /dev/mmcblk1p1 /mnt/sdcard
命令以手动挂载 TF 卡到/mnt/sdcard
挂载点。 -
配置自动挂载。执行
nano /etc/fstab
命令以修改自动挂载配置文件来实现启动后自动挂载 TF 卡设备到挂载点。在文件的最后一行添加UUID=<UUID> /mnt/sdcard ext4 defaults 0 2
,其中<UUID>
的值为在第 4 步或第 5 步获得的UUID
值。UUID=84fc3765-ab83-4e74-82ce-b30438b1c546 / ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 1 LABEL=BOOT_EMMC /boot vfat defaults 0 2 tmpfs /tmp tmpfs defaults,nosuid 0 0 UUID=e6b9d4f8-e14b-f748-9c4e-fb54186ff2ee /mnt/sdcard ext4 defaults 0 2
-
保存修改并退出 nano 文本编辑器。首先按下 Ctrl + O 键以保存当前的修改,然后按下 Enter 键以保存修改到当前的文件名,最后按下 Ctrl + X 键以退出编辑器。
-
测试自动挂载配置文件。执行
mount -a
命令以挂载/etc/fstab
中设置的所有设备。如果没有错误提示,说明配置成功。 -
重载配置。执行
systemctl daemon-reload
命令以通知系统服务重新加载配置文件。
迁移 Docker 数据
-
停止 Docker 服务。执行
systemctl stop docker
命令以停止 Docker 服务。 -
复制 Docker 数据。
-
创建新的 Docker 数据目录。执行
mkdir -p /mnt/sdcard/var/lib/docker
命令以在 TF 卡上创建用于存储 Docker 数据的目录。 -
查看 Docker 数据目录的属性。执行
ls -l /var/lib | grep docker
命令以查看旧数据目录/var/lib/docker/
的权限和所有者。执行ls -l /mnt/sdcard/var/lib | grep docker
命令以查看新数据目录/mnt/sdcard/var/lib/docker/
的权限和所有者。root@armbian:~# ls -l /var/lib | grep docker drwx--x--- 12 root root 4096 8月 16 08:07 docker root@armbian:~# ls -l /mnt/sdcard/var/lib | grep docker drwxr-xr-x 2 root root 4096 8月 16 14:51 docker
-
修改新 Docker 数据目录的属性。执行下列命令以修改新 Docker 数据目录的权限和所有者。
chmod 710 /mnt/sdcard/var/lib/docker chown root:root /mnt/sdcard/var/lib/docker
-
复制 Docker 数据目录及其文件。执行
rsync -av /var/lib/docker/ /mnt/sdcard/var/lib/docker/
命令以同步/var/lib/docker/
目录中的目录及其文件到/mnt/sdcard/var/lib/docker/
目录中。通过使用 rsync 命令同步本地文件的方式来复制数据,可以仅传输文件变化的部分以节省时间,同时可以保留文件属性。
-
-
修改 Docker 配置。执行
nano /etc/docker/daemon.json
命令以创建和修改 Docker 的配置文件。在文件中添加如下内容后,保存修改并退出 nano 文本编辑器。{ "data-root": "/mnt/sdcard/var/lib/docker" }
-
更新配置。执行
systemctl daemon-reload && systemctl restart docker
命令以重新加载配置和重启 Docker 服务。 -
验证 Docker 数据迁移结果。
- 查看 Docker 系统信息:执行
docker info
命令。
- 查看 Docker 服务状态:执行
systemctl status docker
命令。
- 执行
docker run hello-world
命令以运行 hello-world 镜像来验证数据迁移是否成功。
- 查看 Docker 系统信息:执行
-
清理 Docker 数据。执行
rm -rf /var/lib/docker
命令以删除旧的 Docker 数据文件。
注意事项
- 分区被格式化之后,分区的 UUID 值会发生变化。
参考资料
- e900v22c添加TF卡最完美的方案【emuelec吧】_百度贴吧
- 1块钱,E900V22C增加TF卡槽成功【emuelec吧】_百度贴吧
- E900V22C/D 等 S905L3A 机顶盒教程汇总
- 8G存储太痛苦!这份玩客云Armbian扩容指南让你告别纠结_服务软件_什么值得买
- 更改 Docker 的默认数据目录:解决部署空间不足问题-阿里云开发者社区
- docker的/var/lib/docker目录迁移 - ejiyuan - 博客园
- Linux /etc/fstab文件详解:自动挂载配置指南(中英双语)_fstab文件配置详解-CSDN博客
- Fstab - Community Help Wiki
- rsync命令手册,rsync命令详解 - Linux命令手册
- dockerd | Docker Docs
版权声明:本文为「梦幻之心星」原创,依据 CC BY-NC-SA 4.0 许可证进行授权,转载请附上原文出处链接及本声明。
博客园地址:https://www.cnblogs.com/Sky-seeker
微信公众号:梦幻之心星 Sky-seeker
关注微信公众号,即时获取文章推送;访问博客园网页,正常显示网址链接。