dd sKip 和 seek参数理解

假如我有一个文件abc.gz,大小为83456k,我想用dd命令实现如下备份 结果:首先将备份分成三个部分,第一部分为备份文件abc.gz的前10000k,第二部分为中间的70000k,最后备份后面的3456k.ITPUB个人空间.jk0o%Z+fX3|-A"Y
ITPUB个人空间4SXo%_"Z+L+_8?
备份方法如下三条命令:ITPUB个人空间X6jA;l1E
dd if=abc.gz of=abc.gz.bak1 bs=1k count=10000
EE4W~u sK1fA6V0 dd if=abc.gz of=abc.gz.bak2 bs=1k skip=10000 count=70000ITPUB个人空间 I9Q8I3/*HZ&Z'y/E'I
dd if=abc.gz of=abc.gz.bak3 bs=1k skip=80000ITPUB个人空间"b1joju7~:h.Kf.v

+TK-^+LWY0 恢复方法如下:
.Ur.R ] gQ&/0f0 dd if=abc.gz.bak1 of=abc.gz
A8LFda6L*J4_0 dd if=abc.gz.bak2 of=abc.gz bs=1k seek=10000
B4R#i{ C#X}tU~"L0 dd if=abc.gz.bak3 of=abc.gz bs=1k seek=80000
@p/gn6i3D:g2P0
S*gn8f�VH0 这时你查看一下恢复的文件将和你原来的文件一模一样,说明备份成功!

理解说明:skip=xxx是在备份时对if 后面的部分也就是原文件跳过多少块再开始备份;seek=xxx则是在备份时对of 后面的部分也就是目标文件跳过多少块再开始写。ITPUB个人空间rO$R H!O.e
ITPUB个人空间Qp'R#t]6fn@$@T

`dd` 命令是一个功能强大且灵活的工具,适用于多种数据操作任务,如备份恢复磁盘、创建启动盘、克隆磁盘等。以下是一些常用的 `dd` 命令参数及其使用方法: 1. **`if=文件名`**:指定输入文件名,缺省为标准输入。用于指定源文件,比如 `if=/dev/sda` 表示从 `/dev/sda` 设备读取数据 [^3]。 2. **`of=文件名`**:指定输出文件名,缺省为标准输出。用于指定目的文件,例如 `of=/backup/sda.img` 表示将数据输出到 `/backup/sda.img` 文件中 [^3]。 3. **`ibs=bytes`**:一次读入 `bytes` 个字节,即指定一个块大小为 `bytes` 个字节。`obs=bytes` 则是一次输出 `bytes` 个字节。`bs=bytes` 可同时设置读入/输出的块大小为 `bytes` 个字节,例如 `bs=1M` 表示每次读写 1MB 的数据 [^3]。 4. **`cbs=bytes`**:一次转换 `bytes` 个字节,即指定转换缓冲区大小 [^3]。 5. **`skip=blocks`**:从输入文件开头跳过 `blocks` 个块后再开始复制。比如 `skip=10` 表示跳过前 10 个块 [^3]。 6. **`seek=blocks`**:从输出文件开头跳过 `blocks` 个块后再开始复制。通常在输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时使用 [^3]。 7. **`count=blocks`**:仅拷贝 `blocks` 个块,块大小等于 `ibs` 指定的字节数。例如 `count=100` 表示只拷贝 100 个块 [^3]。 8. **`conv=conversion`**:用指定的参数转换文件,有多种转换选项,如: - **`ascii`**:转换 ebcdic 为 ascii。 - **`ebcdic`**:转换 ascii 为 ebcdic。 - **`ibm`**:转换 ascii 为 alternate ebcdic。 - **`block`**:把每一行转换为长度为 `cbs`,不足部分用空格填充。 - **`unblock`**:使每一行的长度都为 `cbs`,不足部分用空格填充。 - **`lcase`**:把大写字符转换为小写字符。 - **`ucase`**:把小写字符转换为大写字符。 - **`swab`**:交换输入的每对字节。 - **`noerror`**:出错时不停止。 - **`notrunc`**:不截短输出文件。 - **`sync`**:将每个输入块填充到 `ibs` 个字节,不足部分用空(NUL)字符补齐 [^3]。 ### 示例 - 克隆磁盘: ```bash dd if=/dev/sda of=/dev/sdb bs=4M ``` 此命令将 `/dev/sda` 磁盘的数据克隆到 `/dev/sdb` 磁盘,每个数据块大小为 4MB。 - 创建磁盘镜像: ```bash dd if=/dev/sda of=/backup/sda.img bs=1M count=1024 ``` 该命令从 `/dev/sda` 设备读取 1024 个 1MB 的数据块,创建一个磁盘镜像文件 `/backup/sda.img`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

do2jiang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值