当基础文件中的数据更改时,循环设备挂载上显示的数据不正确。
例子:
$ mkdir drv
$ dd if=/dev/zero of=data.ext4 bs=1M count=10
$ mkfs.ext4 data.ext4
$ losetup /dev/loop0 data.ext4
$ mount /dev/loop0 drv
$ echo "abcdefg" > drv/test.txt
$ cat drv/test.txt
abcdefg
$ hexdump -C data.ext4 | grep abcd
00169000 61 62 63 64 65 66 67 0a 00 00 00 00 00 00 00 00 |abcdefg.........|
$ sed -i 's/abcd/zzzz/g' data.ext4
$ hexdump -C data.ext4 | grep zzzz
00169000 7a 7a 7a 7a 65 66 67 0a 00 00 00 00 00 00 00 00 |zzzzefg.........|
$ cat drv/test.txt
abcdefg
$ hexdump -C data.ext4 | grep abcd
$
字符串“abcd”不再出现在支持 data.ext4 文件中,但当文件test.txt
为 cat 时,abcd
仍然可以看到。如何同步循环以正确显示支持文件的真实内容?
注:--direct-io=on
与上述测试没有区别。