如何移除autofs中挂载失败的ZFS文件系统?
如何移除autofs中挂载失败的ZFS文件系统?
看起来你遇到的是Solaris 11.3里autofs和ZFS自动挂载冲突的问题,别担心,咱们一步步来排查解决:
第一步:确认ZFS文件系统的挂载属性
首先先搞清楚这两个出问题的ZFS当前的配置状态,执行以下命令列出所有ZFS的关键挂载属性:
zfs list -o name,mountpoint,canmount,mounted
重点看那两个挂载失败的ZFS的mountpoint(挂载点)和canmount(是否允许自动挂载)属性,这能帮我们确认它们是不是被错误地交给autofs管理了。
第二步:检查并修改autofs配置
autofs的核心配置在主映射文件/etc/auto_master,以及它引用的其他映射文件里:
- 打开
/etc/auto_master,查找有没有包含那两个失败挂载点的条目。比如如果你的挂载点是/app1和/app2,可能会看到类似这样的行:/app /etc/auto_app - 打开对应的映射文件(比如上面的
/etc/auto_app),找到指向那两个ZFS的条目,它们通常长这样:app1 -fstype=zfs pool/app1 app2 -fstype=zfs pool/app2 - 删除这些出错的条目,保存文件。
- 重新加载autofs服务,让配置生效:
svcadm restart svc:/system/filesystem/autofs:default
第三步:恢复ZFS自身的自动挂载设置
现在要确保这两个ZFS由Solaris的ZFS服务来管理自动挂载,而不是autofs:
- 设置
canmount属性为auto(让ZFS在系统启动时自动挂载):zfs set canmount=auto pool/app1 zfs set canmount=auto pool/app2 - 确认挂载点属性正确,避免和autofs的管理目录冲突:
zfs set mountpoint=/app1 pool/app1 zfs set mountpoint=/app2 pool/app2 - 手动挂载一次验证是否正常:
执行zfs mount pool/app1 zfs mount pool/app2zfs list -o name,mounted确认它们已经成功挂载。
第四步:处理挂载点非空的问题
autofs报错“挂载点非空”,说明挂载点目录里已经有文件了,你需要先清理:
- 如果挂载点当前是挂载状态,先卸载:
umount /app1 - 创建临时目录备份挂载点里的文件:
mkdir /tmp/app1_backup mv /app1/* /tmp/app1_backup/ - 重新挂载ZFS后,再把需要的文件移回去:
zfs mount pool/app1 mv /tmp/app1_backup/* /app1/
最后重启系统,验证这两个ZFS是否能正常自动挂载,同时autofs不再抛出错误。
备注:内容来源于stack exchange,提问作者retired
相关产品推荐
相关产品推荐

