Debian의 Dropbox는 NTFS 공유에서 EAGAIN 오류를 받습니다.

Debian의 Dropbox는 NTFS 공유에서 EAGAIN 오류를 받습니다.

Debian 설치에서 dropbox를 사용할 때 몇 가지 이상한 문제가 발생합니다:

  • 테스트 저장소가 활성화된 Debian을 실행 중입니다.
  • 웹사이트에서 Dropbox를 설치했습니다.
  • 내 보관용 계정 위치는 NTFS로 포맷된 공유 파티션에 있습니다.

다음 줄을 사용하여 fstab에 dropbox-location을 설치했습니다.

UUID=662058B320588C45 /media/ntfs-data ntfs-3g uid=1000,gid=users 0 0

이를 통해 드라이브에 대한 읽기/쓰기 액세스가 가능해집니다. 드라이브는 파일 관리자나 콘솔(또는 다른 프로그램)을 사용하여 액세스하는 한 작동합니다.

해당 드라이브에 이미 존재하는 위치에 액세스하도록 보관용 계정을 설정한 후 거의 모든 파일의 색인을 생성한 후 다음 메시지와 함께 중지되었습니다.

Downloading 38 files ...

나는 strace다음을 생성하는 프로세스에 연결하여 무슨 일이 일어나고 있는지 확인하려고 했습니다(메시지가 계속 나타나기 때문에 이것은 단지 발췌일 뿐입니다).

recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}, {fd=13, events=POLLIN}], 3, 0) = 0 (Timeout)
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}, {fd=13, events=POLLIN}], 3, 496) = 0 (Timeout)
futex(0x9ee784, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 49446674, {1372094398, 476504000}, ffffffff) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x9ee804, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x9ee800, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
futex(0x9ee840, FUTEX_WAKE_PRIVATE, 1)  = 1
futex(0x9ee7c0, FUTEX_WAKE_PRIVATE, 1)  = 1
futex(0x9ee784, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x9ee780, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
futex(0x9ee7c0, FUTEX_WAKE_PRIVATE, 1)  = 1
futex(0x9ee784, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 49446680, {1372094398, 476765000}, ffffffff) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x9ee804, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x9ee800, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
futex(0x9ee840, FUTEX_WAKE_PRIVATE, 1)  = 1
futex(0x9ee7c0, FUTEX_WAKE_PRIVATE, 1)  = 1
futex(0x9ee784, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x9ee780, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
futex(0x9ee7c0, FUTEX_WAKE_PRIVATE, 1)  = 1
futex(0x9ee784, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 49446687, {1372094398, 477169000}, ffffffff) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x9ee804, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x9ee800, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
futex(0x9ee7c0, FUTEX_WAKE_PRIVATE, 1)  = 0
futex(0x9ee784, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x9ee780, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
futex(0x9ee7c0, FUTEX_WAKE_PRIVATE, 1)  = 1
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}, {fd=13, events=POLLIN}], 3, 0) = 0 (Timeout)
poll([{fd=12, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=12, revents=POLLOUT}])
writev(12, [{"5\30\4\0\26\10@\1[\0@\1\17\0\17\0=\0\4\0[\0@\1\0\0\0\0\17\0\17\0"..., 96}, {NULL, 0}, {"", 0}], 3) = 96
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}, {fd=13, events=POLLIN}], 3, 0) = 0 (Timeout)
poll([{fd=12, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=12, revents=POLLOUT}])
writev(12, [{"$\30\1\0&\10\2\0\341\0\0\0", 12}, {NULL, 0}, {"", 0}], 3) = 12
poll([{fd=12, events=POLLIN}], 1, 4294967295) = 1 ([{fd=12, revents=POLLIN}])
recvfrom(12, "\1\1;U\0\0\0\0\341\0\0\0\177\0\300\0\246\5S\1\246\5S\1\24\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=12, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=12, revents=POLLOUT}])
writev(12, [{"&\30\2\0\177\0\300\0", 8}, {NULL, 0}, {"", 0}], 3) = 8
poll([{fd=12, events=POLLIN}], 1, 4294967295) = 1 ([{fd=12, revents=POLLIN}])
recvfrom(12, "\1\1<U\0\0\0\0\341\0\0\0G\0`\2\246\5S\1\246\0*\1\24\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=12, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=12, revents=POLLOUT}])
writev(12, [{"&\30\2\0G\0`\2", 8}, {NULL, 0}, {"", 0}], 3) = 8
poll([{fd=12, events=POLLIN}], 1, 4294967295) = 1 ([{fd=12, revents=POLLIN}])
recvfrom(12, "\1\1=U\0\0\0\0\341\0\0\0N\0`\2\246\5S\1\244\0*\1\24\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=12, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=12, revents=POLLOUT}])
writev(12, [{"&\30\2\0N\0`\2", 8}, {NULL, 0}, {"", 0}], 3) = 8
poll([{fd=12, events=POLLIN}], 1, 4294967295) = 1 ([{fd=12, revents=POLLIN}])
recvfrom(12, "\1\1>U\0\0\0\0\341\0\0\0\0\0\0\0\246\5S\1\244\0\25\1\24\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=12, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=12, revents=POLLOUT}])
writev(12, [{"%\30\1\0", 4}, {NULL, 0}, {"", 0}], 3) = 4
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}, {fd=13, events=POLLIN}], 3, 0) = 0 (Timeout)
recvfrom(12, 0x33b3ae4, 4096, 0, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}, {fd=13, events=POLLIN}], 3, 496  C-c C-c^C <unfinished ...>
Process 5687 detached

