`dd` 到特定位置

`dd` 到特定位置

dd是一个很棒的复制和转换工具。

有什么方法dd(或任何其他方法)将文件的前几个字节转储到未安装的分区?

像这样的东西:

dd if=hda2.pbr of=/dev/hda2 bs=512 count=1

我试图实现的目标是将分区的 PBR 复制到文件中,并在需要时恢复它。当不需要该分区时,我将转储带有一些垃圾值的 PBR,以便底层分区将无法安装

答案1

根据您的编辑,我认为您可能会发现以下内容非常有用:

man wipefs

描述

wipefs 可以擦除文件系统、raid 或分区表签名(魔法弦)从指定的设备使签名不可见libblkid......

选项

-a--all删除所有可用的签名。可以使用列表选项来限制已删除的签名集-t

-b--backup创建文件的签名备份$HOME/wipefs-<devname>-<offset>.bak。欲了解更多详情,请参阅例子部分...

例子

wipefs --all --backup /dev/sdb

擦除设备中的所有签名并为每个签名/dev/sdb创建签名备份文件。~/wipefs-sdb-<offset>.bak

dd if=~/wipefs-sdb-0x00000438.bak of=/dev/sdb \
    seek=$((0x00000438)) bs=1 conv=notrunc

ext2从备份文件恢复签名~/wipefs-sdb-0x00000438.bak

答案2

你当然可以这样做。将 UNIX/Linux 中的所有内容视为文件。所以基本上它是从一个文件复制到另一个文件。

例如,您甚至可以将文本复制到分区并毫无问题地将其读回。所以你的例子是完美的。

相关内容