공유 NTFS HD 관련 문제 | 우분투 20.04 x 윈도우 10

공유 NTFS HD 관련 문제 | 우분투 20.04 x 윈도우 10

별도의 m.2 nvme 스토리지 장치에 Ubuntu 20.04 및 Windows 10이 포함된 듀얼 부팅 시스템. NTFS로 설정된 외장 하드 드라이브(14TB)가 있습니다. 두 운영 체제 모두에서 디스크에 쓸 수 있습니다. 그러나 Windows 10에서 HD의 파일을 열 때 Ubuntu 20.04를 사용하여 해당 파일을 생성하면 파일이 손상되는 경우가 많습니다. 예를 들어:

D:\my\path> type myfile.mrc.tlt
The file or directory is corrupted and unreadable.

두 개의 외장 하드 드라이브(하나는 Seagate, 다른 하나는 WD)에서 이 동작을 보았습니다. 나는 Seagate 드라이브에 문제가 있다고 생각했습니다. 하지만 이제는 WD로 복제했습니다.

여기서 문제 해결을 어디서부터 시작해야 할지 잘 모르겠습니다.

실행 중에 드라이브를 마운트하면 journalctl -f다음과 같은 결과가 나타납니다.

Nov 05 17:12:21 axoneme udisksd[894]: Mounted /dev/sdd1 at /media/jared/Elements on behalf of uid 1000
Nov 05 17:12:21 axoneme dbus-daemon[1641]: [session uid=1000 pid=1641] Activating via systemd: service name='org.freedesktop.Tracker1' unit='tracker-store.service' requested by ':1.1' (uid=1000 pid=1637 comm="/usr/libexec/tracker-miner-fs " label="unconfined")
Nov 05 17:12:21 axoneme systemd[1629]: Starting Tracker metadata database store and lookup manager...
Nov 05 17:12:21 axoneme dbus-daemon[1641]: [session uid=1000 pid=1641] Activating service name='org.gnome.Shell.HotplugSniffer' requested by ':1.37' (uid=1000 pid=1860 comm="/usr/bin/gnome-shell " label="unconfined")
Nov 05 17:12:21 axoneme dbus-daemon[1641]: [session uid=1000 pid=1641] Successfully activated service 'org.gnome.Shell.HotplugSniffer'
Nov 05 17:12:21 axoneme dbus-daemon[1088]: [session uid=125 pid=1088] Successfully activated service 'org.freedesktop.Tracker1'
Nov 05 17:12:21 axoneme systemd[1072]: Started Tracker metadata database store and lookup manager.
Nov 05 17:12:21 axoneme dbus-daemon[1641]: [session uid=1000 pid=1641] Successfully activated service 'org.freedesktop.Tracker1'
Nov 05 17:12:21 axoneme systemd[1629]: Started Tracker metadata database store and lookup manager.
Nov 05 17:12:21 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10255 > 9984): Illegal seek
Nov 05 17:12:21 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10256 > 9984): Illegal seek
Nov 05 17:12:21 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10164 > 9984): Illegal seek
Nov 05 17:12:21 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10165 > 9984): Illegal seek
Nov 05 17:12:22 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10009 > 9984): Illegal seek
Nov 05 17:12:22 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10010 > 9984): Illegal seek
Nov 05 17:12:22 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10030 > 9984): Illegal seek
Nov 05 17:12:22 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10031 > 9984): Illegal seek

ls -lth마찬가지로 Ubuntu 20.04가 설치된 NTFS HD의 디렉터리에서 실행하면 손상된 디렉터리에 다음이 표시됩니다.

Nov 05 17:16:03 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10294 > 9984): Illegal seek
Nov 05 17:16:03 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10290 > 9984): Illegal seek
Nov 05 17:16:03 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10360 > 9984): Illegal seek

답변1

따라서 의견 토론에 따르면 Windows가 NTFS 파티션에 액세스하면 문제가 발생하기 시작합니다. 그럼 윈도우 문제인가요? ntfs-3g FUSE 드라이버가 Windows 드라이버와 비교하여 잘못된 방식으로 무언가를 해석하여 비호환성을 초래할 가능성이 있는 것 같습니다.

이 문제가 극히 드물다는 점이 흥미롭습니다.(journalctl에서 정확한 오류가 있는 게시물 몇 개를 찾았습니다. 하나는 2008년의 게시물이고 다른 하나는 RAID와의 이상한 상호 작용에 대한 게시물입니다.). 이는 이러한 문제를 일으키는 특별한 구성이 있음을 암시할 수 있으며 그것이 무엇인지 알아내는 것이 매우 흥미로울 수 있기 때문에 주의해야 할 사항입니다. 그러나 나는 그것을 독자들에게 연습으로 남겨두겠습니다.

해결 방법 측면에서 시도해 볼 수 있는 것은 다음과 같습니다.

  1. 새로운 ntfs를 사용해 보세요커널 드라이버(사용중인 ntfs-3g와 반대),Linux 5.15부터 Paragon Software가 커널에 기여했습니다.. 아직 제거되지 않은 이전 읽기 전용 ntfs 커널 드라이버와 혼동하지 마십시오. 5.15 이상의 Linux 커널 버전으로 업데이트해야 합니다. 22.04에서는 5.15가 기본적으로 사용되는 것 같습니다.(그리고 20.04에 오래된 소프트웨어를 사용하면 많은 최적화와 기능을 놓치게 되므로 20.04 → 22.04로 업그레이드하는 것이 좋습니다.).

    즉석에서 파일 관리자가 기본적으로 ntfs3을 사용하도록 만드는 방법을 모르지만 예를 들어 /etc/fstabntfs3 드라이버를 사용하는 항목을 추가할 수 있습니다.

    이는 문제 해결에 도움이 될 수도 있고 그렇지 않을 수도 있습니다. 하지만 그렇지 않다면 이는 순전히 귀하의 Windows 시스템의 결함이라고 97% 확신합니다.(희귀성에 대한 내 요점도 참조하십시오). 제가 확신할 수 있는 이유는 Paragon Software가 오랫동안 파일 시스템 드라이버를 판매해 온 오래된 회사이고 원래 Windows 드라이버와의 비호환성을 해결하기에 충분한 전문 지식과 실제 경험을 갖고 있었기 때문입니다.

  2. 특히 NTFS를 사용하여 파일을 공유하는 경우 다음을 고려할 수도 있습니다.

    1. 대신 UDF 파일 시스템을 사용합니다. Windows와 Linux 모두에서 지원됩니다.
    2. exfat를 사용합니다.5.7부터 SAMSUNG은 exfat용 드라이버를 추가했습니다., 그리고 그들은또한 출시exfatprogs이므로 적절한 지원이 이루어집니다.

추신: 이상적으로는 최신 ntfs-3g를 사용해 본 후 문제가 여전히 재현 가능하면 버그를 보고하십시오. 하지만 실제로는 ntfs-3g 문제라는 점을 개발자에게 설득해야 할 수도 있습니다. ntfs3 드라이버가 제대로 작동한다면 이는 문제가 ntfs-3g 드라이버에 있다는 암묵적인 증거일 수 있습니다.

관련 정보