나는 다음을 실행했습니다 ntfsck:

sudo ntfsck /dev/sdb1
Unsupported: replay_log()
Unsupported: check_volume()
Checking 219648 MFT records.
Unsupported cases found.

Windows로 재부팅하고 chkdsk를 실행해도 오류가 해결되지 않았습니다.

이게 뭔지/어떻게 고칠 수 있는지 아는 사람 있나요?

답변1

TL;박사;

문제에 대한 최종 해결책은 #4입니다.

1. 대체 /etc/fstab 옵션

나는 당신이 원하는 것을 할 수 있다고 주장하는 몇몇 사람들을 찾았지만 당신과 비슷한 문제에 대한 언급은 본 적이 없습니다. 내가 찾을 수 있는 유일한 차이점은 /etc/fstab그들이 사용하는 마운트입니다. 나는 다음을 시도해 볼 것입니다 :

UUID=662058B320588C45 /media/ntfs-data ntfs-3g defaults 0 0

이것이 작동하지 않으면 특별히 이것을 찾았습니다. 로케일에 따라 조정해야 하지만 솔직히 말해서 왜 필요한지 이해가 안 됩니다.

UUID=662058B320588C45 /media/ntfs-data ntfs-3g defaults,locale=en_GB.UTF-8 0 0

2. $HOME/Dropbox를 링크로 사용

이는 NTFS 파티션에서 Dropbox 폴더를 직접 사용하는 대신 $HOME/DropboxNTFS 파티션의 Dropbox 폴더를 가리키는 생성된 링크를 사용하는 또 다른 방법입니다.

$ ln -s /media/ntfs-data/Windows/User/<username>/Dropbox /home/<username>/Dropbox

이것이 왜 중요한지는 잘 모르겠지만 Dropbox 애플리케이션은 명령으로 생성된 Unix 링크를 통해 액세스하기 때문에 NTFS 공유를 EXT3/4 디렉터리로 인식할 가능성이 있습니다 ln.

3. Dropbox의 최신 버전은 무엇인가요?

귀하께서는 최신 버전의 Dropbox 클라이언트를 사용하고 계신 것으로 확인되었습니다. 당신은 할 수여기에서 업데이트된 버전을 찾으세요.. 이것릴리스 노트는 여기에 있습니다.게다가.

일반적으로 배포 저장소에 포함된 어떤 버전보다 Dropbox의 다운로드 가능한 버전을 사용하는 것이 더 좋습니다.

또한 명령줄에서 설치할 때 비공식 Dropbox Wiki의 Dropbox 설치 지침도 사용했습니다. 주제 제목은 다음과 같습니다.완전한 텍스트 기반 Linux 환경에 Dropbox를 설치하세요..

4.ntfs-3g에 옵션 마운트

항목 에 파일 및 폴더에 대한 올바른 마스크를 추가하기만 하면 됩니다 /etc/fstab(이렇게 하면 모든 경우에 ntfs 드라이브가 Linux와 더 잘 호환됩니다).

UUID=662058B320588C45 /media/ntfs ntfs-3g id=1000,gid=1000,dmask=022,fmask=133 0 0

인용하다

관련 정보