"mount -o remount,ro"가 파일 시스템 버퍼를 플러시합니까?

"mount -o remount,ro"가 파일 시스템 버퍼를 플러시합니까?

Linux에서는 mount -o remount,ro파일 시스템 버퍼/캐시가 플러시됩니까, 아니면 sync이를 달성하기 위해 실행해야 합니까?

답변1

그것~해야 한다캐시를 플러시하세요. 그렇습니다.

이 코드 경로에는 몇 가지 취약점이 있다고만 말하면 충분합니다. 한 곳에서 구현되지 않고 각 개별 파일 시스템에서 구현됩니다. 예를 들어ext2_remount()는 sync_filesystem()을 호출해야 합니다..

게다가 내가 알고 있는 모든 사용 사례에서 시스템 호출과 함께 작동합니다 sync(). 따라서 이에 의존하고 커널에 문제가 발생하면 문제를 가장 먼저 발견할 수 있는 "특권"을 갖게 될 수 있습니다.

특히 주의를 기울이고 싶다면 를 사용할 수 있습니다 . 이는 다른 파일 시스템과의 간섭을 피하기 때문에 sync -f /my/mounted/filesystem/바람직합니다 . sync이는 Linux 시스템 호출을 사용합니다 syncfs().

답변2

~에서위키피디아

파일 시스템이 마운트 해제되거나 읽기 전용 모드로 다시 마운트되는 경우(예: 시스템 종료 전)에도 버퍼가 플러시됩니다.

관련 정보