更完善的 NTFS 支持?Linux 用戶等了太久

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在即將到來的 Linux Kernel 5.15 更新中,將添加 Paragon 的 NTFS3 內核驅動,以對微軟 "},{"type":"link","attrs":{"href":"https:\/\/zh.wikipedia.org\/wiki\/NTFS","title":null,"type":null},"content":[{"type":"text","text":"NTFS"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 文件系統提供更好的支持。此前 Paragon 使用 GPL 許可證開源了他們的 "},{"type":"link","attrs":{"href":"https:\/\/github.com\/Paragon-Software-Group\/linux-ntfs3","title":null,"type":null},"content":[{"type":"text","text":"NTFSv3"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 驅動程序,Linux 5.15 目前併入了這個提交。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Linux 內核包含 NTFS 支持已經有很長一段時間了,然而到目前爲止,在 Linux 上使用 NTFS 文件系統一直讓人很頭疼。舊的 NTFS 驅動程序已經很久沒有維護了,另外的辦法是使用來自 Tuxera 的 "},{"type":"link","attrs":{"href":"https:\/\/zh.wikipedia.org\/zh\/NTFS-3G","title":null,"type":null},"content":[{"type":"text","text":"NTFS-3G"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",這也是目前主流的解決方案,但在實際使用中也有不少小問題。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"NTFS-3G 不能很好的勝任工作"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"最初 Linux 內核沒有對 NTFS 做原生支持,NTFS-3G 是藉助 Linux 的用戶空間文件系統 "},{"type":"link","attrs":{"href":"https:\/\/zh.wikipedia.org\/zh-hans\/FUSE","title":null,"type":null},"content":[{"type":"text","text":"FUSE"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 模塊在用戶層實現的一個模仿對 NTFS 支持的文件系統,對 NTFS 的訪問邏輯代碼都是在用戶層代碼實現的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"NTFS-3G 設計之初就包含讀寫,爲什麼也出現只讀的情況。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"首先 NTFS 是微軟開發的的私有文件系統並不是開源的,也從來沒有公開過任何技術細節,並且一直在不斷地進行更新。NTFS-3G 沒有辦法獲得微軟官方的支持,NTFS-3G 的解決方案是通過種種逆向手段反推 NTFS 文件系統結構,以及如何訪問 NTFS 的邏輯。這也就說明 NTFS-3G 對 NTFS 的兼容是沒有微軟官方保證的。NTFS 本身版本更新、你的系統更新或者 NTFS-3G 本身出問題等等都可能對 Linux 上 NTFS 的讀寫造成影響,此外,出問題了也需要 NTFS-3G 的工程師繼續逆向分析來解決。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Linux 上使用 NTFS 主要問題還是缺乏穩定且功能齊全的讀\/寫支持。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"NTFS3 內核開源助 Linux NTFS 迎來新生"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Paragon 去年在 GNU 通用許可證下發布了 NTFS3 驅動程序,在此之前,NTFS3 是一個用於商業銷售的驅動程序。開源的原因可能是由於微軟的 "},{"type":"link","attrs":{"href":"https:\/\/zh.wikipedia.org\/zh-hans\/ExFAT","title":null,"type":null},"content":[{"type":"text","text":"exFAT"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 吸引了大部分的注意力,正在慢慢變得主流,NTFS 不再是行業的寵兒。而 Linux 作爲雲部署中使用最廣泛的操作系統,隨着容器的興起,NTFS 也不會成爲文件系統的統治者,將 NTFS 的驅動程序作爲專有解決方案的盈利能力越來越不可行。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在開源後的一年裏,NTFS3 的驅動經過了多輪審查,用來提高代碼質量,以保證更好地跟上游編碼標準保持一致。由於當前內核驅動已經很久沒有維護,NTFS3 已經可以提供比當前內核驅動更多的功能,尤其是寫入支持。跟同樣基於 FUSE 的開源 NTFS-3G相比也具有更強的功能和性能。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Paragon 將 NTFS3 驅動程序提交到 Linux 內核的動作也獲得了一致好評,這一舉措甚至被稱作“英雄行爲”,給那些不得不在 Linux 上處理 NTFS 文件系統的人帶來了救命良藥。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Linux 之父 Linus Torvalds 表示他們可能會將舊的 NTFS 內核代碼轉移到 staging 上,慢慢廢棄直到完全刪除它,但目前來看 NTFS3 只是一個新的選擇。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"雖說 NTFS 的使用正在減少,但大多數外部驅動器仍是用 NTFS 文件系統格式化的,新的驅動程序的加入將更好地幫助 Linux 在默認狀態下使用 NTFS 格式的驅動器。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"目前就是等待 Linux 5.15 的正式更新以及各大發行版儘快跟進。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"參考鏈接:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=f7464060f7ab9a2424428008f0ee9f1e267e410f","title":null,"type":null},"content":[{"type":"text","text":"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=f7464060f7ab9a2424428008f0ee9f1e267e410f"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"關聯閱讀:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.infoq.cn\/article\/w6ht3tn7upblb4xctdhm","title":null,"type":null},"content":[{"type":"text","text":"爲什麼早期的 Windows 需要整理碎片"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/xie.infoq.cn\/article\/6a8e27982179221e8ffbac489","title":null,"type":null},"content":[{"type":"text","text":"如何實現支持百億級文件的分佈式文件存儲"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章