linux 查看硬盘序列号、设备序列号、系统安装时间

本文介绍如何在Linux系统中使用hdparm、df-h、dmidecode和dumpe2fs命令来查看硬盘序列号、设备序列号、文件系统状态及系统安装时间等关键信息。

linux 查看硬盘序列号、设备序列号

hdparm查看硬盘基本信息

df -h查看文件系统,可以看到设备/dev/mapper/vgubuntu--kylin-root有233G

lmz@lmz-X280:~$ df -h
文件系统                          容量  已用  可用 已用% 挂载点
udev                              3.9G     0  3.9G    0% /dev
tmpfs                             786M  1.9M  784M    1% /run
/dev/mapper/vgubuntu--kylin-root  233G  151G   71G   69% /
tmpfs                             3.9G  366M  3.5G   10% /dev/shm
tmpfs                             5.0M  4.0K  5.0M    1% /run/lock
tmpfs                             3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/loop1                         55M   55M     0  100% /snap/core18/1705
/dev/loop0                        155M  155M     0  100% /snap/chromium/1143
/dev/loop3                         55M   55M     0  100% /snap/core18/1754
/dev/loop2                         28M   28M     0  100% /snap/snapd/6953
/dev/loop4                         28M   28M     0  100% /snap/snapd/7264
/dev/loop5                         55M   55M     0  100% /snap/gtk-common-themes/1502
/dev/loop6                        157M  157M     0  100% /snap/chromium/1165
/dev/loop7                         63M   63M     0  100% /snap/gtk-common-themes/1506
/dev/sda1                         511M  7.8M  504M    2% /boot/efi
tmpfs                             786M   36K  786M    1% /run/user/1000

sudo hdparm -I /dev/mapper/vgubuntu--kylin-root查看硬盘信息

lmz@lmz-X280:~$ sudo hdparm -I /dev/mapper/vgubuntu--kylin-root
[sudo] lmz 的密码: 

/dev/mapper/vgubuntu--kylin-root:

ATA device, with non-removable media
	Model Number:       SanDisk SD9TN8W256G1001                 
	Serial Number:      1845A9802850        
	Firmware Revision:  X6107101
	Media Serial Num:   
	Media Manufacturer: 
	Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
	Used: unknown (minor revision code 0x005e) 
	Supported: 11 10 9 8 7 6 5 
	Likely used: 11
Configuration:
	Logical		max	current
	cylinders	16383	0
	heads		16	0
	sectors/track	63	0

查看设备序列号

sudo dmidecode -t 1

lmz@lmz-X280:~$ sudo dmidecode -t 1
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.

Handle 0x000C, DMI type 1, 27 bytes
System Information
	Manufacturer: LENOVO
	Product Name: 20KFA02FCD
	Version: ThinkPad X280
	Serial Number: PC1069T6
	UUID: ccc3c0cc-25ea-11b2-a85c-c01545b021ea
	Wake-up Type: Power Switch
	SKU Number: LENOVO_MT_20KF_BU_Think_FM_ThinkPad X280
	Family: ThinkPad X280

查看Linux系统安装时间

sudo dumpe2fs /dev/mapper/vgubuntu--kylin-root | grep 'Filesystem created'

lmz@lmz-X280:~$ sudo dumpe2fs /dev/mapper/vgubuntu--kylin-root | grep 'Filesystem created'
dumpe2fs 1.45.5 (07-Jan-2020)
Filesystem created:       Wed Mar  4 18:02:27 2020
### 方法概述 在 Linux 系统中,有多种方法可以用来查看硬盘序列号。以下是几种常用的方式: #### 使用 `lsblk` 命令 可以通过执行以下命令来列出所有块设备及其对应的序列号: ```bash lsblk -o NAME,SERIAL ``` 此命令会显示系统中的所有硬盘以及它们的序列号[^1]。 对于特定硬盘序列号查询,可使用如下命令(假设目标硬盘为 `/dev/sda`): ```bash lsblk --nodeps -no serial /dev/sda ``` 这里的 `/dev/sda` 需要根据实际情况替换为目标硬盘的实际路径[^1]。 #### 利用 `hdparm` 工具 另一种方式是通过 `hdparm` 来获取硬盘序列号信息。首先确认安装了该工具后运行以下命令: ```bash hdparm -i /dev/sda | grep -i serialno ``` 这将过滤并展示指定硬盘序列号部分[^2]。 #### 编程接口调用 除了命令行操作外,还可以编写程序直接读取硬盘序列号。下面是一个 C 语言示例函数用于获取当前系统的根分区所在硬盘序列号: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> struct hd_driveid { unsigned short config; char firmware_rev[9]; char model[41]; unsigned long serial_no[5]; /* ASCII string */ }; int getdiskid(char *id, size_t max){ int fd; struct hd_driveid hid; FILE* fp = fopen("/etc/mtab","r"); if(fp==NULL){fprintf(stderr,"No /etc/mtab file.\n");return -1;} fd=-1; while(fgets(line,sizeof line,fp)!=NULL){ disk=strtok(line," "); root=strtok(NULL," "); if(strcmp(root,"/") ==0 ){ for(p=disk+strlen(disk)-1;isdigit(*p);p--)*p='\0'; fd=open(disk,O_RDONLY); break; } } fclose(fp); if(fd<0){fprintf(stderr,"Open hard disk device failed.\n");return -1;} if(ioctl(fd,HDIOS_GET_IDENTITY,&hid)<0){ fprintf(stderr,"Ioctl error.\n"); return -1; } close(fd); snprintf(id,max,"%s",hid.serial_no); printf("Get Hard Disk Serial Number:%s\n",id); return 0; } ``` 以上代码片段展示了如何利用低级 I/O 调用来访问硬盘的信息结构体,并从中提取序列号字段[^3]。 注意,在尝试任何涉及硬件的操作之前,请确保拥有足够的权限;必要时可通过前置 `sudo` 提升权限级别。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值