必须组合调用多个底层命令:一、sudo dmidecode -t 2/-t 0/-t 1 提取主板/bios序列号及系统uuid;二、cat /sys/class/dmi/id/{product_uuid,board_serial,product_serial} 读精简固件id;三、cat /etc/machine-id 获取本地唯一id;四、lsblk与udevadm查磁盘sn;五、ip -br link 提取网卡mac。

要在统信UOS终端中一次性获取当前系统所有关键硬件ID(包括主板序列号、磁盘物理SN、网卡MAC、设备UUID、machine-id),必须组合调用多个底层命令,因为单个工具无法覆盖全部ID类型——【不同ID来源层级不同:DMI固件层、内核/sys接口层、udev设备管理层、系统服务层】。
提取主板与整机固件级ID(DMI/SMBIOS)
第一步:执行 sudo dmidecode -t 2 | grep -E "Manufacturer|Product Name|Serial Number|Asset Tag",读取主板制造商、型号及序列号。若输出为 To Be Filled By O.E.M.,说明OEM未烧录,跳过该字段。
第二步:运行 sudo dmidecode -t 0 | grep -E "Vendor|Version|Release Date",确认BIOS厂商和版本,部分设备的整机SN会在此处重复出现。
第三步:执行 sudo dmidecode -t 1 | grep "UUID",提取系统唯一UUID——这是WMI兼容的标准标识,常用于远程管理平台绑定。
读取内核暴露的精简ID(无需sudo)
方法一:直接查看 cat /sys/class/dmi/id/product_uuid,该值与 dmidecode -t 1 输出的UUID一致,但无需权限,适合脚本批量采集。
方法二:运行 cat /sys/class/dmi/id/board_serial 和 cat /sys/class/dmi/id/product_serial,这两个文件内容由内核自动映射,失败时返回空或“Permission denied”,此时必须回退到sudo dmidecode方式。
方法三:输入 cat /etc/machine-id,获取系统首次启动时生成的本地唯一ID,用于日志关联和DBus会话标识,【该ID在重装系统或执行systemd-machine-id-setup后会变更】。
枚举存储与网络设备物理ID
① 定位所有磁盘设备名:lsblk -d -o NAME,MODEL,SERIAL,快速列出块设备模型与序列号(部分NVMe盘可能显示为空)。
② 获取完整磁盘SN:sudo lshw -class disk -short 确认设备路径(如 /dev/nvme0n1),再执行 sudo udevadm info --name=/dev/nvme0n1 | grep ID_SERIAL=,输出形如 ID_SERIAL=Samsung_SSD_980_PRO_1TB_ABC123XYZ 的完整序列标识。
③ 查看网卡MAC地址:ip -br link | grep -E "UP|DOWN" | awk '{print $1,$3}',过滤出启用/禁用状态的接口及其MAC,避免混入lo或docker0等虚拟接口。











