Ntfs

Linux 核心如何處理 Windows NTFS 文件系統?

  • January 28, 2021

我正在閱讀一篇文章(RW Smith LPIC_1 study Guide),上面寫著:

Linux 可以可靠地讀取 NTFS 並可以覆蓋現有文件,但 Linux 核心無法將新文件寫入 NTFS 分區。

“核心”無法將新文件寫入 NFTS 分區是什麼意思?

在另一個地方它說:

NTFS-3G 是駐留在使用者空間而不是核心空間的讀/寫 NTFS 驅動程序。它被一些 Linux 發行版用作預設的 NTFS 驅動程序。

核心空間與使用者空間有何不同?

此外,由於我們可以在雙引導系統中訪問 Windows 驅動器,為什麼我們不能使用類似的命令查看 Windows 文件系統的類型df -T

在 NTFS-3G 之前沒有適當的讀/寫 NTFS 支持。最初,在雙啟動系統上,可以在 NTFS 分區上寫入文件,但在重新啟動時,在 Windows NT/XP 下,您必須進行文件系統檢查以更正磁碟上的(元)數據。因此,在 Windows NT/XP 和 Linux 之間進行數據交換的 VFAT 分區很常見,因為該文件系統類型的驅動程序沒有此限制/問題。

由於引入了 NFTS-3G (2006),這不再是必需的,您可以編寫新文件並更新現有文件,在 Windows 下重新啟動並使用這些文件,而無需進行文件系統檢查。(到那時,我已經基本不用重新啟動,而是在虛擬機中使用 Windows)。

NTFS-3G 在使用者空間執行,這意味著它不能直接訪問核心數據和常式,但必須像任何普通程序一樣通過系統呼叫(與核心空間(設備)驅動程序相反)。

至於df -T,這似乎與 Fuse 一起執行,並且(正確地)將文件系統類型標識為fuseblk. Fuse 對 NTFS 一無所知,因此它不提供任何更深入的探測。也不df -T探測磁碟,它只是詢問文件系統驅動程序,它正在處理什麼類型(如果可以,您不必掛載文件系統就可以顯示它df -T,在這種情況下,它可以直接探測設備塊並且做一個猜想)。

引用自:https://unix.stackexchange.com/questions/177978