완전히 종료하는 동안 실행하는 것이 합리적입니까 sync
? 캐시된 모든 데이터가 디스크에 기록될 것이라고 umount
가정합니다 .umount
내가 생각할 수 있는 유일한 이상한 상황은 실제 디스크 위에 루프 장치(예: LUKS 컨테이너)가 있는 경우입니다.
마운트 해제는 먼저 파티션 마운트 해제를 시도할 수 있습니다. 그리고 루프 장치가 마운트 해제될 때까지 파티션을 마운트 해제하지 못할 수도 있습니다. 하지만 이 경우 데이터가 동기화됩니까?
답변1
sync
블록 장치가 아닌 파일 시스템에만 영향을 미칩니다.
그러나 제거와 관련이 없는 흥미로운 질문에는 대답할 수 없습니다. sync
파일 시스템은 어떤 순서로 처리됩니까? 루트 파일 시스템의 캐시를 먼저 플러시한 다음 루프 장치 파일 시스템의 캐시를 플러시하면 두 번째 플러시에서 루트 파일 시스템에 대한 새 캐시 데이터가 생성되므로 모든 것이 완전히 깨끗해지는 순간은 결코 없을 수 있습니다. 그러나 커널은 sync()
시스템 호출을 반환하기 전에 모든 파일 시스템 캐시 보고서가 정리될 때까지 기다릴 수 있습니다.
그러나 sync
커널이 이 작업을 올바르게 수행한다고 신뢰하지 않는다면 파일 인수를 사용하여 호출하고 올바른 순서로 여러 번 호출할 수 있습니다.
답변2
sync
아니요, (성공)을 추구하는 것은 의미가 없습니다 umount
.
umount가 보류 중인 모든 쓰기를 파일 시스템에 동기화했습니다. sync 명령은 마운트된 파일 시스템의 캐시된 파일 시스템 데이터를 동기화합니다.
이제 LUKS로 구성된 dm-crypt 장치가 새로 고침 명령을 올바르게 전달합니다(참조:cryptsetup FAQ 프로젝트 2.13 dm-crypt/LUKS를 사용하여 저널 파일 시스템을 매핑하는 경우에도 여전히 일반적인 트랜잭션 보장을 제공합니까?).