在计算机管理和系统维护中,命令行工具因其高效、灵活的特点被广泛使用,其中获取硬盘序列号是一项常见需求,硬盘序列号是硬盘的唯一标识符,可用于资产追踪、故障排查、软件授权等场景,不同操作系统下,通过命令行获取硬盘序列号的方法各有不同,本文将详细介绍Windows、Linux及macOS三大主流系统中的命令行操作方式,并辅以表格对比,最后补充相关FAQs。

Windows系统获取硬盘序列号
Windows系统提供了多种命令行工具来获取硬盘序列号,最常用的是wmic命令和diskpart工具。
使用wmic命令
wmic(Windows Management Instrumentation Command-line)是Windows管理工具的核心命令,可通过查询磁盘管理类获取详细信息,打开命令提示符(CMD)或PowerShell,输入以下命令:
wmic diskdrive get serialnumber
该命令会返回系统中所有硬盘的序列号,若需更详细的信息(如型号、大小等),可扩展为:
wmic diskdrive get model,serialnumber,size
示例输出:

Model SerialNumber Size
ST500DM002-1BD142 WD-WCC4N0KTYK5 500120257408
Samsung SSD 870 EVO S3Z8NB0K123456 500107862025
使用diskpart工具
diskpart是Windows磁盘分区管理工具,可通过交互式命令获取硬盘序列号,步骤如下:
- 以管理员身份打开CMD或PowerShell;
- 输入
diskpart进入diskpart环境; - 执行
list disk列出所有磁盘; - 选择目标磁盘(如
select disk 0); - 执行
detail disk查看详细信息,序列号会显示在“Serial Number”字段。
示例输出:
Disk ### Status Size Free Dyn Gpt
--- ------------- --------- ------- ----- ---
Disk 0 Online 500 GB 0 B *
Disk 1 Online 500 GB 0 B
Disk 1 Detail
Disk ID: ABC123456789DEF0
Type: ATA
Serial Number: S3Z8NB0K123456
Linux系统获取硬盘序列号
Linux系统下,可通过hdparm、smartctl或直接读取/dev目录下的设备文件获取硬盘序列号。
使用hdparm命令
hdparm是Linux下常用的磁盘工具,需先安装(如sudo apt install hdparm),执行以下命令:

sudo hdparm -i /dev/sda | grep SerialNo
其中/dev/sda为目标硬盘设备名,输出格式为SerialNo=ABC123456789DEF0。
使用smartctl命令
smartctl是SMART(自我监控、分析和报告技术)工具,需安装smartmontools包,命令如下:
sudo smartctl -a /dev/sda | grep "Serial Number"
示例输出:
Serial Number: S3Z8NB0K123456
直接读取/sys文件系统
Linux内核将设备信息暴露在/sys文件系统中,可通过以下命令获取:
cat /sys/block/sda/device/serial
该方法无需额外工具,但需确保硬盘驱动已加载。
macOS系统获取硬盘序列号
macOS系统可通过diskutil或system_profiler命令获取硬盘序列号。
使用diskutil命令
diskutil是macOS磁盘管理工具,执行以下命令:
diskutil info disk0 | grep "Device / Media Name"
其中disk0为磁盘标识符,序列号会显示在“Device / Media Name”字段。
使用system_profiler命令
system_profiler可获取详细的硬件信息,命令如下:
system_profiler SPSerialATADataType | grep "Serial Number"
示例输出:
Serial Number: WDC-WCC4N0KTYK5
三大系统命令行获取硬盘序列号对比
| 系统 | 命令/工具 | 示例命令 | 优点 | 缺点 |
|---|---|---|---|---|
| Windows | wmic | wmic diskdrive get serialnumber |
信息全面,支持批量查询 | 需管理员权限 |
| Windows | diskpart | detail disk |
交互式操作,直观 | 需手动选择磁盘 |
| Linux | hdparm | sudo hdparm -i /dev/sda |
兼容性好,信息详细 | 需安装额外工具 |
| Linux | smartctl | sudo smartctl -a /dev/sda |
支持SMART功能,适合监控 | 需安装smartmontools |
| Linux | /sys文件系统 | cat /sys/block/sda/device/serial |
无需工具,高效 | 需熟悉设备路径 |
| macOS | diskutil | diskutil info disk0 |
系统原生,无需安装 | 输出信息需过滤 |
| macOS | system_profiler | system_profiler SPSerialATADataType |
信息全面,格式化输出 | 输出较长,需提取关键信息 |
相关问答FAQs
Q1: 为什么在Windows中使用wmic命令获取硬盘序列号时提示“无效的类”?
A: 该错误通常是由于WMI服务未启动或损坏导致,可尝试以下方法解决:
- 按Win+R,输入
services.msc,找到“Windows Management Instrumentation”服务,确保其状态为“正在运行”; - 若服务异常,可重启该服务或执行
winmgmt /salvagerepository修复WMI存储库; - 若问题依旧,可运行
sfc /scannow扫描并修复系统文件。
Q2: 在Linux系统中,为什么使用hdparm命令无法获取硬盘序列号?
A: 可能的原因及解决方案如下:
- 未安装hdparm工具:在基于Debian/Ubuntu的系统上执行
sudo apt install hdparm,基于RHEL/CentOS的系统执行sudo yum install hdparm; - 硬盘接口类型不符:
hdparm主要适用于PATA/SATA硬盘,对于NVMe硬盘,需使用nvme list命令(如sudo nvme list | grep Serial); - 权限不足:确保命令前添加
sudo,普通用户可能无法直接访问磁盘设备文件。
