如何在Linux中查找硬盘的详细信息?

卢从利 2020-05-15

即将开播:5月20日,基于kubernetes打造企业级私有云实践

1. Hdparm

Hdparm是个命令行程序,用于获取或设置PATA、SATA、SAS和SSD设备的硬件参数。它接受连接到IDE、SATA,SAS接口的任何设备作为大容量存储介质,因此我们甚至还可以获取有关CD/DVD驱动器的信息。使用hdparm实用程序,我们可以调整硬盘或DVD驱动器、测试HDD或SSD速度、通过激活声学模式减小噪声、打开或关闭节能模式、启用或禁用睡眠模式、启用/禁用驱动器缓存甚至安全擦除驱动器。Hdparm由Mark Lord编写,他是Linux(E)IDE驱动程序的首席开发者和维护者,也是“libata”子系统的当前贡献者。

注意事项:虽然hdparm在提高磁盘性能方面有显著优势,但它也极其危险。某些参数被滥用时,它很可能导致大量数据丢失。hdparm文档建议不要在任何情况下使用一些命令。因此,本文排除了这类危险的命令。更重要的是,始终建议在Linux系统上试用hdparm之前备份硬盘内容。

1.1. 在Linux上安装hdparm

Hdparm预先安装在大多数Linux发行版中。如果因某种原因未包含在内,使用默认的软件包管理器在你的Linux系统上安装hdparm。

在Arch Linux或Manjaro Linux上:

$ sudo pacman -S hdparm 

在Debian、Ubuntu或Linux Mint上:

$ sudo apt install hdparm 

在Fedora、CentOS或RHEL上:

$ sudo dnf install hdparm 

在openSUSE上:

$ sudo zypper install hdparm 

1.2. 使用Hdparm在Linux中查找硬盘详细信息

要显示硬盘的详细信息,只需以拥有sudo或root权限的情况下运行hdparm,如下所示:

$ sudo hdparm -I /dev/sda | less 

这里,sda是我的硬盘。把它换成你自己的设备。在这里,我使用“less”命令用于交互式阅读。按回车键或按向上/向下箭头浏览输出的其余部分。完成后按q退出。

我的Ubuntu系统的输出示例:

/dev/sda: 
 
ATA device, with non-removable media 
 
Model Number: ST9500325AS 
 
Serial Number: 5VEQTRV0 
 
Firmware Revision: D005DEM1 
 
Transport: Serial 
 
Standards: 
 
Used: unknown (minor revision code 0x0029) 
 
Supported: 8 7 6 5 
 
Likely used: 8 
 
Configuration: 
 
Logical max current 
 
cylinders 16383 16383 
 
heads 16 16 
 
sectors/track 63 63 
 

-- 
 
CHS current addressable sectors: 16514064 
 
LBA user addressable sectors: 268435455 
 
LBA48 user addressable sectors: 976773168 
 
Logical/Physical Sector size: 512 bytes 
 
device size with M = 1024*1024: 476940 MBytes 
 
device size with M = 1000*1000: 500107 MBytes (500 GB) 
 
cache/buffer size = 8192 KBytes 
 
Nominal Media Rotation Rate: 5400 
 
Capabilities: 
 
LBA, IORDY(can be disabled) 
 
Queue depth: 32 
 
Standby timer values: spec'd by Standard, no device specific minimum 
 
R/W multiple sector transfer: Max = 16 Current = 16 
 
Advanced power management level: 254 
 
Recommended acoustic management value: 208, current value: 208 
 
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
 
Cycle time: min=120ns recommended=120ns 
 
PIO: pio0 pio1 pio2 pio3 pio4 
 
Cycle time: no flow control=120ns IORDY flow control=120ns 
 
[...] 

如何在Linux中查找硬盘的详细信息?

图1.使用Hdparm在Linux中查找显示硬盘详细信息。

如你所见,hdparm显示了硬盘的型号、序列号、固件版本以及硬盘配置(没有柱面、磁头、扇区)、DMA设置、已启用功能列表和安全参数等。“Commands/features”部分下标以星号的所有功能都是目前活跃的功能。

同样,你可以查看其他设备的信息。

$ sudo hdparm -I /dev/sdb | less  
$ sudo hdparm -I /dev/sdc | less  

运行不带选项的hdparm时,默认使用-acdgkmur。查阅参考手册页,了解每个选项代表什么。

$ sudo hdparm /dev/sda  
/dev/sda:  
multcount = 16 (on)  
IO_support = 1 (32-bit)  
readonly = 0 (off)  
readahead = 256 (on)  
geometry = 60801/255/63, sectors = 976773168, start = 0  

想了解详细情况,请查阅参考手册页。

$ man hdparm 

2. lshw

lshw(硬件列表器)是一个简单但功能齐全的实用程序,提供了有关Linux系统硬件配置的详细信息。它可以报告具体的内存配置、固件版本、主板配置、CPU版本及速度、硬盘详细信息、高速缓存配置和总线速度等。

2.1. 在Linux中安装lshw

lshw默认情况下预装了一些Linux发行版,比如Ubuntu。万一它没有安装,使用默认软件包管理器在Linux设备中安装lshw,如下所示。

在Arch Linux和Manjaro Linux之类的衍生版上,运行:

$ sudo pacman -S lshw 

在Debian、Ubuntu或Linux Mint上:

$ sudo apt install lshw 

在Fedora、CentOS或RHEL上:

$ sudo dnf install lshw 

