如何在 Linux 上挂载 exFAT 驱动器
问题:我正在尝试在我的 Linux 计算机上安装一个以 exFAT 格式格式化的 USB 闪存驱动器。但是
mount
命令失败并出现以下错误。如何修复此错误并安装 exFAT 驱动器?
mount: /mnt: unknown filesystem type 'exfat'.
exFAT 是 Microsoft 开发的专有文件系统,主要用于 Windows 和许多现有的 SD 卡或 USB 驱动器。与 FAT32 相比,exFAT 在文件大小限制(显着高于 FAT32 的 4GB 限制)、最大磁盘大小、最大文件数、磁盘分配性能、时间戳粒度、文件名长度等方面进行了许多改进。由于这些增强以及与 Windows 和 MacOS 的良好兼容性,exFAT 已被用作许多现有大容量 SD 卡(例如 SDXC)或 USB 闪存驱动器的默认文件系统。
在 Linux 上,exFAT 文件系统的用户空间实现(称为“fuse-exfat”)已提供对 exFAT 的支持。 Linux 内核从版本 5.4 开始纳入了对 exFAT 的本机支持。
如果您无法在 Linux 系统上挂载 exFAT 驱动器,则意味着您的内核低于 5.4,并且您没有安装 fuse-exfat
。
为了在内核低于 5.4 的 Linux 上挂载 exFAT 驱动器,您应该在 Linux 系统上安装 fuse-exfat
,如下所示。
在 Linux 上安装 fuse-exfat
在 Ubuntu、Debian 或 Linux Mint 上安装 fuse-exfat
在基于 Debian 的发行版上,fuse-exfat
以名为 exfat-fuse
的软件包形式提供。因此,安装 exfat-fuse
以及一组 exFAT 实用程序 (exfat-utils
):
$ sudo apt install exfat-fuse exfat-utils
在 CentOS 7 上安装 fuse-exfat
在 CentOS 7 上,启用 Nux Dextop 和 EPEL 存储库,然后运行:
$ sudo yum install fuse-exfat exfat-utils
在 CentOS 8 上安装 fuse-exfat
在 CentOS 8 上,启用 EPEL 存储库,然后使用 yum 命令:
$ sudo yum install fuse-exfat exfat-utils
在 Fedora 上安装 fuse-exfat
在 Fedora 上,首先启用 rpmfusion-free 存储库,然后使用默认的包管理器:
$ sudo dnf install fuse-exfat exfat-utils
在 Linux 上挂载 exFAT 驱动器
安装fuse-exfat
后,您可以继续使用mount
命令挂载exFAT驱动器。这里exFAT驱动器被映射到/dev/sda1
,并且该驱动器被挂载到/mnt
。
$ sudo mount -t exfat /dev/sda1 /mnt
现在使用 mount
和 df
命令验证挂载是否成功:
$ mount | grep sda
/dev/sda1 on /mnt type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)
$ df -T | grep sda
/dev/sda1 fuseblk 62482048 2432 62479616 1% /mnt
以非 root 用户身份挂载 exFAT 驱动器
在上面,exFAT 驱动器作为 root 挂载,这意味着只有 root 具有对该驱动器的读/写访问权限。如果您想以常规非特权用户身份安装它,则可以在安装驱动器时指定您的 uid
和 gid
,如下所示。
首先,通过以下方式识别您的 uid
和 gid
:
$ id
uid=1001(alice) gid=1001(alice) groups=1001(alice),130(libvirt)
然后使用 mount
命令指定 uid
和 gid
:
$ sudo mount -o rw,users,uid=1001,gid=1001,dmask=007,fmask=117 /dev/sda1 /mnt