NTFS-3G

出自 Arch Linux 中文维基

NTFS-3G微軟 NTFS 的一個開源實現,同時支持讀寫。NTFS-3G 開發者使用 FUSE 文件系統輔助開發並幫助實現可移植性。

安裝[編輯 | 編輯原始碼]

安裝 ntfs-3g 軟件包。

手動掛載[編輯 | 編輯原始碼]

有兩種手動掛載 NTFS 分區的方法。傳統方法是:

# mount /dev/你的_NTFS_分区 /mount/point

在 Arch 中不需要顯式指定掛載類型 ntfs-3gmount 命令默認會使用 /usr/bin/mount.ntfs(在安裝了 ntfs-3g 軟件包之後被符號連接到 /usr/bin/ntfs-3g)。

第二種方法是直接調用 ntfs-3g

# ntfs-3g /dev/你的_NTFS_分区 /mount/point

可用選項參見 ntfs-3g(8)

格式化[編輯 | 編輯原始碼]

警告: 與往常一樣,仔細檢查設備路徑。
# mkfs.ntfs -Q -L 卷标 /dev/sdXY
注意: -Q 通過不向驅動器填充零且不檢查壞扇區來加速格式化。

配置[編輯 | 編輯原始碼]

你的 NTFS 分區可以被配置成自動掛載,或者預先配置好來安裝你想要的方式掛載。配置可以在文件系統配置文件 fstab 中指定或者使用 udev 規則。

默認配置[編輯 | 編輯原始碼]

使用默認配置會在啟動時掛載 NTFS 分區。使用這種方法,如果掛載位置的父文件夾有合適的用戶或組權限,用戶或組就可以讀寫這個分區。

把以下內容寫入/etc/fstab:

# <file system>  <dir>  <type>  <options>  <dump>  <pass>
/dev/NTFS-part  /mnt/windows  ntfs-3g   defaults		  0       0

Linux權限兼容[編輯 | 編輯原始碼]

Linux系統通常將目錄的權限設為755,將文件的權限設為644。如果您經常使用NTFS分區,建議保留這些權限。下面的示例將上述權限分配給普通用戶:

# 安装具有 linux 兼容权限的内部 Windows 分区,即权限755用于目录(dmask=022)和权限644用于文件(fmask=133)
/dev/NTFS-partition  /mnt/windows  ntfs-3g uid=username,gid=users,dmask=022,fmask=133 0 0

或者,如果Windows上的權限對你很重要,你可以使用 ntfsusermap(8) 命令將 Windows 用戶 映射到 Linux 用戶上。ntfs-3g將會處理權限的翻譯。

允許組/用戶[編輯 | 編輯原始碼]

/etc/fstab中,您還可以指定其他選項,如允許訪問(讀取)分區的用戶。例如,您允許users組中的人員具有訪問權限:

/dev/NTFS-partition  /mnt/windows  ntfs-3g   gid=users,umask=0022    0       0

默認情況下, 上述命令僅為root用戶啟用寫支持。若要為其他用戶啟用,必須顯示指定應授予寫入權限的用戶。使用uid參數加您的用戶名以啟用用戶寫支持:

/dev/NTFS-partition  /mnt/windows  ntfs-3g   uid=username,gid=groupid,umask=0022    0       0

如果您在一個單用戶計算機上運行,您可能希望自己擁有該文件系統並授予所有可能的權限:

/dev/NTFS-partition  /mnt/windows  ntfs-3g   uid=username,gid=groupid    0       0

基本的 ntfs-3g 選項[編輯 | 編輯原始碼]

對大多數人來說,上面的設置已經足夠了。這是一些其他的對於不同的Linux文件系統的通用選項。完整列表參見ntfs-3g(8) § OPTIONS

umask
umask 是一個嵌入的 shell 命令,可以自動設置新創建的文件的權限。對於 Arch Linux,對於 root 和 user 默認的 umask 是 0022。設為 0022 將使新目錄有目錄權限755,新文件有權限644。你可以在這裡查看更多關於 umask 權限的信息:。
noauto
如果設置了 noauto/etc/fstab 中的 NTFS 條目不會在啟動時自動掛載。
uid
用戶 id 號碼。這允許指定用戶具有完全的訪問權限。你的uid可以用 id 命令獲得。
fmask and dmask
umask 類似但是分別定義的是文件和目錄的權限。