在openSUSE上:

$ sudo zypper install lshw 

2.2. 使用lshw在Linux中查找硬盘详细信息

安装lshw后,只需运行以下命令即可获取Linux中硬盘的详细信息:

$ sudo lshw -class disk 

示例输出:

[...] 
 
-disk 
 
description: ATA Disk 
 
product: ST9500325AS 
 
physical id: 0 
 
bus info: scsi@0:0.0.0 
 
logical name: /dev/sda 
 
version: DEM1 
 
serial: 5VEQTRV0 
 

size: 465GiB (500GB) 
 
capabilities: partitioned partitioned:dos 
 
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=512 signature=8dd04bfd 
 
[...] 

如何在Linux中查找硬盘的详细信息?

图2. 使用lshw在Linux中查找硬盘详细信息。

只想显示磁盘名称,运行:

$ sudo lshw -short -C disk 

示例输出:

H/W path Device Class Description 
 
==================================================================== 
 
/0/100/1d/1/1/6/0.0.0 /dev/sdb disk Multi-Card 
 
/0/100/1d/1/1/6/0.0.0/0 /dev/sdb disk 
 
/0/100/1f.2/0 /dev/sda disk 500GB ST9500325AS 
 
/0/100/1f.2/1 /dev/cdrom disk DVD+-RW DS-8A8SH  

想了解详细情况,请查阅参考手册页。

$ man lshw 

3. inxi

inxi是另一个功能完备的命令行系统信息工具。它显示系统硬件、CPU、驱动程序、Xorg、桌面、内核、GCC版本、进程、内存使用情况及另外众多有用的信息。无论是硬盘、CPU、主板还是整个系统的完整详细信息,inxi都能在几秒钟内为你获取更准确的信息。

3.1. Linux中安装inxi

inxi也存在于大多数Linux发行版的默认存储库中。

如果是Arch Linux,它在AUR中。可使用任何AUR帮助程序来安装它,比如Yay。

$ yay -S inxi 

在Debian或Uubntu上:

$ sudo apt install inxi 

在Fedora上:

$ sudo dnf install inxi 

在CentOS或RHEL上:

使用以下命令启用[EPEL]存储库:

$ sudo dnf install epel-release  
$ sudo dnf install inxi  

在openSUSE上:

$ sudo zypper install inxi 

3.2. 使用inxi在Linux中查找硬盘详细信息

想获得Linux系统中已安装硬盘的详细信息,运行:

$ inxi -D 

示例输出:

Drives: Local Storage: total: 465.76 GiB used: 376.31 GiB (80.8%)  
ID-1: /dev/sda vendor: Seagate model: ST9500325AS size: 465.76 GiB 

如何在Linux中查找硬盘的详细信息?

图3. 使用inxi在Linux中查找硬盘详细信息。

不像Hdparm和lshw程序,它只显示硬盘的详细信息。Hdparm和lshw实用工具可以显示所有驱动器的详细信息,包括CD/DVD ROM。

想了解详细情况,请查阅参考手册页。

$ man inxi 

4. Smartctl

Smartclt是一款面向SMART磁盘的命令行控制和监控实用工具。它可控制内置到大多数ATA/SATA和SCSI/SAS硬盘以及固态硬盘中的自我监测、分析和报告技术(简称SMART)系统。Smartclt命令是smartmontools软件包的一部分,该软件包预先安装在大多数Linux版本中。

4.1. 使用Smartctl在Linux中查找硬盘详细信息

想获取Linux系统中硬盘的完整详细信息,运行:

$ sudo smartctl -d ata -a -i /dev/sda 

示例输出:

smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-29-generic] (local build) 
 
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org 
 
=== START OF INFORMATION SECTION === 
 
Model Family: Seagate Momentus 5400.6 
 
Device Model: ST9500325AS 
 
Serial Number: 5VEQTRV0 
 
LU WWN Device Id: 5 000c50 048fe5ff9 
 
Firmware Version: D005DEM1 
 

User Capacity: 500,107,862,016 bytes [500 GB] 
 
Sector Size: 512 bytes logical/physical 
 
Rotation Rate: 5400 rpm 
 
Device is: In smartctl database [for details use: -P show] 
 
ATA Version is: ATA8-ACS T13/1699-D revision 4 
 
SATA Version is: SATA 2.6, 3.0 Gb/s 
 

Local Time is: Mon May 11 16:35:54 2020 IST 
 
SMART support is: Available - device has SMART capability. 
 
SMART support is: Enabled 
 
[...] 

如何在Linux中查找硬盘的详细信息?

图4. 使用Smartctl在Linux中查找硬盘详细信息

想了解详细情况,请查阅参考手册页。

$ man smartctl 

5. GNOME Disks

Disks或Gnome-disk-utility是一款图形化用户界面程序,用于查看、修改或配置Linux系统中的可用存储设备和介质。如果你不习惯命令行方式,可以使用GNOME Disks来创建和恢复磁盘映像、分区和格式化硬盘、检查硬盘速度、基准测试硬盘及检查健康状况等。它预先安装在拥有GNOME桌面环境的所有Linux发行版中。

5.1. 使用GNOME Disks 在Linux中查找硬盘详细信息

从Menu或Dash启动Disks。它列出了你Linux系统中所有可用的磁盘和介质。

如何在Linux中查找硬盘的详细信息?

图5. 使用GNOME Disks 在Linux中查找硬盘详细信息。

相关推荐