微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

虚拟化 Linux 中的 dd 和 hexdump 不一致

如何解决虚拟化 Linux 中的 dd 和 hexdump 不一致

在虚拟化 Linux 客户机中,我有一个硬盘 /dev/sdb。硬盘完全通过虚拟机管理程序传递给来宾。因此,任何其他来宾 VM 和管理程序都不会干扰 Linux 对磁盘的访问。

磁盘已经有两个分区。我在 /dev/sdb3 创建了第三个分区。然后,我执行以下操作:

dd if=/dev/zero of=/dev/sdb3 bs=1M count=1000
sync

当我用 hexdump 读取时,我在某个时间点后读取垃圾值:

hexdump -n 1048576000 /dev/sdb3
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
322db000 4556 4153 0300 8fdc c000 0001 0000 909f
322db010 c000 01ff 0000 0000 0000 0000 0000 0000
322db020 0000 0000 0000 0000 0000 0000 0000 0000
*
322db200 009b 0007 0040 0040 a000 0000 97d1 c000
...

我无法弄清楚这里可能出了什么问题。

我也试过 dd if=/dev/zero of=/dev/sdb3 bs=1M count=1000 oflag=direct,sync 但不一致仍然存在。

是不是因为页面缓存相关的东西?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。