家庭实验室系列文章 - 如何迁移树莓派系统到更大的 SD 卡?

简介: 家庭实验室系列文章 - 如何迁移树莓派系统到更大的 SD 卡?

前言

其实这个专题很久很久之前就想写了,但是一直因为各种原因拖着没动笔。

…(此处省略个中艰难岁月)…

我和太太最终一起在一线城市周边的某二线城市买了房。

再之后,一起装修,她负责非电相关,我负责电 网相关的装修。

家庭组网,家庭实验室就这么一步一步随着家庭的组建而组建了起来:

  1. 家庭有线无线组网
  2. 智能家居
  3. NAS
  4. 公网 IP 和 IPv6
  5. Wake Online (WOL)
  6. 家庭网络安全 (😂看了防火墙日志,才知道被 hack 的频率能有多高)
  7. 玩转树莓派
  8. 组建 Full Mesh 网络
  9. 手机 PAD 远程控制电脑

有了所谓的 " 家庭实验室 ", 我的自身专业技能有了更多实验机会和试炼场,对新的技术了解不再浮于表面;

有了所谓的 " 家庭实验室 ", 即使两地奔波,也能通过手机看到我们,以及小孩经历的每一个点点滴滴,幸福萦绕心头。…

理工男难得这么矫情一下,此为前言。…

树莓派简介

📝 Reference:

  • 可以是你的小型,双显示平,台式电脑
  • 也可以是机器人大脑,智能家居中心,媒体中心,网络人工智能核心,工厂控制器等等。

本质上是个硬件基于 arm64 CPU, 软件 OS 基于 Linux 的电脑 / 开发板 / 设备。…

具有丰富的接口:

  • USB-C
  • HDMI
  • 有线网卡

和良好的生态:

  • 作为边缘设备 (IoT) 网关等
  • 作为软路由
  • 作为 NAS 多媒体中心

具有很高的可玩性和定制化的能力。

树莓派主板

熟悉 Linux 的对与树莓派可以轻松上手。

更换 SD 卡背景

树莓派默认的存储是 micro SD(TF) 卡,刚开始我是用的 32G 的 TF 卡,性能也一般。

正好双十一,数码 3C 设备降价,就想着买个速度快的 / 容量大的 TF 卡做替换。

看了一圈,看中了这一款并下单:

SanDisk TF 卡至尊极速 256GB

看中的就是它的速度:

  • 读取速度高达 190MB/s
  • 写入速度高达 130MB/s

下单!

如何迁移树莓派系统到更大的 SD 卡?

收到后,开干!

实物图

前提

  • Linux 电脑 (MAC 也行,本次演示用 Linux 电脑;windows 电脑,可以选择用傲梅的轻松备份)
  • 树莓派
  • 旧的 TF 卡
  • 新的 TF 卡和读卡器

概述

  • Linux 是基于文件的操作系统:Linux 以文件的形式对计算机中的数据和硬件资源进行管理,也就是彻底的一切皆文件,反映在 Linux 的文件类型上就是:普通文件、目录文件(也就是文件夹)、设备文件、链接文件、管道文件、套接字文件(数据通信的接口)等等。
  • 直接利用dd命令进行文件的全量迁移
  • 先迁移到一个中间设备上,全量系统的文件名叫做:``
  • 再从中间设备迁移到新 TF 卡上
  • 再利用树莓派的 raspi-config 完成扩容

详细步骤

备份旧数据

将树莓派关机,取下 TF 卡,插入到 Linux 电脑中,并查看该设备的路径:

lsblk
BASH

结果如下图:

旧的 TF 卡 lsblk 结果

这里 TF 卡对应的设备名为:sdb, 对应的路径是:/dev/sdb

执行 dd 进行数据备份,将全量数据备份到 Linux 主机的 非 sdb 目录下:

sudo dd if=/dev/sdb bs=1M of=backup-sd-card-1.img
BASH

结果如下图:

先迁移到一个中间设备上

backup-sd-card-1.img 文件就是整个的树莓派系统,包括所有的普通文件、目录文件(也就是文件夹)、设备文件、链接文件、管道文件、套接字文件(数据通信的接口)等等。

迁移到新设备

将 TF 卡从 Linux 电脑上取下,插入新的 TF 卡,并查看该设备的路径:

lsblk
BASH

结果如下图:

新的 TF 卡 lsblk 结果

这里新的 TF 卡对应的设备名仍为:sdb, 对应的路径仍是:/dev/sdb

执行 dd 进行数据迁移,将 backup-sd-card-1.img 迁移到新的 TF 卡上:

sudo dd if=backup-sd-card-1.img bs=1M of=/dev/sdb
BASH

树莓派系统迁移到新 TF 卡上

如上图,这样就迁移完成可以准备开机了。(这里看到最后一行的速度时有种不详的预感,46.2MB/s – 看来写入速度可能达不到宣称的那么高😟)

新 TF 卡插入树莓派并启动扩容

将新 TF 卡插入树莓派并启动,如果此时执行 df -h 查看文件系统大小,会发现还是只有 32G. 我们需要进行逻辑上的扩容:

运行:

sudo raspi-config
BASH

具体如下图:

选择 6: Advanced Options

选择 A1: Expand Filesystem

扩容完毕

背后执行的是 命令

重启生效

重启后,再查看 df -h 空间已经扩上了:

