게으른 마운트 해제는 슈뢰딩거의 고양이 마운트를 만듭니다
- 장치가 실제로 마운트 해제되었는지 알 수 없습니다
- "마운트 해제 된"파일 시스템 은 일부 상황에서 계속 액세스 할 수 있습니다
- 어떤 경우 에는 "마운트 해제 된"파일 시스템 에 액세스 할 수 없습니다
가 보안에 대한 잘못된 인식이 :이 파일 시스템이 마운트 해제 된 것으로 보이지만, 현실에서 그것은 단지 파일 이름 공간 / 계층 구조에서 숨겨진되었습니다.
- 프로세스는 여전히 열린 파일 디스크립터를 통해 쓸 수 있습니다
- 상대 경로 이름을 통해 마운트 지점 내에 작업 디렉토리가있는 프로세스에서 새 파일 또는 기존 파일을 열 수 있습니다.
즉, umount -l /media/hdd
더 이상 액세스 할 수없는 경우 /media/hdd/dir/file
(절대 경로 이름) 작업 디렉토리가있는 프로세스가있는 경우 /media/hdd
읽기 / 쓰기가 가능한 새 프로세스를 작성할 수 있습니다 ./dir/file
(상대 경로 이름).
장치를 마운트 해제하려고하면 혼란스러운 메시지가 나타납니다.
# umount --force --all-targets /dev/sdb2
umount: /dev/sdb2: not mounted
이렇게하면 장치가 알 수없는 것처럼 보이지만 여전히 디스크에 쓰는 프로세스 가 있을 수 있습니다.
umount를 차단할 수있는 여러 가지 명백한 상황이 있으므로 파일 시스템이 lsof +f -- /dev/device
아무 것도 표시 되지 않아도 마운트 해제되지 않을 수 있습니다 .
파일 시스템이 실제로 마운트 해제되는지 알 수 없습니다. 찾을 방법이 없습니다.
탈착식 장치
umount -l
이동식 디스크를 사용하는 경우 림보 상태입니다. 보류중인 모든 데이터가 디스크에 기록되었는지 확인할 수 없습니다.
이후에 할 수있는 최선의 방법 umount -l
은 모든 글쓰기가 완료되도록하고 향후 글쓰기를 막는 것 입니다.
이동식 장치를 사용하여 장치가 올바르게 마운트 해제되지 않으면 다음에 장치를 연결할 때 이상한 동작이 발생할 수 있습니다.
장치는 증가 된 장치 이름을 얻습니다 . 즉가 /dev/sdb
됩니다 /dev/sdc
. 커널 로그 메시지는 /dev/sdb
해당 장치가 더 이상 파일로 존재하지 않더라도 여전히 참조 할 수 있습니다 /dev
. (이 문제를 해결하는 유일한 방법은 재부팅하는 것입니다.)
btrfs가 손상 될 수 있습니다. btrfs는 주어진 UUID를 가진 파일 시스템이 한 번에 하나만 존재할 것으로 예상합니다. 커널은 여전히 팬텀 장치와 새 장치에서 사용 가능한 동일한 UUID를 확인합니다. (btrfs 백업 HDD를 다시 빌드해야했습니다).
systemd
잡았다