백업 파일 변경 시 루프 장치를 동기화하는 방법

백업 파일 변경 시 루프 장치를 동기화하는 방법

기본 파일의 데이터가 변경되면 루프 장치 마운트에 표시된 데이터가 올바르지 않습니다.

예:

$ 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위 테스트와 차이가 없습니다.

관련 정보