当前位置:首页>Linux>一招教你轻松追踪:Linux、Unix、Windows的USB存储设备历史插拔记录!

一招教你轻松追踪:Linux、Unix、Windows的USB存储设备历史插拔记录!

  • 2026-09-17 11:27:22
一招教你轻松追踪:Linux、Unix、Windows的USB存储设备历史插拔记录!
下面将分别介绍在 Linux、Windows 和 Unix 系统上查询USB插拔记录的方法。

1

Linux
Linux 将USB设备连接信息记录在内核环缓冲区中,通常可以通过 dmesg或查询 /var/log 下的日志文件来查看。

dmesg(display message)内核环形缓冲区

作用和原理:系统启动时,内核将硬件初始化、驱动加载、设备状态等信息存入固定大小的内存区域(环形缓冲区)。当缓冲区满时,新消息覆盖旧消息。

方法一:使用 dmesg命令(截图以Kali linux为例)
dmesg 直接读取内核环缓冲区,是查看最近USB事件最直接的方法。
  • 查看所有USB相关的内核消息:
dmesg | grep -i usb
或者更精确地查找设备连接和断开:
dmesg | grep -i "new high-speed\|usb.*disconnect"
或者可直观通过时间顺序查看设备连接和断开情况
dmesg -T --time-format ctime | grep -i "new high-speed\|usb.*disconnect"
图1 usb设备连接、断开记录
方法二:查询系统日志文件
历史记录会保存在系统日志文件中,位置因发行版而异。
  • 在基于 Debian/Ubuntu 的系统上:
grep -i usb /var/log/syslog
grep -i usb /var/log/kern.log
  • 在基于 Red Hat/CentOS/Fedora 的系统上:
grep -i usb /var/log/messages
方法三:使用 lsusb 命令
这个命令用于列出当前连接的USB总线和你连接的设备。
lsusb        #列出设备
lsusb -v     # 显示详细信息
lsusb -t     # 以树状图显示,显示物理连接关系
图2 当前usb设备连接情况
方法四:查询 /var/log 下的 auth.log`或 secure
在某些系统中,当普通用户挂载USB存储设备时,udisks2 服务会在认证日志中留下记录。
grep -i udisks /var/log/auth.log  

2

Unix (如 FreeBSD, OpenBSD)
传统的Unix变体,方法类似Linux,但工具和日志位置可能略有不同。
方法一:使用dmesg
dmesg | grep-i usb
方法二:查看系统日志
通常所有消息都记录在/var/log/messages。
grep -i usb /var/log/messages
方法三:使用 usbconfig命令(适用于 FreeBSD)
这是一个类似于Linux下 lsusb的工具。
usbconfig list            # 列出当前所有USB设备
usbconfig dumpdevicedesc  # 显示某个设备的详细信息

3

Windows
Windows 将USB连接记录存储在注册表和事件查看器中。
方法一:通过注册表查询(最常用)
Windows 为每个连接过的USB设备在注册表中生成一个唯一的标识符。
  1. 按 Win + R,输入 regedit 并回车。
  2. 导航到以下路径:
HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR
  1. 在这个键值下,你会看到所有曾经连接过的USB存储设备的列表。每个文件夹代表一个设备型号,其下的子文件夹是每个物理设备的唯一序列号。
    图3 windows注册表查看usb设备插拔记录
注意:注册表中 USB键下(HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Enum\USB)包含了所有类型的USB设备,但不如 USBSTOR直观。
图4 windows注册表查看usb存储设备插拔记录
方法二:通过事件查看器
事件查看器提供了带有时间戳的日志。
    1.按 Win + R,输入 eventvwr.msc并回车。
    应用程序和服务日志 -> Microsoft -> Windows -> DriverFrameworks-UserMode -> Operational
    2.在右侧日志中,事件ID为 2003 表示设备已连接,事件ID为 2004 表示设备已断开连接。
    图5 windows 系统日志查看usb设备插拔记录
    方法三:使用 PowerShell 命令
    可以查询特定的事件日志。
    • 查询USB设备安装事件:
    Get-WinEvent -FilterHashtable @{LogName='System'; ID=20001} | Where-Object {$_.Message -like "USB"}
    (注意:事件ID可能因系统版本而异,上述ID是一个常见例子,但可能需要调整。)
    • 使用 WMI 查询当前连接的USB设备:
    Get-WmiObject -Class Win32_USBHub
    或者在新版PowerShell中:
    Get-CimInstance -ClassName Win32_USBHub
    图6  powershell命令查询usb设备当前接入情况

    4

    USB溯源查询注意事项
    • 在溯源查询时,请优先检查系统时间是否准确,是否有修改痕迹。
    • 对于Linux/macOS,日志可能会被 logrotate清理或大小受限。
    • 在Windows中,注册表信息在设备被删除后依然会保留,除非手动清理。
    • 获取USB插拔记录日志通常需要管理员权限(root、sudo 或 Administrator)。

    THE

    安即

    未来

    END

    关注「星标安即未来」,第一时间获取推送,以防错过优质内容。

    最新文章

    随机文章