我正在像这样对新硬盘进行归零:
pv /dev/zero | tee /dev/sdb | sha1sum -
我的想法是,我将磁盘置零并同时计算写入了多少个零的校验和。然后我将对 block 设备进行 sha1sum,看看它是否与我最初写入的数据匹配。
问题是,当“tee”用完设备上的空间并终止时会发生什么?假设 block 设备恰好是 100 万字节; tee 显然会用 100 万个零字节填充它,但它会正好 100 万个零字节转发到 sha1sum 吗?
最佳答案
原问题的答案:
不,tee
不会在对参数中指定的文件的写入失败时停止写入 stdout
。
但我认为这并不重要。看来您的目标是确保整个磁盘都被零覆盖,而不用担心磁盘有多大。因此,读取磁盘并将读取的每个 block 与零 block 进行比较就足够了。您可以使用 cmp/dev/sdb/dev/zero
来做到这一点。如果它说“EOF on/dev/sdb”,那么所有字节都是 0。
关于linux - tee 是否转发尚未进入文件的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26349479/