CentOS 預設內核不支援 NTFS 文件系統讀寫,插入 NTFS 格式的 U 盤或移動硬盤時會報 unknown filesystem type 'ntfs' 錯誤。解決方案是安裝開源項目 ntfs-3g,它基於 FUSE(用戶態文件系統)實現了完整的 NTFS 讀寫支持。本文詳述從源碼編譯安裝到開機自動掛載的全流程。
# 安裝編譯工具鏈與 FUSE 開發包
yum install -y gcc make fuse fuse-devel
ntfs-3g_ntfsprogs-2022.10.3.tgz)。/usr/local/src)並解壓編譯:tar zxvf ntfs-3g_ntfsprogs-2022.10.3.tgz
cd ntfs-3g_ntfsprogs-2022.10.3
./configure --prefix=/usr/local/ntfs-3g
make
make install
--prefix 指定安裝路徑,便於後續管理與卸載。
fdisk -l | grep NTFS
# 輸出示例:
# /dev/sdb1 1 10443 83883366 7 HPFS/NTFS
此處 /dev/sdb1 即為目標分區設備名。
mkdir -p /mnt/ntfs-disk
chmod 755 /mnt/ntfs-disk
mount -t ntfs-3g /dev/sdb1 /mnt/ntfs-disk
# 或直接使用 ntfs-3g 命令
ntfs-3g /dev/sdb1 /mnt/ntfs-disk
掛載成功後,df -h 可見新掛載點,ls /mnt/ntfs-disk 可讀寫文件。
編輯 /etc/fstab,在文件末尾添加:
/dev/sdb1 /mnt/ntfs-disk ntfs-3g defaults,noatime,uid=1000,gid=1000,umask=022 0 0
參數說明:
defaults:預設掛載選項(rw, suid, dev, exec, auto, nouser, async)noatime:不更新訪問時間,減少寫入操作,延長閃存壽命uid/gid:指定文件擁有者,避免權限問題(替換為實際用戶 ID)umask=022:文件權限掩碼,預設 644,目錄 755保存後執行 mount -a 驗證配置無誤,重啟系統即可自動掛載。
| 現象 | 原因與解決 |
|---|---|
掛載報錯 Transport endpoint is not connected | FUSE 模塊未加載,執行 modprobe fuse 並加入 /etc/modules-load.d/fuse.conf |
寫入提示 Read-only file system | Windows 快速啟動導致 NTFS 髒標記,進入 Windows 關閉快速啟動或執行 ntfsfix /dev/sdb1 修復 |
| 中文文件名亂碼 | 添加掛載參數 locale=zh_CN.UTF-8 或 iocharset=utf8 |
ntfsfix:修復 NTFS 一致性錯誤,清除髒標記ntfslabel:查看/修改卷標ntfsclone:高效克隆 NTFS 分區ntfscp:向 NTFS 卷複製文件(無需掛載)通過 ntfs-3g,CentOS 即可無縫讀寫 NTFS 設備,無論是數據遷移、備份還是雙系統共享數據,都能得到可靠支持。建議生產環境優先使用穩定版,並定期備份重要數據。