![拔下电源后 iPhone 无法正常卸载](https://linux22.com/image/978506/%E6%8B%94%E4%B8%8B%E7%94%B5%E6%BA%90%E5%90%8E%20iPhone%20%E6%97%A0%E6%B3%95%E6%AD%A3%E5%B8%B8%E5%8D%B8%E8%BD%BD.png)
我在上网本上运行 Ubuntu 14.10,并通过 USB 数据线连接我的 iPhone,这样它就可以共享网络,我就可以访问互联网。一切都按预期运行。
问题是,当从 USB 电缆上拔下 iPhone 时,它无法正确卸载,因此当下次插入 iPhone 时,会出现一个包含以下文本的消息框:
无法安装 iPhone
位置已安装
一整天都拔下并重新插入我的 iPhone 会导致出现大量此类消息框。
mount
iPhone 插入时的输出包括以下内容:
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse
拔下 iPhone 后,此行仍然存在。如果我手动卸载该位置,则下次插入 iPhone 时不会出现该消息:
sudo umount /run/user/1000/gvfs
有什么方法(也许通过 udev)可以自动化完成这个吗?
答案1
我找到了一种自动化的方法。问题是,即使 iPhone 已拔下电源,它gvfs-mount -l
仍会显示一个挂载 ( afc://<iPhone_serial_number>/
)。正是这个挂载触发了无法安装 iPhone当 iPhone 重新插入时,将显示消息。此安装由gvfsd-afc
gvfs 后端提供。终止操作gvfsd-afc
将删除该安装。
为了udev
在拔下 iPhone 时自动执行此操作,请创建一个文件/etc/udev/rules.d/99-iphone-umount.rules
并添加以下内容:
SUBSYSTEM=="usb", ACTION=="remove", ENV{ID_MODEL}=="iPhone", RUN+="/usr/bin/killall -s SIGINT /usr/lib/gvfs/gvfsd-afc"
然后运行sudo udevadm control --reload-rules
让udev加载新规则。