下面的選項只對ntfs-3g有用:

windows_names
阻止創建擁有不被Windows允許的名字的文件、目錄以及擴展屬性的。

允許用戶掛載[編輯 | 編輯原始碼]

默認情況下,如果ntfs-3g在掛載一個塊設備ntfs-3g需要 root 權限運行, 即使在/etc/fstab中有user選項。有關詳細信息,請參閱 ntfs-3g-faq。即使在fstab裡面有了user選項,ntfs-3g仍然需要root權限。

注意:
  • ntfs-3g包沒有內置FUSE支持。使用ABS重新構建包以啟用FUSE支持。
    • 完整的解釋是, "user" and "users" work via a setuid mount not dropping its setuid privilege so that the block device can be used without root. However, ntfs-3g has a hard-coded restriction in ntfs-3g that bails on setuid if an external libfuse is used.
    • 並沒有好的技術原因 for not allowing setuid for external FUSE besides a mistrust of the library. This patch removes the said restriction.
  • 卸載權限似乎存在問題,因此如果需要卸載文件系統,則仍需要 root 權限。您還可以使用fusermount -u /mnt/mountpoint來卸載文件系統並避免使用root權限。此外, 如果在/etc/fstab中使用users(複數)而不是user選項,您可以使用mountumount命令裝卸載文件系統。

對於非塊設備,比如普通的鏡像,命令行下的 ntfs-3g 應該可以在普通用戶權限下照常使用,因為當無法與內核直接交互時,the underlying FUSE calls 會重定向到 setuid-root fusermount

調整NTFS分區大小[編輯 | 編輯原始碼]

注意: 對重要數據請提前做好備份!

大多數已購買的系統已經有Windows安裝在其上,有些人希望在進行 Arch Linux 安裝時不要完全擦除它。因此,在某些方面,調整現有 Windows 分區的大小以為 Linux 分區騰出空間是很有用的。這經常通過Live CD或可引導的USB閃存驅動器完成。

對於Live CD,典型的創建過程是下載ISO文件,刻錄到CD,然後從它啟動。InfraRecorder是一個免費(通過GPL3)的Windows上的CD/DVD刻錄應用程序,這是很合適的方法。如果您想要使用可引導的USB驅動器,請參閱USB flash installation media中創建可引導的USB驅動器的方法。

有許多可引導的CD/USB映像可用。此列表不是詳盡無遺的, 但是是個很好的開始:

  • GParted — 為x86計算機設計的小型GNU/Linux發行版。允許你使用最新版GParted應用的所有功能。不包括額外的軟件包System Rescue CD,並且磁盤加密可能不受支持。
http://gparted.sourceforge.net/ || gparted
  • Parted Magicgparted。使用分區編輯器可以調整大小、複製和移動分區。您可以增長或收縮您的 C: 驅動器,為新操作系統創建空間。嘗試從丟失的分區中進行數據搶救。
https://partedmagic.com/ ||

請注意, 調整 NTFS 分區大小的重要程序包括 ntfs-3g 和類似於 (G)parted 或 fdisk 的實用程序,由util-linux包提供。除非您是高級用戶,否則最好使用像 GParted 這樣的工具來執行任何調整大小操作,以儘量減少由於用戶錯誤而導致數據丟失的可能性。

如果您的系統上已經安裝了 Arch Linux,並且只想調整現有 NTFS 分區的大小,則可以使用 parted 和 ntfs-3g 包來完成。或者,在安裝 GParted 包後, 可以使用 GParted GUI,其本質是調用 ntfsresize(8) 命令

疑難解答[編輯 | 編輯原始碼]

已壓縮的文件[編輯 | 編輯原始碼]

若您在掛載一個Windows 10的NTFS文件系統,並且讀取其中的文件和文件夾時出現以下情形:

  1. 出現鏈接到「不支持的重解析點」(unsupported reparse point)的損壞的符號鏈接,或
  2. 出現錯誤信息:cannot access some_file: Input/output error (此時Could not load plugin /usr/lib64/ntfs-3g/ntfs-plugin-80000017.so: Success日誌中)

其原因是NTFS-3G默認不支持某些類型的重解析點。一些插件可用於部分特性的兼容性,如:

  • 系統壓縮
  • 文件去重
  • OneDrive文件

