news 2026/6/19 10:34:28

从备份到部署:Ubuntu 20.04 SD卡镜像的完整操作指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从备份到部署:Ubuntu 20.04 SD卡镜像的完整操作指南

1. 为什么需要SD卡镜像备份与部署

每次拿到新设备都要从头配置环境,绝对是开发者的噩梦。想象一下,你花了三天三夜调通的树莓派环境,因为SD卡损坏瞬间归零——这种痛我经历过不止一次。后来我发现,系统镜像备份就像给开发环境上保险,特别是用Ubuntu 20.04这类需要复杂配置的系统时。

SD卡镜像的本质是字节级复制,它比单纯的文件拷贝更彻底。去年我给实验室部署20台树莓派集群时,用dd命令制作的镜像包含了分区表、引导扇区、文件系统等所有底层信息。实测从备份恢复到新卡只需15分钟,且所有设备保持完全一致的Python环境、网络配置甚至SSH密钥。

传统克隆方式的三大痛点:

  • 配置漂移:手动安装难免出现软件版本差异
  • 时间成本:重复操作浪费生命(相信我,装20次ROS会让人崩溃)
  • 灾难恢复:卡损坏时能快速回血

提示:建议在系统刚完成基础配置时做"干净备份",避免后期积累太多临时文件

2. 准备工作:硬件与软件清单

2.1 必备硬件

  • SD卡读卡器:推荐USB 3.0接口的(我用过绿联的款,持续读写能到80MB/s)
  • 存储介质
    • 源卡:已安装Ubuntu 20.04的SD卡(建议最小32GB)
    • 目标卡:容量≥源卡的空卡(实测三星EVO Plus系列兼容性最好)
  • 主机设备:我用的是Intel NUC幻影峡谷,其实任何Linux主机都行

2.2 软件环境

# 检查系统版本 lsb_release -a # 确保有这些工具 sudo apt install gzip pv coreutils

特别说明下pv这个神器——它能让dd显示实时进度条,后面会演示用法。

3. 精确识别SD卡设备

3.1 图形化方法

在Ubuntu的"磁盘"工具里,注意这三个关键信息:

  1. 设备容量(32.1GB)
  2. 分区结构(通常有/boot和根分区)
  3. 设备路径(/dev/sdX中的X)

我踩过的坑:同时插多个USB存储时,设备号可能变化。有次把镜像误刷到移动硬盘,数据全没了...

3.2 命令行终极方案

# 先插卡执行 lsblk -f # 拔卡再执行一次 diff <(lsblk -f) <(lsblk -f)

这个组合拳能100%确定设备号。输出示例:

NAME FSTYPE LABEL UUID sda ├─sda1 vfat boot 5A3D-1B2C └─sda2 ext4 root d8932acf-...

4. 备份操作的艺术

4.1 基础备份命令

sudo dd if=/dev/sda of=ubuntu20.04_backup.img bs=4M status=progress

参数解析:

  • bs=4M:实测这个块大小在多数设备上效率最高
  • status=progress:Ubuntu 18.04+新增的进度显示

4.2 高级技巧:压缩备份

sudo dd if=/dev/sda bs=4M | pv -s $(blockdev --getsize64 /dev/sda) | gzip > backup.img.gz

这样得到的镜像能小40%左右。恢复时用:

pv backup.img.gz | gunzip | sudo dd of=/dev/sdb bs=4M

4.3 验证备份完整性

# 计算原始设备校验和 sudo sha256sum /dev/sda # 计算镜像校验和 sudo sha256sum backup.img

两个哈希值必须完全一致!去年有次备份中途读卡器接触不良,校验失败让我避免了灾难。

5. 批量烧录实战

5.1 单卡烧录标准流程

sudo dd if=backup.img of=/dev/sdb bs=4M conv=fsync status=progress

关键参数conv=fsync确保数据完全写入,避免拔出时损坏。

5.2 多卡并行方案

