打造更持久的树梅派

导读

写了那么多期斐讯k3,想必诸位都视觉疲劳了,今天终于轮到树梅派上场了。要想树梅派长久稳定的运行,且可扩展能力强,能够把它打造成网盘,那么扩展存储是必然的,同时树梅派最大的毛病就是意外断电后文件系统易损坏,需要手动修复,那有没有一劳永逸的法子,答案是肯定的,接着看就是!

设计推导

示例硬件原料

  • 树梅派3B+
  • USB 无源移动机械硬盘
  • 有源 USB HUB

外置存储建议诸位采用有源 usb 移动机械硬盘,容量大且价格适宜,无源的话可以用有源 usb hub 转接,就像易雾君这样的
在这里插入图片描述

设计畅想

咱们此次是没有准备 TF 卡的,移动文件也需放置于移动设备上,可以考虑分三个区足矣,一个启动分区,一个系统分区,一个数据分区。

为了防止失窃造成数据泄漏,还要将数据分区进行加密。

系统分区作为一个基础支持性的分区,最好是不让它变更,固化它,所有需要变更的数据只发生数据分区,这倒是可以,系统分区咱给它用上 overlayfs ,数据分区呢主打跑 docker ,在部署阶段设置让系统分区能够写入,将 docker 的存储目录改到数据分区,这样就能确保 docker 创建的容器都写在数据分区了,基本不与系统分区有何干系,最终部署好以后就可直接固化系统分区了,以后需要增加docker容器呀,就大胆操作吧。

操作系统选型
树梅派 3B+ 本身是基于 ARM 64 位的处理器,果断选用 64 位的操作系统,易雾君用的是由 openfans 出品的 Debian-Pi-Aarch64 ,尤其好用,项目地址: https://github.com/openfans-community-offical/Debian-Pi-Aarch64 ,支持 2Bv1.2, 3B, 3B+, 3A+, 4B 众多系列。

USB 启动问题

  • 树梅派 3B 是无法直接从 usb 存储启动的,可以参考《完全抛弃TF卡,从 USB 启动树莓派》,进行设置,完成设置后,后边就可以不需要 TF 卡了
  • 树梅派 3B+ 及以上则支持直接从 USB 存储启动系统

操练时刻

系统镜像准备

易雾君采用了这个固件 2020-06-22-OPENFANS-Debian-Buster-Aarch64-ext4-v2020-2.0-U4-Release.img.xz

  • 资源链接:https://pan.evling.me/s/g9pkSR6eACKjwRP
  • 访问密码:在公众号 易雾山庄 回复 获取密码 即可
  • 可以到上面提供的项目地址那里去下载,可能网速会比较慢而已

硬盘分区

这里咱就不采用直接将镜像 dd 到硬盘,而是先按照如下设定分好区。

  • 硬盘总大小:500G
  • 启动分区:512MB fat32
  • 系统分区:10GB ext4
  • 数据分区:剩下的所有

易雾君使用 gparted 进行了分区及格式化,诸位也可使用其他工具,如 fdisk 等。第三个分区可以暂时不用格式化,因为咱装好系统之后打算对它进行加密处理。
在这里插入图片描述

固件刷写

解压 xz 压缩形式的镜像文件

xz -d 2020-06-22-OPENFANS-Debian-Buster-Aarch64-ext4-v2020-2.0-U4-Release.img.xz

转换起始偏移
在这里插入图片描述

  • 8192 * 512 = 4194304
  • 524288 * 512 = 268435456

挂载 boot 分区并将文件同步到移动硬盘的 boot 分区。

mkdir /tmp/boot
mount -o loop,offset=4194304 ./2020-06-22-OPENFANS-Debian-Buster-Aarch64-ext4-v2020-2.0-U4-Release.img /tmp/boot
rsync -Pa /tmp/boot/ /media/root/28CD-91D9/
sync

挂载 system 分区并将文件同步到移动硬盘的 system 分区。

umount /tmp/boot
mkdir /tmp/system
mount -o loop,offset=268435456 ./2020-06-22-OPENFANS-Debian-Buster-Aarch64-ext4-v2020-2.0-U4-Release.img /tmp/system
sync
umount /tmp/system

更新新环境的分区 id ,先查看移动硬盘的分区 id 值

root@lab:/tmp# blkid
/dev/sdc1: UUID="28CD-91D9" TYPE="vfat" PARTUUID="87e06b5e-01"
/dev/sdc2: UUID="069d1748-472d-4ecb-a1c7-27d93234bf16" TYPE="ext4" PARTUUID="87e06b5e-02"
/dev/sdc3: UUID="0a4a8d70-6c7a-4efa-b941-1b7d28ac2fad" TYPE="ext4" PARTUUID="87e06b5e-03"

得到 87e06b5e ,更新 boot 分区下文件/media/root/28CD-91D9/cmdline.txt 及系统分区下文件 /media/root/069d1748-472d-4ecb-a1c7-27d93234bf16/etc/fstab 对应的值。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值