创建写入 /dev/null 的虚拟块设备

Joh*_*ith 15 linux networking block-device null

我想在设置中测试一些物理链接。我可以用来测试这个的软件工具需要一个块设备来读/写。我可用的块设备无法使物理链路饱和,因此我无法对其进行全面测试。

我知道我可以设置一个由文件支持的虚拟块设备。所以我的想法是以某种方式将虚拟块设备设置为 /dev/null 但问题当然是我无法从中读取。有没有一种方法可以设置一个写入 /dev/null 但在读取时总是返回零的虚拟块设备?

感谢您的任何帮助!

sou*_*edi 33

https://wiki.gentoo.org/wiki/Device-mapper#Zero

有关用法,请参阅 Documentation/device-mapper/zero.txt。此目标没有特定于目标的参数。

“零”目标创建的功能类似于 /dev/zero:所有读取都返回二进制零,并且所有写入都被丢弃。通常用于测试 [...]

这将创建一个 1GB(1953125 个扇区)的零目标:

root# dmsetup create 1gb-zero --table '0 1953125 zero'
Run Code Online (Sandbox Code Playgroud)


Pet*_*des 5

如果您不需要它具有特定的限制大小,则可以直接使用/dev/zero。从技术上讲,它是一个字符设备,而不是块。

/dev/zero丢弃类似的写入/dev/null但读取为零而不是 EOF。

手册页所述,在 Linux 上,您可以使用任何名称创建自己的名称
mknod -m 666 /dev/zero c 1 5,当然也可以创建一个符号链接到/dev/zero.