通过 lsblk
命令(推荐)
作用:列出块设备信息,包含设备路径、UUID 和文件系统类型。
步骤:
- 打开终端,输入:
lsblk -o NAME,UUID,SERIAL,MODEL
- 查看输出示例:
NAME UUID SERIAL MODEL sda 5f3e8a1c-01e4-4b2a-9c7d-8a1b0c9d0e7f S2HYJ9CB123456 Samsung SSD 870 EVO ├─sda1 8d4a5b6c-3e1f-4a2b-9c8d-7e6f5a4b3c2d └─sda2 a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d
关键字段:
UUID
:文件系统唯一标识(分区级别)SERIAL
:磁盘物理序列号(设备级别)MODEL
:磁盘型号
通过 blkid
命令
作用:直接输出磁盘和分区的唯一标识(UUID)及文件系统类型。
步骤:
- 终端输入(需 root 权限):
sudo blkid
- 输出示例:
/dev/sda1: UUID="8d4a5b6c-3e1f-4a2b-9c8d-7e6f5a4b3c2d" TYPE="ext4" /dev/sda2: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="swap"
说明:
UUID
适用于分区挂载(如/etc/fstab
配置)- 无物理序列号,需结合其他方法获取设备级 ID
通过 /dev/disk/by-id/
目录
作用:直接访问 Linux 内核生成的磁盘唯一符号链接。
步骤:
- 终端输入:
ls -l /dev/disk/by-id/
- 输出示例:
lrwxrwxrwx 1 root root 9 Aug 10 10:00 ata-Samsung_SSD_870_EVO_S2HYJ9CB123456 -> ../../sda lrwxrwxrwx 1 root root 10 Aug 10 10:00 ata-Samsung_SSD_870_EVO_S2HYJ9CB123456-part1 -> ../../sda1
关键字段:
ata-Samsung_SSD_870_EVO_S2HYJ9CB123456
:完整的磁盘 ID(含厂商、型号、序列号)- 符号链接指向
/dev/sda
,可直接用于挂载
通过 udevadm
命令(获取原始序列号)
作用:查询 udev 设备管理器数据库,获取硬件级序列号。
步骤:
- 先运行
lsblk
找到磁盘名称(如sda
) - 终端输入:
sudo udevadm info --query=property --name=/dev/sda | grep ID_SERIAL
- 输出示例:
ID_SERIAL=Samsung_SSD_870_EVO_123456 ID_SERIAL_SHORT=S2HYJ9CB123456
说明:
ID_SERIAL_SHORT
为纯序列号,适用于自动化脚本
通过 hdparm
命令(仅限 SATA 硬盘)
作用:直接查询 SATA 磁盘的序列号。
步骤:
- 终端输入:
sudo hdparm -I /dev/sda | grep "Serial Number"
- 输出示例:
Serial Number: S2HYJ9CB123456
常见问题解决
-
命令返回空值?
- 确保磁盘已连接且未被加密(加密盘需先解锁)
- 使用
sudo
提权执行命令
-
NVMe 磁盘如何查看?
- 方法通用:NVMe 设备名通常为
/dev/nvme0n1
,替换命令中的/dev/sda
即可
- 方法通用:NVMe 设备名通常为
-
虚拟机中无序列号?
- 虚拟磁盘可能无物理序列号,优先使用
UUID
或by-id
路径
- 虚拟磁盘可能无物理序列号,优先使用
场景 | 推荐命令 | 获取的 ID 类型 |
---|---|---|
快速查看分区 UUID | blkid |
文件系统 UUID |
获取磁盘型号和序列号 | lsblk -o SERIAL,MODEL |
物理序列号/型号 |
精准挂载(防设备名变更) | /dev/disk/by-id/ |
含厂商信息的完整磁盘 ID |
脚本调用 | udevadm |
原始序列号(ID_SERIAL) |
引用说明基于 Linux 内核文档(kernel.org)、
util-linux
工具手册(man7.org)及udev
官方指南(systemd.io),命令兼容主流 Linux 发行版(Ubuntu/CentOS/Debian 等)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4598.html