菜鸟科技网

命令行 硬盘序列号

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

命令行 硬盘序列号-图1
(图片来源网络,侵删)

Windows系统获取硬盘序列号

Windows系统提供了多种命令行工具来获取硬盘序列号,最常用的是wmic命令和diskpart工具。

使用wmic命令

wmic(Windows Management Instrumentation Command-line)是Windows管理工具的核心命令,可通过查询磁盘管理类获取详细信息,打开命令提示符(CMD)或PowerShell,输入以下命令:

wmic diskdrive get serialnumber

该命令会返回系统中所有硬盘的序列号,若需更详细的信息(如型号、大小等),可扩展为:

wmic diskdrive get model,serialnumber,size

示例输出

命令行 硬盘序列号-图2
(图片来源网络,侵删)
Model                   SerialNumber                   Size
ST500DM002-1BD142       WD-WCC4N0KTYK5                 500120257408
Samsung SSD 870 EVO     S3Z8NB0K123456                500107862025

使用diskpart工具

diskpart是Windows磁盘分区管理工具,可通过交互式命令获取硬盘序列号,步骤如下:

  1. 以管理员身份打开CMD或PowerShell;
  2. 输入diskpart进入diskpart环境;
  3. 执行list disk列出所有磁盘;
  4. 选择目标磁盘(如select disk 0);
  5. 执行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系统下,可通过hdparmsmartctl或直接读取/dev目录下的设备文件获取硬盘序列号。

使用hdparm命令

hdparm是Linux下常用的磁盘工具,需先安装(如sudo apt install hdparm),执行以下命令:

命令行 硬盘序列号-图3
(图片来源网络,侵删)
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系统可通过diskutilsystem_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服务未启动或损坏导致,可尝试以下方法解决:

  1. 按Win+R,输入services.msc,找到“Windows Management Instrumentation”服务,确保其状态为“正在运行”;
  2. 若服务异常,可重启该服务或执行winmgmt /salvagerepository修复WMI存储库;
  3. 若问题依旧,可运行sfc /scannow扫描并修复系统文件。

Q2: 在Linux系统中,为什么使用hdparm命令无法获取硬盘序列号?
A: 可能的原因及解决方案如下:

  1. 未安装hdparm工具:在基于Debian/Ubuntu的系统上执行sudo apt install hdparm,基于RHEL/CentOS的系统执行sudo yum install hdparm
  2. 硬盘接口类型不符hdparm主要适用于PATA/SATA硬盘,对于NVMe硬盘,需使用nvme list命令(如sudo nvme list | grep Serial);
  3. 权限不足:确保命令前添加sudo,普通用户可能无法直接访问磁盘设备文件。
分享:
扫描分享到社交APP
上一篇
下一篇