Linux

如何列出支持的文件系統?更準確地說,如何確定是否支持 NTFS 等文件系統?

  • January 23, 2018

我需要一種方法來允許使用者像 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-3gand添加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 目錄中找到它。

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