我在MBP上使用VirtualBox,经常需要将USB闪存驱动器安装在客户机中。我遇到的问题是,主机操作系统(OS X Mavericks)在插入USB闪存驱动器后会立即挂载它。当我尝试卸载(通过Finder优雅地)时,OS X抱怨该设备正在使用中。对lsof的进一步研究表明,Spotlight和AVG正在使用闪存驱动器。
我只想修改主机操作系统的行为,以使USB设备不会自动挂载,而不是摆弄单个应用程序设置。有什么建议么?
Spotlight
,反病毒和攻击。
我在MBP上使用VirtualBox,经常需要将USB闪存驱动器安装在客户机中。我遇到的问题是,主机操作系统(OS X Mavericks)在插入USB闪存驱动器后会立即挂载它。当我尝试卸载(通过Finder优雅地)时,OS X抱怨该设备正在使用中。对lsof的进一步研究表明,Spotlight和AVG正在使用闪存驱动器。
我只想修改主机操作系统的行为,以使USB设备不会自动挂载,而不是摆弄单个应用程序设置。有什么建议么?
Spotlight
,反病毒和攻击。
Answers:
根据CNET上Topher Kessler的文章,您可以将条目添加到/etc/fstab
,以指定noauto
选项。
这样的条目可能看起来像这样:
UUID=791E37B4-82A3-37E7-9F15-3C39359126B4 none hfs rw,noauto
可以通过Volume UUID
在运行时查找打印的行来获取UUID 。diskutil info /Volumes/volume name
OS X具有一种称为“ 磁盘仲裁”框架的机制,通过该机制,程序可以控制在插入或弹出磁盘时发生的情况。它还提供了拦截磁盘插入事件并防止通常的自动安装行为的机会。
但是,更改行为需要第三方实用程序,因为磁盘仲裁框架只是一个编程接口。一个不错的实用程序是Disk Arbitrator,它是Aaron Burghardt提供的免费(BSD许可)工具。
当Disk Arbitrator运行时,您可以选择否决新插入磁盘的安装,以只读方式安装它们,或者只是进行正常的自动安装。退出磁盘仲裁程序后,将恢复正常的安装行为。
我认为修改fstab以关闭自动挂载对于您尝试执行的操作来说有点多余。就像打开车门一样,因为您不时需要进出车门。
为此,我将使用VirtualBox的内置USB过滤器。这样,您可以在插入时自动安装特定的USB设备。您可以在要为其分配特定虚拟机的“设置”菜单下找到USB过滤器。
例如,下面列出了我的USB设备,如果我想将其自动连接到Windows 10 Pro VM,这些设备可用。我可以连接Seagate FreeAgent Go,SanDisk Cruzer或任何连接的USB设备。但是,连接Logitech USB接收器最终会使鼠标在主机上无法操作,因此请小心连接。
我怎么知道这有效?好吧,我意外地连接了FreeAgent Go驱动器,并且(据我所知)它无法安装在OS X中。请参阅我原来的“问题”:USB驱动器将无法 安装,未在磁盘实用程序中列出,但在System Profiler中找到了
它是通过序列号或UUID来完成的(我还没有进行足够的调查来弄清楚哪一个),但是我有几个型号和大小完全相同的FreeAgent Go驱动器,只有一个可以自动连接到VM。当时,我以为我的硬盘坏了。
最重要的是,自动挂载仍然有效,而且我能够将USB设备直接连接到VM,而不必经历先卸载它的麻烦。
我在https://discussions.apple.com/docs/DOC-7942上找到了官方指南“防止在启动时挂载卷”
diskutil unmount force disk1s2
另外,如果选择的文件系统不能将Spotlight编入索引或将该驱动器排除在Spotlight首选项中,则可以通过快速更改设置来减少延迟和开销。