Linux 和 DD - 无限时间提取一个文件

Linux 和 DD - 无限时间提取一个文件

dd在 Linux 上使用 Linux 从磁带中提取数据(是的,它真的很老派!),但我遇到了一个问题。有时,当我提取文件(从一盘磁带上的不同文件中提取)时,经过很长时间并且文件提取量很大之后,提取仍未完成。所以这是一个问题,因为我知道文件的大小约为 10MB,而不是 1GB 或更多。我知道文件中的块数(例如 4092),所以我想在这个块数处停止提取。你知道是否可以在例如 4092 个块处停止提取吗?

我在网上找了很久,没有找到关于这个的命令。

我使用此命令从磁带中提取文件:

sudo mt -f /dev/nst0 of=file.out bs=512 conv=noerror,sync

答案1

您可以使用 dd 的“count”选项来指定要复制的块数;结合块大小选项“bs”,这允许您控制要提取的数据量。请注意,较小的块大小也可能导致较长的传输时间,具体取决于设备的类型。

首先根据需要定位磁带,例如定位到块 2048:

mt -f /dev/nst0 setblk 2048

然后使用 dd 命令从相关设备读取(注意:可能有多个类似的磁带设备,如果随后要读取其他文件,请检查驱动程序详细信息以找到无倒带设备):

sudo dd if=/dev/nst0 of=file.out bs=1024 count=37 conv=noerror,sync

这将从块 2048 的起始位置读取 37 千字节,每个块(即缓冲区)有 1024 字节。

相关内容