Ubuntu: 네트워크 드라이브의 제거할 수 없는 .tmp 파일, PID 없음

Ubuntu: 네트워크 드라이브의 제거할 수 없는 .tmp 파일, PID 없음

TL,PhD 버전:내 로컬 네트워크 드라이브에 이름 변경/삭제/복사/덮어쓰기/열기/등을 할 수 없는 localdb.kdbx.tmp 파일이 있습니다. 모든 시도(sudo 또는 기타)는 "장치 또는 리소스 사용 중" 오류를 발생시킵니다. fusionr 및 lsof를 실행하면 아무것도 표시되지 않으며 파일에 적극적으로 액세스하는 것도 없으며 관련 PID 또는 상위 프로세스도 없습니다. 루트 및 다른 사용자를 허용하도록 FUSE를 설정하여 드라이브를 다시 마운트해도 아무런 차이가 없습니다. 파일 권한은 양호하며 디렉터리의 다른 모든 항목(백업 등)은 예상대로 작동합니다.

세부 사항:여러 현장 컴퓨터 간에 공유되는 로컬 네트워크 드라이브에서 호스팅되는 KeePass 공유 데이터베이스가 있습니다. 일부 컴퓨터는 Windows를 실행하고 일부 컴퓨터는 Linux를 실행합니다. 저는 개인적으로 keepass2 2.34가 설치된 32비트 Ubuntu 14.04를 사용합니다.

어제 localdb.kdbx KP 데이터베이스에 일부 최신 업데이트를 저장하려고 할 때(당시 파일에 액세스한 유일한 사람이었습니다) Keepass에서 오류가 발생하고 데이터베이스가 손상되었을 수 있다고 말했습니다. 다음날 파일을 덮어쓸 수 있다고 가정하고 컴퓨터를 종료했습니다. 하지만 오늘 아침에 와서 드라이브에 연결했을 때 localdb.kdbx는 localdb.kdbx.tmp로만 존재했고 아무도 열 수 없었습니다(KeePass는 특별히 "경로에 대한 잠금 충돌" 오류를 발생시켰습니다).

이 문제는 KeePass 포럼에서 다루겠습니다. 하지만 파일 이름을 사용할 수 있어야 하므로 백업에서 다시 만들 수 있도록 삭제하겠습니다. 문제는 파일로 어떤 작업을 하려고 할 때마다 "장치 또는 리소스가 사용 중입니다" 오류가 발생한다는 것입니다. .tmp 파일에서 lsof 및 fusionr를 사용하면 PID가 없는 공백만 반환되므로 삭제할 항목이 없으며 삭제를 위해 파일을 "해제"할 방법이 없습니다. FUSE 문제일지도 모른다고 생각하고 해결책을 시도했습니다.sudo를 통해 Gigolo 탑재 공유에 액세스하는 방법그리고경고: stat() fusion.gvfsd-fuse 파일 시스템을 사용할 수 없습니다.불운.

어떤 팁이 있나요?

답변1

예상 도착 시간:제가 오해했습니다.아니요SMB Windows 시스템, 그러나 QNAP Linux 버전 3.2.26(avahi-discover는 이를 Windows로 인식함)을 실행하는 시스템.

네트워크 드라이브는 SMB Windows 시스템(실수로 Linux라고 생각했습니다) (ETA 참조)이고 파일을 잠그는 프로세스가 Windows에서 실행되고 있는 것으로 나타났습니다 . 나는 lsof와 fusionr가 실행 중인 머신(즉, 네트워크 드라이브가 아닌 내 로컬 머신)의 프로세스만 반환한다는 점을 고려하지 않았습니다.

네트워크 드라이브에는 SSH가 활성화되어 있지 않으며 smbclient에서 잠금을 무시할 수 없으므로 네트워크 관리자에게 드라이브를 재부팅하도록 요청했습니다. 프로세스가 종료되어 파일을 삭제할 수 있었습니다.

(다른 분들을 위한 참고용: 저는 avahi-discover를 사용하여 운영 체제와 네트워크 드라이브의 기타 세부 정보를 얻습니다.)

서버 프로세스의 방향을 알려준 @derobert에게 감사드립니다.

관련 정보