Linux无桌面环境下,实现USB的自动挂载/卸载
linux无桌面环境是无法自动挂载和卸载USB设备的,需要通过mount和umount命令实现手动挂载卸载,今天就讲一下无桌面环境下Linux如何实现USB设备的自动挂载和卸载。
1.gnome桌面环境如何实现USB的自动挂载
- 首先我们要了解gnome桌面环境如何实现USB的自动挂载的。U盘的热拔插/自动挂载跟linux2.6 kernel、 udev、 hal、 dbus 、gnome-mount 、thunar的关系。gnome 下的自动挂载主要是利用hal(HAL, Hardware abstraction layer)实现的。硬件抽象层(hal)是一个守护进程,它允许桌面应用程序即时读取硬件信息,这样,无论接口或设备类型如何,应用程序都能找到并使用它们。用这种方法,图形界面以一种无缝、一致的模式为用户提供所有的资源。
- 具体步骤如下
插入新设备后,
kernel 发现设备变化反应到 sysfs 上并通知 udev,
udev 把硬件相关内容送给 hal,
hal 过滤、处理之后发送信息到 dbus 总线,
thunar 从 dbus 收到信息后在 xfdesktop 桌面显示新图标,
用户点击桌面图标后用 pmount 把设备挂上,打开挂载目录。(gnome缺省使用 gnome-mount )
具体信息参考:https://blog.youkuaiyun.com/du_qi/article/details/72803030
2.udev
- udev 是Linux kernel 2.6系列的设备管理器。它主要的功能是管理/dev目录底下的设备节点。它同时也用来接替devfs及热插拔的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用户空间的行为,包括加载固件及Linux 2.6.13内核。
- /etc/udev/rules.d下面可能有好几个udev规则文件,这些文件一部分是udev包安装的,另外一部分则是可能是别的硬件或者软件包生成的。规则文件里的规则有一系列的键/值对组成,键/值对之间用逗号(,)分割。每一个键或者是用户匹配键,或者是一个赋值键。这些值将影响udev创建的设备文件。赋值键可以处理一个多值列表。
- udev 规则的匹配键
ACTION: 事件 (uevent) 的行为,例如:add( 添加设备 )、remove( 删除设备 )。
KERNEL: