Linux 核心如何處理 Windows NTFS 檔案系統?

Linux 核心如何處理 Windows NTFS 檔案系統?

我正在閱讀一篇文章(RW Smith LPIC_1學習指南),內容如下:

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

「核心」無法將新檔案寫入 NFTS 分割區是什麼意思?

在另一個地方說:

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

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

另外,由於我們可以在雙重開機系統中存取 Windows 驅動器,為什麼我們不能使用諸如 之類的命令來查看 Windows 檔案系統的類型df -T

答案1

在 NTFS-3G 之前沒有適當的讀/寫 NTFS 支援。最初,在雙啟動系統上,可以在 NTFS 分割區上寫入文件,但在 Windows NT/XP 下重新啟動時,您必須執行檔案系統檢查以修正光碟上的(元)資料。因此,使用 VFAT 分割區用於 Windows NT/XP 和 Linux 之間的資料交換是很常見的,因為該檔案系統類型的驅動程式沒有此限制/問題。

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

NTFS-3G 在用戶空間中運行,這意味著它無法直接存取核心資料和例程,但必須像任何普通程式一樣透過系統呼叫(與核心空間(裝置)驅動程式相反)。

至於df -T,它似乎與 Fuse 一起運行,並且(正確地)將檔案系統類型標識為fuseblk。 Fuse 對 NTFS 一無所知,因此它不提供任何更深入的探測。也不df -T探測光碟,它只是詢問檔案系統驅動程式正在處理什麼類型(如果可以,您不必安裝檔案系統即可使其顯示在 中df -T,在這種情況下,它可以直接探測裝置區塊並做一個猜測) 。

相關內容