如何在Linux中查找硬盘的详细信息?
即将开播: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 [...]
图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 [...]
图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
图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 [...]
图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系统中所有可用的磁盘和介质。
图5. 使用GNOME Disks 在Linux中查找硬盘详细信息。