バックアップファイルの変更時にループデバイスを同期する方法

バックアップファイルの変更時にループデバイスを同期する方法

基本ファイルのデータが変更されると、ループデバイスのマウントに表示されているデータが正しくありません。

例:

$ 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上記のテストと違いはありません。

ベストアンサー1

おすすめ記事