下面将分别介绍在 Linux、Windows 和 Unix 系统上查询USB插拔记录的方法。Linux 将USB设备连接信息记录在内核环缓冲区中,通常可以通过 dmesg或查询 /var/log 下的日志文件来查看。dmesg(display message)内核环形缓冲区
作用和原理:系统启动时,内核将硬件初始化、驱动加载、设备状态等信息存入固定大小的内存区域(环形缓冲区)。当缓冲区满时,新消息覆盖旧消息。
方法一:使用 dmesg命令(截图以Kali linux为例)dmesg 直接读取内核环缓冲区,是查看最近USB事件最直接的方法。dmesg | grep -i "new high-speed\|usb.*disconnect"
dmesg -T --time-format ctime | grep -i "new high-speed\|usb.*disconnect"
历史记录会保存在系统日志文件中,位置因发行版而异。grep -i usb /var/log/syslog
grep -i usb /var/log/kern.log
- 在基于 Red Hat/CentOS/Fedora 的系统上:
grep -i usb /var/log/messages
这个命令用于列出当前连接的USB总线和你连接的设备。lsusb -t # 以树状图显示,显示物理连接关系
方法四:查询 /var/log 下的 auth.log`或 secure在某些系统中,当普通用户挂载USB存储设备时,udisks2 服务会在认证日志中留下记录。grep -i udisks /var/log/auth.log
Unix (如 FreeBSD, OpenBSD)传统的Unix变体,方法类似Linux,但工具和日志位置可能略有不同。通常所有消息都记录在/var/log/messages。