![客户信息:](https://linux22.com/image/505071/%E5%AE%A2%E6%88%B7%E4%BF%A1%E6%81%AF%EF%BC%9A.png)
我们遇到了一个问题,OSX 10.6 客户端通过 AFP 看到指向 OSX Server 10.5 的“幽灵”挂载点。有时(过去一个月内有 5 次)客户端计算机似乎与服务器存在某种连接问题,并重新挂载共享。Finder 在整个过程中看起来都正常,但在旧的挂载中仍保留为目录,并且出现了一个带有递增后缀的/Volumes/
新点;例如:/Volumes/
lrwxr-xr-x 1 root admin 1 Feb 3 12:39 Macintosh HD -> /
dr-x------@ 9 cutter staff 264 Jun 4 2008 Produktion
drwxrwxr-x 10 cutter staff 408 Jan 5 07:44 Simplex TimeMachine
dr-x------@ 7 cutter staff 264 Jun 4 2008 Transfer
drwxr-xr-x+ 3 cutter admin 102 Jan 13 14:24 Voyager
drwxr-xr-x+ 3 cutter admin 102 Jan 18 10:28 Voyager-1
drwxr-xr-x+ 3 cutter admin 102 Jan 25 09:20 Voyager-2
drwxr-xr-x+ 3 cutter admin 102 Jan 25 16:31 Voyager-3
drwxr-xr-x+ 3 cutter admin 102 Feb 3 08:30 Voyager-4
drwx------@ 10 cutter staff 296 Jan 13 13:12 Voyager-5
但是 Finder 向用户展示了正常的“Voyager”共享,并且没有迹象表明有任何故障在起作用。
OSX Finder 错误 http://www.dietpizza.ch/images/finder-bug.png
虽然 Finder 允许人们导航到共享上的目标文件(我们“看到” /Voyager/myfile.txt
),但我们软件中使用的任何文件路径都有数字后缀(如/Voyager-5/myfile.txt
)。一旦使用新后缀(/Voyager-6
)重新安装挂载点,旧路径就会失效。我们的软件会保留对文件的永久引用,当它尝试访问该文件时,砰!但对于查看 Finder 的用户来说,没有明显的问题。
我已经grep
在系统日志中寻找线索,但似乎没有什么线索:
manoa:Logs stu$ grep mount *
system.log.4:Feb 3 08:53:33 Streaming1-MacPro fseventsd[38]: check_vol_last_mod_time:XXX failed to get mount time (25; &mount_time == 0x10043f8b8)
system.log.4:Feb 3 09:31:44 Streaming1-MacPro UnmountAssistant[811]: Volume unmounted successfully
system.log.5:Feb 2 09:28:56 Streaming1-MacPro UnmountAssistant[10763]: Volume unmounted successfully
system.log.6:Feb 1 12:26:17 Streaming1-MacPro UnmountAssistant[2277]:
system.log.7:Jan 28 13:54:05 Streaming1-MacPro fseventsd[38]: check_vol_last_mod_time:XXX failed to get mount time (25; &mount_time == 0x10077f8b8)
system.log.7:Jan 28 13:55:34 Streaming1-MacPro UnmountAssistant[27673]: Volume unmounted successfully
system.log.7:Jan 28 13:55:36 Streaming1-MacPro UnmountAssistant[27673]: Volume unmounted successfully
并grep
获取最后一次“重影”共享的时间戳:
system.log.4:Feb 3 08:30:33 localhost com.apple.launchd[1]: *** launchd[1] has started up. ***
system.log.4:Feb 3 08:30:37 localhost mDNSResponder[17]: mDNSResponder mDNSResponder-214 (Oct 16 2009 06:09:30) starting
system.log.4:Feb 3 08:30:38 Streaming1-MacPro configd[15]: setting hostname to "Streaming1-MacPro.local"
system.log.4:Feb 3 08:30:38 Streaming1-MacPro configd[15]: network configuration changed.
system.log.4:Feb 3 08:30:42 Streaming1-MacPro bootlog[44]: BOOT_TIME: 1265182233 0
system.log.4:Feb 3 08:30:45 Streaming1-MacPro configd[15]: network configuration changed.
system.log.4:Feb 3 08:30:46 Streaming1-MacPro com.apple.usbmuxd[26]: usbmuxd-176 built for iTunesNineDot on Sep 24 2009 at 16:11:05, running 32 bit
system.log.4:Feb 3 08:30:46 Streaming1-MacPro configd[15]: network configuration changed.
system.log.4:Feb 3 08:30:46 Streaming1-MacPro com.intego.commonservices.daemon[53]: Using preferences format 3
system.log.4:Feb 3 08:30:46 Streaming1-MacPro com.apple.SystemStarter[27]: Starting Qmaster services
system.log.4:Feb 3 08:30:47 Streaming1-MacPro blued[45]: Apple Bluetooth daemon started
system.log.4:Feb 3 08:30:47 Streaming1-MacPro /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow[34]: Login Window Application Started
system.log.4:Feb 3 08:30:49 Streaming1-MacPro loginwindow[34]: Login Window Started Security Agent
system.log.4:Feb 3 08:30:49 Streaming1-MacPro WindowServer[72]: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
system.log.4:Feb 3 08:30:49 Streaming1-MacPro com.apple.WindowServer[72]: Wed Feb 3 08:30:49 Streaming1-MacPro.local WindowServer[72] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
那里有网络内容,但没什么可怕的。
Intertubes 上有一些关于类似问题的信息,大多数人似乎都在说:
- 卸载共享
- 删除 /Volumes/ 中剩余的旧文件夹/共享
- 重新开始
- 添加分享回来
这些机器通常在新闻编辑室全天候运行,并告诉我的生产用户“只需完成这四项技术任务,几天或几周后就没问题了,以后某个时候你还得再做一次”不太顺利。
我想要一个永久的解决方案——那些讨厌的幽灵卷应该消失并且永远不会再回来!
客户信息:
输出mount
:
/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk1s2 on /Volumes/Simplex TimeMachine (hfs, local, nodev, nosuid, journaled)
afp_4gqctq000egI0000oM0000VU-1.2d000003 on /Volumes/Produktion (afpfs, nodev, nosuid, mounted by cutter)
afp_4gqctq000egI0000oM0000VU-2.2d000004 on /Volumes/Voyager-5 (afpfs, nodev, nosuid, mounted by cutter)
afp_4gqctq000egI0000oM0000VU-3.2d000005 on /Volumes/Transfer (afpfs, nodev, nosuid, mounted by cutter)
看似相关的系统配置文件片段:
Model Identifier: MacPro4,1
Processor Name: Quad-Core Intel Xeon
Processor Speed: 2.66 GHz
Number Of Processors: 2
Memory: 8 GB
Boot ROM Version: MP41.0081.B03
SMC Version (system): 1.39f5
SMC Version (processor tray): 1.39f5
Type: afpfs
Mount Point: /Volumes/Voyager-5
Automounted: No
服务器信息:
看似相关的系统配置文件片段:
Model Identifier: Xserve1,1
Processor Name: Dual-Core Intel Xeon
Processor Speed: 2.66 GHz
Number Of Processors: 2
Boot ROM Version: XS11.0080.B03
SMC_version: 1.11f5
LOM Revision: 1.2.8
Fibre Channel Domain 2:
Vendor: LSILogic
Product: LSI7404EP
Revision: Firmware 1.3.14.0
Speed: 2 Gigabit
SCSI Target Device @ 0:
Manufacturer: APPLE
Model: Xserve RAID
Revision: 1.50
SCSI Logical Unit @ 0:
Capacity: 2,18 TB
Manufacturer: APPLE
Model: Xserve RAID
Revision: 1.50
Mac OS 9 Drivers: No
Partition Map Type: APM (Apple Partition Map)
Volumes:
R_Xraid-Mars:
Capacity: 2,18 TB
Writable: Yes
File System: Journaled HFS+
Mount Point: /Volumes/R_Xraid-Mars
答案1
该原因可能与您的某个应用程序有关。
对我们来说,它与 Vectorworks 2008 有关。它是一款跨平台应用程序,似乎在“保存/打开”对话框中保留了当前目录的副本,而不是使用 OS X 系统工具。我们之前发现过与未转义路径相关的其他错误(例如,用户在文件名中输入斜线,这会被解释为路径分隔符等)。
重现步骤如下:
- 在 Vectorworks 打开/保存对话框中导航到服务器
- 退出应用程序
- 断开与服务器的连接
- 清理 /Volumes 并打开 Finder 窗口到 /Volumes 以查看是否有新的幽灵
- 开始申请
- 使用文件 > 打开,打开/保存对话框出现后,即可看到幽灵共享已创建。请注意,在此阶段我们尚未连接到服务器,因此打开/保存对话框会重新定位到用户的主目录。
在步骤 6 中创建的幽灵共享具有与上一个实际共享相同的数字后缀,这强烈暗示我们这是应用程序内部代码的问题。即,如果上一个实际连接是“Active Projects-4”,则应用程序将创建一个 -4 文件夹,但实际上重新连接到服务器将创建一个带有 -5 的挂载点,或其他任何内容。
我猜无论你混合使用什么应用程序,你都必须反复试验。一个提示:当我们查看这些幽灵共享的内容时,强烈建议我们查看 Vectorworks。我们的是嵌套在一个路径下的子文件夹,通常只包含 Vectorworks 文档(即你用 得到的mkdir -p /path/to/subfolder
)。