这是第二天,所以我肯定做错了什么。
可以将备用驱动器安装到用户的主子目录安装点,并具有正确的权限供用户使用它。只需简单的 mount [device] [mountpoint] 即可完成此操作。设备是 ext4 逻辑卷,fscks 干净。
如果我告诉 automount/autofs 这样做,它根本无法使用。子目录已创建,但由 root 拥有并只能访问。自动挂载本身失败并显示:
...错误的文件系统类型、错误的选项、/dev/xvdi 上的错误超级块、缺少代码页或帮助程序或其他错误。挂载(ext2):无法挂载 /dev/xvdi(类型 ext4)......
我当前使用的自动映射选项是:
-fstype=auto,defaults,noatime,nodev,nosuid,uid=1000,gid=1000,file_mode=0660,dir_mode=0770 :/dev/xvdi
我已经尝试了很多 - fstype=ext4、ext2,带有或不带有 id 和模式,并且没有任何选项。
我还使用 udev 规则,因为该驱动器并不总是连接的:
KERNEL="xvdi", OWNER="user", GROUP="user", MODE="0770"
有人有类似的工作吗?有没有比 autofs 更简单的东西,它不是基于 systemd 的?
答案1
您可以使用--fstype=autofs
文件系统格式来代替。请检查以下示例以获取信息:
-fstype=auto,defaults,noatime,gid=100,uid=1000,nls=utf8 :/dev/sdax
答案2
看来您这里可能有几处错误。我们来一一查看错误信息的各个部分:
...错误的文件系统类型...
挂载(ext2):无法挂载 /dev/xvdi(类型 ext4)......
首先,错误消息表明自动挂载程序正在尝试将ext4
文件系统作为ext2
一个挂载,这可能不是一件好事。
当手动安装或使用 时/etc/fstab
,您可以将文件系统类型指定为auto
,这将导致内核尝试列出的所有/proc/filesystems
未标记的文件系统类型nodev
,直到找到成功的文件系统类型或用完可尝试的文件系统类型。自动挂载程序可能不喜欢进行这样的多次尝试,并将第一次挂载尝试的失败(如此处ext2
的类型)解释为挂载完全失败。
因此,请在自动挂载时准确指定文件系统fstype=ext4
。
... 糟糕的选择,...
uid=
、gid=
、file_mode=
和等选项dir_mode=
仅存在于一些文件系统类型,不是全部。具有此类选项的文件系统类型要么本身不支持 unix 样式的文件权限,要么具有某些特殊用途。更具体地说,file_mode
和dir_mode
似乎只存在于挂载 SMB/CIFS 网络文件系统;其他文件系统类型使用略有不同的选项名称 - 假设它们甚至首先具有相应的选项。
您应该删除这些选项。相反,作为系统管理员,您最初应该只是将chown
挂载的文件系统的根目录设置为允许用户根据需要使用它的目录,并让用户创建自己的子目录。chmod
chgrp
如有必要,您可以在目录上使用 setgid 位来指示特定组用于在该目录中创建的所有文件和子目录,或者在目录上使用默认 ACL 以施加更复杂的权限。这两个目录都可以被普通用户创建的任何子目录自动继承,因此您只需使用 root 权限设置适当的顶级目录,然后普通用户就可以完成其余的工作。
... /dev/xvdi 上的超级块损坏、缺少代码页或帮助程序或其他错误。
既然你说手动挂载成功,那肯定不是这些问题。