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


    前言

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

    因为没有资格,也没有钱在一线城市买房 (😂😂😂); 但是在要结婚之前,婚房又是刚需。 我和太太最终一起在一线城市周边的某二线城市买了房。 再之后,一起装修,她负责非电相关,我负责电 网相关的装修。 家庭组网,家庭实验室就这么一步一步随着家庭的组建而组建了起来:

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

    有了所谓的"家庭实验室", 我的自身专业技能有了更多实验机会和试炼场,对新的技术了解不再浮于表面; 有了所谓的"家庭实验室", 即使两地奔波,也能通过手机看到我们,以及小孩经历的每一个点点滴滴,幸福萦绕心头。..

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

    树莓派简介

    📝 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

      结果如下图:

      旧的 TF 卡 lsblk 结果

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

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

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

        结果如下图: 先迁移到一个中间设备上

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

        迁移到新设备

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

        lsblk

          结果如下图:

          新的 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

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

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

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

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

            运行:

            sudo raspi-config

              具体如下图:

              选择 6: Advanced Options

              选择 A1: Expand Filesystem

              扩容完毕

              背后执行的是 `fdisk` 命令

              重启生效

              重启后,再查看 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
              • 1
              • 2
              • 3
              • 4
              • 5
              • 6
              • 7
              • 8
              • 9

              检查树莓派系统上的各项服务,如: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 /
              • 1
              • 2
              • 3
              • 4
              • 5
              hdparm -tT /dev/mmcblk0

                结果如下:

                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
                • 1

                结果如下:

                fio 结果

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

                总结

                本文是:家庭实验室系列文章 - 玩转树莓派 的一章。 树莓派要更换系统盘,可比 windows 轻松多了,直接使用 dd 命令即可完成。 但是,测试后,笔者不建议大家使用 TF 卡用作树莓派系统盘,因为速度实在是上不去。 TF 的读写速度比 SSD 差远了,这是体质硬伤。建议后续大家玩树莓派直接使用 SSD 用作系统盘(可能需要额外供电).

                EOF

                本文由东风微鸣技术博客 EWhisper.cn 编写!

              • 相关阅读:
                中科院提出“思维传播”,极大增强ChatGPT等模型复杂推理能力
                趣说 Mysql内存篇 Buffer Pool
                网页文本编辑器
                QT5:调用qt键盘组件实现文本框输入
                国庆 day 5
                蓝桥杯练习题十 - 煤球数目(c++)
                Spring源码:Spring 如何解决 Bean 的循环依赖
                Activity中何时能拿到组件的宽高
                CH341/CH340Linux驱动使用教程
                详解MES系统在质检管理中的多角度应用
              • 原文地址:https://blog.csdn.net/east4ming/article/details/127940065