使用 autofs 与 ntfs-3g 时遇到问题

使用 autofs 与 ntfs-3g 时遇到问题

我尝试使用规则挂载 ntfs 磁盘autofs。这是从属文件:

# cat /etc/autofs/auto.windows
# automount second disk which contains windows data
/windows        -fstype=ntfs-3g,uid=n0t,gid=n0t,nofail,users    :/dev/sdb2

以及以下相关行auto.master

# cat /etc/autofs/auto.master
[...]
/-      /etc/autofs/auto.windows
[...]

我正在跑步Archlinux,这是我得到的结果systemd

Aug 30 15:47:51 n0tlocal systemd[1]: Stopping Automounts filesystems on demand...
-- Subject: Unit autofs.service has begun shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit autofs.service has begun shutting down.
Aug 30 15:47:52 n0tlocal systemd[1]: Starting Automounts filesystems on demand...
-- Subject: Unit autofs.service has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit autofs.service has begun starting up.
Aug 30 15:47:52 n0tlocal automount[2359]: do_umount_autofs_direct: couldn't get ioctl fd for direct mount /windows
-- Subject: Unit autofs.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit autofs.service has finished starting up.
-- 
-- The start-up result is done.

但是,当我手动尝试运行此命令时:

# mount -t ntfs-3g /dev/sdb2 /mnt

我有一个运行良好的 rw 文件系统。

答案1

正如另一个答案所提到的,autofs 版本(至少 5.0.7 和 5.0.8)有一个错误。他们添加了标志-s,但 ntfs-3g 不支持该标志。

如果更新不是您的选择,那么这里有一个不太好的解决方法。它/bin/ntfs-3g用一个包装器脚本替换,该脚本只会删除该-s标志并将其他选项传递给真正的 ntfs-3g。

首先,创建包含以下内容的文件/bin/ntfs-3g_wrapper

#!/bin/bash

OPTS=$(echo $@ | sed "s/-s/ /")

exec /bin/ntfs-3g_real $OPTS

现在使其可执行,将实际重命名ntfs-3g为,并创建从到的ntfs-3g_real符号链接:ntfs-3gntfs-3g_wrapper

  • sudo chmod +x /bin/ntfs-3g_wrapper
  • sudo mv /bin/ntfs-3g /bin/ntfs-3g_real
  • sudo ln -s /bin/ntfs-3g_wrapper /bin/ntfs-3g

我已经成功使用了这种方法。当然,这是一个肮脏的解决方案。ntfs-3g例如,对软件包的更新可能会用新版本的二进制文件替换您的符号链接ntfs-3g,问题又出现了。

这个答案基于ScottE 的博客文章,非常感谢,斯科特。

答案2

至少 autofs 5.0.7 有一个错误,导致所有 ntfs-3g 挂载失败。升级到 5.1.1。

原因是 mount 命令的“-s”选项(SLOPPY)只能与 nfs 一起使用。

/usr/sbin/automount -dvf
...
mount_mount: mount(generic): calling mount -t ntfs-3g -s -o utf8,uid=99,gid=99,umask=000 /dev/sdb1 /mnt/auto/usb2
>> ntfs-3g: Unknown option '-s'.

相关内容