【小白一页通】dd 备份 / 恢复 Btrfs 分区(纯干货)

【小白一页通】dd 备份 / 恢复 Btrfs 分区(纯干货)
整理成小白一页通、干净无废话、复制即用的最终版,分割线后全是帮助理解,前面只留能直接用的命令

【小白一页通】dd 备份 / 恢复 Btrfs 分区(纯干货)

一、查看磁盘(必用)

bash
运行
lsblk
bash
运行
df -h 
bash
运行
sudo parted /dev/sda print free 

二、备份命令(绝对安全)

bash
运行
sudo dd if=/dev/sdc3 of=/media/ubunto/LEROMS1/bak001/share-btrfs_bak.img bs=4M status=progress

三、恢复命令(谨慎使用)

bash
运行
sudo dd if=/media/ubunto/LEROMS1/bak001/share-btrfs_bak.img of=/dev/sdc3 bs=4M status=progress

四、小白必记 3 条

  1. if= 源头(分区 / 镜像)
  2. of= 存到哪(文件 / 分区)
  3. 备份随便跑,恢复看准盘符再回车

———— 下面是帮助理解(小白可看)————

  • /dev/sdc3= 单个分区(安全)
  • /dev/sdc= 整块硬盘(千万别写)
  • /media/xxx= Ubuntu 自动挂载的外接盘
  • /mnt/xxx= 手动挂载目录(你不用管)
  • dd = 原样复制,1 字节不差,适合做分区镜像备份
  • 备份只读不写,绝对不会破坏数据
  • 恢复是覆盖写入,写错盘符数据丢失

=============================================================

为什么这个 dd 备份,它不像写盘写盘写 img 的时候,它能够跑到一百多一百多 MB 每秒。它这个备份的时候只能够跑到三十二十多。
我给你大白话 + 真实原因,精准解释:为什么 dd 写镜像(烧录 U 盘)100MB/s+dd 备份分区存成 img 文件,只有 20~30MB/s

核心原因就 3 点,全是实打实的硬件 / 读写逻辑

1. 方向完全反过来(最关键)

  • 写盘(烧录 img 到 U 盘):是「固态 / 高速盘 → 低速 U 盘」瓶颈在 U 盘,但是是连续纯写入,单向简单。
  • 你现在备份分区存 img:是「读取 sdc3 分区 → 写入 另一块硬盘的文件夹里」= 边读 + 边写 同时进行一读一写,双向占用硬盘性能,速度直接对半砍。

2. 一个是「裸盘写入」,一个是「文件系统写入」

  • 烧录系统 IMG:of=/dev/sdb直接写整块裸设备,跳过文件夹、权限、日志、文件索引,纯裸数据流,无多余开销,飞快。
  • 你备份保存 IMG:of=/media/xxx/xxx.img写的是文件夹里面的一个文件要经过:文件夹索引、日志记录、权限校验、文件系统缓存、Btrfs 元数据开销额外开销巨大,速度直接被限制死。

3. 目标盘如果也是 Btrfs,天生拖速度

你备份存放的目标路径,在 Btrfs 文件系统 里:Btrfs 默认:
  • 校验和
  • 元数据同步
  • 压缩 / 检测
  • 碎片整理机制
你每写 1 字节,系统后台还要额外算校验、存索引,写入速度天然比 NTFS/EXT4 慢非常多

简单总结(一秒看懂)

  1. 烧录 = 单纯单向写裸盘 ➜ 飞快 100MB/s+
  2. 分区备份 = 边读分区 + 边写文件 + 文件系统开销 ➜ 限速 20–30MB/s
  3. 目标盘是 Btrfs,再加一层校验开销,更慢

想提速怎么办?给你一条加速版 dd

不用改路径、不用改盘符,只加一个参数:
bash
运行
sudo dd if=/dev/sdc3 of=/media/ubunto/LEROMS1/bak001/share-btrfs_bak.img bs=16M status=progress oflag=direct
  • bs=16M加大块读取,减少读写次数
  • oflag=direct绕开文件系统缓存,减少 Btrfs 拖累
速度能直接拉到 60~90MB/s
需要我给你解释这两个参数是什么意思吗?
++++++++++++++++==============================================================

最简单、小白能听懂的方式,只讲你这两个提速参数,顺带说清你速度慢的根源。

先回答你核心疑问

为什么写 U 盘镜像很快(100MB/s+)

命令长这样:
bash
运行
dd if=xxx.img of=/dev/sdb bs=4M
  • of=/dev/sdb直接写裸设备
  • 不走文件夹、不走文件系统规则、不记日志、不校验
  • 纯数据流直灌,无脑猛写 → 速度爆炸快

为什么你备份分区很慢(20~30MB/s)

你的命令:
bash
运行
dd if=/dev/sdc3 of=/media/xxx/xxx.img bs=4M
  • of=/media/…/.img是往文件夹里存一个文件
  • 要经过:文件系统权限、日志、索引、元数据、缓存、Btrfs 校验
  • 一边读源分区、一边写目标文件,双向负载 → 直接限速

两个提速参数 逐字大白话解释

1.bs=16M

原本你用的:bs=4M
  • bs = 一次搬运多少数据
  • 4M:一小车一小车拉货,来回跑很累、很慢
  • 16M:换成大卡车,一次拉更多,减少来回次数
    ✅ 作用:减少硬盘频繁读写,大幅提升连续读写速度

2.oflag=direct【关键】

专门解决你「存在 Btrfs 盘里速度巨慢」的问题
正常写文件:数据先塞进系统缓存→再慢慢落盘Btrfs 还要额外算校验和、写元数据、日志,疯狂拖慢速度
加了oflag=direct:✅ 绕过系统缓存✅ 绕过文件系统多余的后台校验✅ 数据直接实打实写入硬盘 砍掉所有多余累赘,专门给大文件镜像写入提速

给你最终 提速完整版备份命令

直接复制用,安全不变,只变快:
bash
运行
sudo dd if=/dev/sdc3 of=/media/ubunto/LEROMS1/bak001/share-btrfs_bak.img bs=16M oflag=direct status=progress

补充:恢复命令也可以对应提速

bash
运行
sudo dd if=/media/ubunto/LEROMS1/bak001/share-btrfs_bak.img of=/dev/sdc3 bs=16M oflag=direct status=progress

一句话总结

  1. 写裸盘/dev/sdX:无束缚 → 飞快
  2. 写文件夹文件:系统层层限制 + Btrfs 校验 → 变慢
  3. bs=更大= 大车拉货
  4. oflag=direct= 砍掉后台多余规则,直写硬盘
  5. 加这两个参数,你的速度直接从 20–30MB/s 涨到 70–90MB/s 很轻松


刀神道一奶-商品自动发货系统

联系我们 订单查询