casey in raspberrypi in 192.168.2.8 ~
❯ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       189G   11G  171G   7% /
devtmpfs        763M     0  763M   0% /dev
tmpfs           925M  172K  925M   1% /dev/shm
tmpfs           370M  860K  370M   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           4.0M     0  4.0M   0% /sys/fs/cgroup
/dev/mmcblk0p1  253M   31M  222M  13% /boot
BASH

检查树莓派系统上的各项服务,如:k3s pi-hole 等也正常运行。

达到期望的效果了吗?

容量肯定达到了。但是读写速度呢?

我们测一下,使用 hdparmfio 分别测试随机读和随机写(这是更符合 OS 系统盘的使用场景的):

hdparm 测试

casey in raspberrypi in 192.168.2.8 ~ took 5s
❯ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
mmcblk0     179:0    0 238.3G  0 disk
|-mmcblk0p1 179:1    0   256M  0 part /boot
`-mmcblk0p2 179:2    0   238G  0 part /
BASH
hdparm -tT /dev/mmcblk0
BASH

结果如下:

hdparm 结果

  • Buffer disk read: 43.23 MB/s

fio

cd ~
fio -filename=randw-singlethread -fallocate=none -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=libaio -bs=32k -size=1000M -runtime=30s -numjobs=1 -name=hdparm-randwsinglethread
BASH

结果如下:

fio 结果

  • IOPS 为:448
  • 写入速度只有:14MB/s

总结

本文是:家庭实验室系列文章 - 玩转树莓派 的一章。

树莓派要更换系统盘,可比 windows 轻松多了,直接使用 dd 命令即可完成。

但是,测试后,笔者不建议大家使用 TF 卡用作树莓派系统盘,因为速度实在是上不去。

TF 的读写速度比 SSD 差远了,这是体质硬伤。建议后续大家玩树莓派直接使用 SSD 用作系统盘(可能需要额外供电).

EOF

相关文章
Sendmail邮箱API发送邮件的步骤
AokSend教程:使用Sendmail API发送邮件涉及5步。1) 导入sendmail库;2) 连接SMTP服务器(如`smtp.sendmail.com:587`);3) 设置发件人(`sender@example.com`)和收件人(`recipient@example.com`);4) 编写邮件内容,包括主题和正文;5) 使用`sendmail.send()`发送邮件。AokSend提供高效、触达率高的触发式和SMTP/API接口,适合大规模验证码发信服务。
ly~
|
传感器 存储 供应链
大数据在供应链管理中的具体应用案例
以下是大数据在供应链管理中的具体应用案例:沃尔玛通过整合内外部数据进行需求预测,提前调配应急物资;亚马逊利用大数据优化库存管理,提高周转率并降低成本;DHL通过传感器收集数据优化物流路线,提升运输效率。大数据的优势在于提高需求预测准确性、优化库存管理、提升物流效率、增强供应商管理和提高供应链可视性,从而实现全方位的供应链优化。
ly~
2849 2
|
网络协议 Linux 网络安全
如何用阿里云实现内网穿透?如何在外网访问家里内网设备?
使用NPS自建内网穿透服务器教程,带WEB管理
34515 12
解决办法:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
解决办法:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
1497 0
解决办法:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
|
11月前
|
机器学习/深度学习 算法 PyTorch
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-7.0版本进行目标检测的完整流程,包括算法介绍、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。YOLOv5以其高精度、快速度和模型小尺寸在计算机视觉领域受到广泛应用。
5128 0
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
|
10月前
|
Dubbo 安全 应用服务中间件
Apache Dubbo 正式发布 HTTP/3 版本 RPC 协议,弱网效率提升 6 倍
在 Apache Dubbo 3.3.0 版本之后,官方推出了全新升级的 Triple X 协议,全面支持 HTTP/1、HTTP/2 和 HTTP/3 协议。本文将围绕 Triple 协议对 HTTP/3 的支持进行详细阐述,包括其设计目标、实际应用案例、性能测试结果以及源码架构分析等内容。
570 114
|
10月前
|
负载均衡 监控 Cloud Native
云原生架构下的微服务治理策略与实践####
在数字化转型浪潮中,企业纷纷拥抱云计算,而云原生架构作为其核心技术支撑,正引领着一场深刻的技术变革。本文聚焦于云原生环境下微服务架构的治理策略与实践,探讨如何通过精细化的服务管理、动态的流量调度、高效的故障恢复机制以及持续的监控优化,构建弹性、可靠且易于维护的分布式系统。我们将深入剖析微服务治理的核心要素,结合具体案例,揭示其在提升系统稳定性、扩展性和敏捷性方面的关键作用,为读者提供一套切实可行的云原生微服务治理指南。 ####
|
监控 调度 数据库
简化任务调度与管理:详解XXL-Job及Docker Compose安装
在现代应用程序开发中,任务调度和管理是至关重要的一部分。XXL-Job是一个强大的分布式任务调度平台,它使得任务的调度和管理变得更加轻松和高效。本文将介绍XXL-Job的基本概念,并详细演示如何使用Docker Compose进行快速安装和配置。
887 1
简化任务调度与管理:详解XXL-Job及Docker Compose安装
|
10月前
|
存储
烧录树莓派操作系统镜像的详细操作步骤
本文介绍了在树莓派上烧录操作系统镜像的详细步骤,包括准备工具、下载系统镜像、使用烧录软件等关键环节,帮助用户顺利完成树莓派的初始化配置。
1656 6