移至主內容
DarkRanger's Secret Area

主導覽

  • 首頁
  • 關於本站
  • Linux
  • 程式開發
  • N900
  • 譯文
  • 資訊技術辭典

文章分類

  • 影劇
  • 遊戲
  • 筆記
  • 雜文
  • 資訊技術
  • 站務訊息

最新內容

  • How-To:Linux 安裝 DevilutionX
  • 於 2012 年建立的一份音樂播放清單
  • How-To:Linux 安裝 Medal of Honor: Allied Assault
  • Fallout 4 (2015)
  • How-To:Linux 安裝 Blood
  • 《終極動員令》系列早期作品原始碼釋出
  • How-To:Linux 安裝 Doom 3
  • Nausicaä of the Valley of the Wind (1984)
  • Intel 內顯與 Linux 桌面死當問題排解
  • 《哥吉拉 -1.0》心得補遺

NTFS-3G 的「unsupported reparse point」錯誤

發表日期:星期日, 01/14/2018 - 14:55

DR 的家用 PC 是 Windows 10 + Linux(目前是 Fedora 27)雙系統,偶爾會需要在兩個系統之間互相抓取檔案。其中在 Linux 系統上掛載 NTFS 檔案系統的途徑,自然就是透過 NTFS-3G。然而最近 DR 在讀取掛載後的 Windows\Fonts 字型目錄時,卻出現大量的 IO 錯誤。如果針對其中一個無法讀取的檔案進行測試,例如:

  • ls -l simsun.ttc

 

會發現該檔案是指向「unsupported reparse point」。為了進一步釐清狀況,DR 接著將能夠存取的檔案,與不能存取的檔案進行比對。具體的流程是先卸載分割區,然後分別執行以下指令:

  • sudo ntfsinfo -F /Windows/Fonts/simsunb.ttf /dev/sda2
  • sudo ntfsinfo -F /Windows/Fonts/simsun.ttc /dev/sda2

 

兩者的輸出訊息有一些差異,首先是 simsunb.ttf:

    File attributes:     ARCHIVE (0x00000020)
    Namespace:         POSIX
    Filename:         'simsunb.ttf'

 

再來是 simsun.ttc:

    File attributes:     ARCHIVE SPARSE_FILE REPARSE_POINT (0x00000620)
    Reparse point tag:     0x80000017 (Wof compressed)
    Namespace:         POSIX
    Filename:         'simsun.ttc'

 

於是根據網路上的討論:

  • https://bugzilla.redhat.com/show_bug.cgi?id=1377049
  • https://bugs.launchpad.net/ubuntu/+source/ntfs-3g/+bug/1728354

 

得知這是因為 Windows 10 對閒置的系統檔案使用了新的壓縮技術,而 NTFS-3G 需要安裝 plugin 才能夠讀取(解壓縮)這些檔案。至於 plugin 的安裝就相當單純了,先確認系統中的 NTFS-3G 版本為 2017.3.23 或更新版本,然後前往以下頁面:

http://jp-andre.pagesperso-orange.fr/advanced-ntfs-3g.html#download

 

下載其中的 systcomp.zip,接著解開來,將 linux-64 目錄下的 ntfs-plugin-80000017.so 放置到新建立的 /usr/lib64/ntfs-3g 目錄裡(這道程序會因平台架構而異)。完成後,重新掛載檔案系統就不會再出現讀取錯誤了。

 

筆記