點擊此處查看更多細節。

系統壓縮可以壓縮特定的文件。目前由兩種可能的解決方案。

你可以安裝ntfg-3g的 ntfs-3g-system-compressionAUR 插件. 目前插件只支持讀取,並不支持寫入,例如創建文件便不被支持。

或者,在Windows 10內禁用壓縮:

C:\WINDOWS\system32> compact.exe /CompactOS:never

損壞的NTFS文件系統[編輯 | 編輯原始碼]

如果NTFS文件系統有錯,ntfs-3g會以只讀方式掛載它。要修復NTFS系統,啟動Windows並使用它的磁盤檢查程序,chkdsk。考慮到 ntfsfix 只能修復一些錯誤,如果失敗,chkdsk 可能會成功。

想要修復 NTFS 文件系統,該設備必須已經被卸載。例如,想要修復 /dev/sda2 中的 NTFS 文件系統:

# umount /dev/sda2
# ntfsfix /dev/sda2
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
NTFS volume version is 3.1.
NTFS partition /dev/sda2 was processed successfully.
# mount /dev/sda2

如果順利的話,該分區已經可以寫入了。

WIndows分區下的中文文件亂碼[編輯 | 編輯原始碼]

簡體中文本地化#Windows 分區下的中文文件名亂碼

元數據保存在Windows中,拒絕掛載[編輯 | 編輯原始碼]

當與 Windows 8 或 10雙引導時,試圖掛載一個可見的Windows可能會出現如下錯誤:

The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount '/dev/sdc1': Operation not permitted
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the 'ro' mount option.

問題是因為Windows 8中引入"快速啟動"特性。啟用快速啟動後,所有分區的元數據的一部分被還原到它們在以前關閉的狀態。因此,在 Linux 上所做的更改可能會丟失。這會發生在任何選擇"關閉"或"休眠" NTFS 分區的Windows 8 或 10 下。然而,通過選擇"重新啟動"關閉 Windows 是安全的。

要啟用對其他操作系統的系統分區寫入,請確保禁用快速重啟。通過以管理員身份執行命令:

powercfg /h off

你可以在 控制面板 >硬件與聲音> 電源選項 > 系統設置 > 當電源鍵按下時做什麼, 去掉勾選啟用快速啟動

刪除Windows休眠元數據[編輯 | 編輯原始碼]

作為一個以上乾淨關機方法的替代方法,有一個辦法可以徹底刪除休眠後保存的 NTFS 元數據。這個方法只適用於當你不能或不想啟動至 Windows,並希望它完全關閉。這個辦法是在使用 ntfs-3g 提供的 ntfsfix

# ntfsfix /dev/你的NTFS分区
警告: 這個方法意味着已保存的 Windows 會話將徹底丟失。使用該選項後果自負。

掛載失敗[編輯 | 編輯原始碼]

如果你按本指南內容操作也無法掛載你的 NTFS 分區,可以嘗試一下在 fstab 中的所有 ntfs 分區裡加上 UUID。參見 示例.

Windows mount failure[編輯 | 編輯原始碼]

Windows 不會識別一個沒有相應的分區類型的NTFS分區。創建一個與 Windows 共用的NTFS分區時的常見陷阱就是忘記設置分區類型為 NTFS。 見 fdisk 或者 分區工具

測試版特性 & 發布[編輯 | 編輯原始碼]

有一個關於「高級特性」的網頁,由 Jean-Pierre André ,NTFS-3G的作者之一維護。它提供了:

  • 關於在 NTFS-3G 中處理一些 NTFS 特性的文檔,包括:
    • 符號鏈接,連接點,和一些其他的重解析點。
    • 擴展屬性 (xattrs) as an interface for ADS streams and special NTFS attributes
    • 安全和權限,包括 POSIX 映射和 ACL 映射。
  • 用於解析特殊重解析點的插件。 文檔中提供的信息也適用於 Tuxera 版本 (2017.3.23)。系統壓縮插件和去重插件也適用於 Tuxera 版本,但 OneDrive 插件需要需要一些只在高級發布版可用的調整項。 當然,這個網頁目前由 J.-P. André撰寫。一個舊版的網頁可在 tuxera.com被找到;它鏈接到 OpenIndiana 的頁面, 又鏈接到 J.-P. André 的網。

參見[編輯 | 編輯原始碼]