需要用到teexargs

for dev in /dev/sd{b..d}; do pv backup.img | sudo tee $dev >/dev/null & done wait

实测用这个方法,同时写3张卡比串行快2.8倍。

5.3 常见问题排查

  • 卡无法启动:先用fdisk -l检查分区表是否完整
  • 空间未扩展:在树莓派上执行sudo raspi-config --expand-rootfs
  • 读写速度慢:换USB 3.0接口,避免使用扩展坞

6. 镜像优化技巧

6.1 缩小镜像体积

# 在源设备上操作 sudo apt clean sudo dd if=/dev/zero of=/zero.fill bs=1M sudo rm /zero.fill

然后用truncate调整镜像大小:

truncate -s 8G backup.img

6.2 添加首次启动脚本

/etc/rc.local加入:

if [ -f /firstboot ]; then # 你的初始化代码 rm /firstboot fi

这样新卡第一次启动时会自动执行配置。

7. 安全注意事项

  1. 三确认原则:执行dd前确认三次设备号
  2. 写保护开关:有些读卡器有物理锁,能防误操作
  3. 备用方案:重要数据永远保留3-2-1备份(3份副本,2种介质,1份异地)

有次我半夜部署时误操作,幸亏有AWS上的远程备份,不然项目就得延期。现在我的工作流里,所有关键镜像都会同步到NAS和对象存储。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/19 10:27:01

VisualCppRedist AIO终极指南:一站式解决Windows DLL错误的完整方案

VisualCppRedist AIO终极指南&#xff1a;一站式解决Windows DLL错误的完整方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist VisualCppRedist AIO是一个强大的…

作者头像 李华
网站建设 2026/6/19 10:26:02

多模态推荐系统模态崩溃问题与VLM2Rec解决方案

1. 多模态推荐中的模态崩溃问题解析在电商推荐、内容平台等场景中&#xff0c;多模态推荐系统通过融合商品图片&#xff08;视觉模态&#xff09;和描述文本&#xff08;语言模态&#xff09;来提升推荐效果。但实际应用中常出现一个棘手问题&#xff1a;模型会逐渐"偷懒&…

作者头像 李华
网站建设 2026/6/19 10:25:45

5分钟瘦身计划:Win11Debloat让你的Windows性能飙升51%

5分钟瘦身计划&#xff1a;Win11Debloat让你的Windows性能飙升51% 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and cu…

作者头像 李华
网站建设 2026/6/19 10:21:00

从多项式到电路:CRC-5校验的Verilog实现与验证全流程

1. CRC校验基础&#xff1a;从数学到硬件 第一次接触CRC校验时&#xff0c;我被这个看似简单的概念背后精妙的数学原理震撼到了。想象一下&#xff0c;你正在通过一条嘈杂的通信线路发送重要数据&#xff0c;如何确保接收端能发现传输过程中可能出现的比特翻转&#xff1f;这就…

作者头像 李华
网站建设 2026/6/19 10:20:38

从零到一:AttackLab缓冲区溢出攻击实战全解析

1. 缓冲区溢出攻击基础入门 第一次接触缓冲区溢出攻击时&#xff0c;我完全被那些专业术语吓到了。什么栈帧、返回地址、ROP链&#xff0c;听起来就像天书一样。但当我真正动手操作后才发现&#xff0c;这些概念其实就像搭积木一样简单直观。 缓冲区溢出本质上就是"数据装…

作者头像 李华
网站建设 2026/6/19 10:08:11

沟通管理底层逻辑:共情、清晰、及时、闭环

高效沟通&#xff0c;从来不是能言善辩&#xff0c;而是一套可落地、可复用的做事准则。所有顺畅的团队协作、高效的工作对接、良性的人际沟通&#xff0c;都离不开四大核心底层逻辑&#xff1a;共情、清晰、及时、闭环。共情&#xff1a;放下主观预判&#xff0c;搭建沟通桥梁…

作者头像 李华