如何列出支持的文件系統?更準確地說,如何確定是否支持 NTFS 等文件系統?
我需要一種方法來允許使用者像 GParted 那樣將磁碟格式化為他們選擇的文件系統。我們有使用 NTFS、EXT4、XFS 和 JFS 的設備,所以我主要對這些感興趣。
我只需要一份支持的清單。
GParted 提供了以下可用列表:
不過,我無法弄清楚如何獲得類似的列表。
該命令
cat /proc/filesystems
提供以下輸出:nodev sysfs nodev rootfs nodev ramfs nodev bdev nodev proc nodev cgroup nodev cpuset nodev tmpfs nodev devtmpfs nodev debugfs nodev securityfs nodev sockfs nodev pipefs nodev anon_inodefs nodev configfs nodev devpts nodev hugetlbfs nodev autofs nodev pstore nodev mqueue nodev selinuxfs xfs nodev rpc_pipefs nodev nfsd nodev binfmt_misc fuseblk nodev fuse nodev fusectl btrfs jfs ext3 ext2 ext4
雖然這個列表對我來說並不明顯支持 NTFS。它是否包含在不同名稱的模組中?我還讀到這個命令沒有提供一個完整的列表。
然後我嘗試了
ls -l /lib/modules/$(uname -r)/kernel/fs
提供以下輸出的命令:total 52 drwxr-xr-x. 2 root root 18 Mar 7 2017 9p -rw-r--r--. 1 root root 21853 Mar 2 2017 binfmt_misc.ko drwxr-xr-x. 2 root root 21 Mar 7 2017 btrfs drwxr-xr-x. 2 root root 26 Mar 7 2017 cachefiles drwxr-xr-x. 2 root root 20 Mar 7 2017 ceph drwxr-xr-x. 2 root root 20 Mar 7 2017 cifs drwxr-xr-x. 2 root root 22 Mar 7 2017 cramfs drwxr-xr-x. 2 root root 19 Mar 7 2017 dlm drwxr-xr-x. 2 root root 24 Mar 7 2017 ecryptfs drwxr-xr-x. 2 root root 22 Mar 7 2017 exofs drwxr-xr-x. 2 root root 20 Mar 7 2017 ext4 drwxr-xr-x. 2 root root 48 Mar 7 2017 fat drwxr-xr-x. 2 root root 23 Mar 7 2017 fscache drwxr-xr-x. 2 root root 34 Mar 7 2017 fuse drwxr-xr-x. 2 root root 20 Mar 7 2017 gfs2 drwxr-xr-x. 2 root root 21 Mar 7 2017 isofs drwxr-xr-x. 2 root root 20 Mar 7 2017 jbd2 drwxr-xr-x. 2 root root 19 Mar 7 2017 jfs drwxr-xr-x. 2 root root 21 Mar 7 2017 lockd -rw-r--r--. 1 root root 19629 Mar 2 2017 mbcache.ko drwxr-xr-x. 6 root root 4096 Mar 7 2017 nfs drwxr-xr-x. 2 root root 38 Mar 7 2017 nfs_common drwxr-xr-x. 2 root root 20 Mar 7 2017 nfsd drwxr-xr-x. 2 root root 4096 Mar 7 2017 nls drwxr-xr-x. 2 root root 23 Mar 7 2017 overlayfs drwxr-xr-x. 2 root root 23 Mar 7 2017 pstore drwxr-xr-x. 2 root root 24 Mar 7 2017 reiserfs drwxr-xr-x. 2 root root 24 Mar 7 2017 squashfs drwxr-xr-x. 2 root root 19 Mar 7 2017 udf drwxr-xr-x. 2 root root 19 Mar 7 2017 xfs
同樣,這對我來說並不明顯該系統支持 NTFS。
我目前正在使用 CentOS(預設情況下不支持 NTFS,但通過安裝
ntfs-3g
and添加ntfsprogs
),但我需要一個跨平台解決方案來製作支持的文件系統列表。主要用於 CentOS、Ubuntu 和 Raspbian。
首先,我不會假設 GParted 從底層系統檢索文件系統列表。它可能只是常見文件系統的硬編碼列表。
也就是說,要檢測 ntfs 支持,最簡單的方法和(可能!)跨平台是查找 mount.ntfs 二進製文件。RedHat(和 CentOS)的 ntfs-3g 軟體包會將其放入 /usr/sbin。
但是,這不適用於所有文件系統類型;例如,沒有 mount.ext4。
您還可以查找 /usr/sbin/mkfs.* 這可能更完整(並且對您來說也更有趣,因為您將使用它來格式化分區)。
但是,這些文件的位置可能會因發行版而異 - 有些可能會將其放入 /sbin,並且您可能還會在 /usr/local/sbin 中找到它,特別是如果 NTFS 支持是從原始碼編譯的。您甚至可以在相應的 /bin 目錄中找到它。