为什么分卷
磁盘镜像动辄几十上百 GB,一次性复制到移动硬盘或跨网络传输时中断就要从头再来,而且 FAT32 之类文件系统还有单文件大小上限。分卷把大文件切成固定大小的若干块,逐块传输与校验,单块损坏只需重传一块。分卷本身不改变内容,合并后必须重新计算哈希,与原始哈希一致才算传输成功。
基本信息
| 适用平台 | Linux/macOS(GNU coreutils split、cat);Windows 可用 7-Zip 分卷 |
|---|---|
| 分卷命令 | split -b 2G image.dd image.dd.part- |
| 合并命令 | cat image.dd.part-* > image.dd |
| 校验 | sha256sum 与原件哈希逐字节比对 |
| 清单 | 分卷列表、每卷大小、合并后哈希一并归档 |
典型使用场景
- 把整盘镜像拷到容量受限的移动硬盘:按 2 GiB 分卷后逐卷校验
- 通过不稳定链路传输:单卷失败只重传该卷,不必重传全部
- 介质单文件上限约束:需要把大镜像拆到 FAT32 分区上
- 异地交接证据:分卷哈希与合并后哈希同时写入移交清单
- 长期归档:分卷配合冗余介质分别存放,降低整体损坏风险
分卷、合并与校验
分卷、合并与校验
# 分卷:固定前缀加序号,按名称排序即为正确顺序
split -b 2G -d -a 2 disk.dd disk.dd.part-
ls -l disk.dd.part-*
sha256sum disk.dd.part-* > parts.sha256
# 合并:顺序必须严格按序号,先小文件演练再合并正式镜像
cat disk.dd.part-* > disk.merged.dd
# 校验:合并结果必须与原始哈希完全一致
sha256sum disk.merged.dd
cat origin.sha256split 常用参数读法
| 参数 | 作用 | 注意 |
|---|---|---|
| -b 2G | 按 2 GiB 大小切分 | 单位写清 G 与 GiB 的差别 |
| -n 5 | 按数量均匀切成 5 份 | 不保证每份等大,备份场景更常用 -b |
| -d | 序号用数字而非字母 | 字母序号排到 z 后会进位到两位,排序更复杂 |
| -a 2 | 序号位数固定为 2 | 位数不足时不影响正确性,只影响排序观感 |
| -e | 不生成空的后缀文件 | 小文件场景避免多余输出 |
合并顺序出错会产生一个大小相同但内容完全不同的文件,哈希校验是唯一可靠的发现手段;正式合并前先用几十 MB 的小文件走一遍全流程。
分卷命名建议使用固定前缀加定长序号(如 image.dd.part-00),这样通配符展开顺序就等于正确拼接顺序,避免顺序歧义。