如何在Linux中查找硬盘驱动器详细信息

时间:2020-03-21 11:44:24  来源:igfitidea点击:

本教程列出了各种方法,可以在Linux操作系统中查找硬盘驱动器详细信息。
使用以下方法,我们可以找到硬盘制作,硬盘类型,大小,固件版本,分区表和其他硬件参数。
首先,我们将看到如何使用HDParm命令行实用程序显示硬盘详细信息。

1. HDParm.

HDPARM是一个命令行程序,用于获取或者设置PATA,SATA,SAS和SSD设备的硬件参数。
它接受任何设备作为连接到IDE,SATA,SAS接口的大容量存储,因此我们甚至可以检索有关CD/DVD驱动器的信息。
使用HDParm实用程序,我们可以调整硬盘或者DVD驱动器,测试HDD或者SSD速度,通过激活声模式降低噪声水平,打开或者关闭节能模式,启用或者禁用睡眠模式,启用/禁用驱动器缓存和甚至擦除驱动器安全。
HDPARM由Mark Lord,Ligoploper和Vestainer的Linux(E)IDE驱动程序的主导开发人员和维护者和"Libata"子系统的当前贡献者编写。

谨慎一句话

尽管HDParm提供了提高磁盘性能的显着优势,但它也是非常危险的。
当某些参数被滥用时,它可能会导致大规模的数据丢失。
HDPARM文档表明我们不应在任何情况下使用一些命令。
所以我排除了本教程中的这种危险命令。
更重要的是,在测试Linux系统上的HDParm之前,始终建议备份硬盘驱动器。

1.1. 在Linux上安装HDPARM

HDPARM预先安装在大多数Linux发行版中。
如果由于任何原因未包含,请使用默认包管理器在Linux系统上安装HDPARM。

On 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是我的硬盘。
用自己的设备替换它。
在这里我使用了"少"命令进行交互式阅读。
按ENTER键或者命中/向下箭头浏览其余输出。
完成后按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
[...]

如我们所见,HDPARM显示硬盘的型号,序列号,固件版本,后跟硬盘配置(NO圆柱,头部,扇区),DMA设置,启用功能列表,安全参数等。
"命令/功能"部分并标记为星号当前处于活动状态。

同样,我们可以检查其他设备的信息。

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

运行HDPARM时没有选项,假设-ACDGKMUR。
请参阅Man页面以了解每个选项的内容。

$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页面。

$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: Hyman@theitroad: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
[...]

仅显示磁盘的名称,运行:

$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.

Inxiis又是另一个全功能的命令行系统信息工具。

它显示系统硬件,CPU,Drivers,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

我们还可以使用以下命令显示磁盘控制器速度,串行编号和温度等磁盘详细信息:

$inxi -Dxx

示例输出:

Drives:    Local Storage: total: 465.76 GiB used: 332.10 GiB (71.3%) 
           ID-1: /dev/sda vendor: Seagate model: ST9500325AS size: 465.76 GiB speed: 3.0 Gb/s serial: 5VEQTRV0 temp: 46 C

与HDPARM和LSHW程序不同,它只会显示硬盘驱动器详细信息。
HDPARM和LSHW Utilities将显示包含CD/DVD ROM的所有驱动器详细信息。

有关更多详细信息,请参阅Man页面。

$man inxi

4. SmartCTL.

SmartClt是智能磁盘的命令行,控件和监视实用程序。
它控制了大多数ATA/SATA和SCSI/SAS硬盘和固态驱动器内置的自我监控,分析和报告技术(短智能)系统。
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 Jan 11 16:35:54 2017 IST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
[...]

有关更多详细信息,请参阅Man页面。

$man smartctl

5.使用LSBLK查找Linux中的硬盘驱动器详细信息

LSBLK是一个命令行实用程序,可在Unix的操作系统中显示所有可用或者指定的块设备。
它读取"sysfs"文件系统和"udev db"来收集信息。
LSBLK命令是"UTIL-Linux"包的一部分,该包装预先安装在大多数Linux发行版中。

要使用LSBLK命令显示所有块设备,请运行:

$lsblk -io KNAME,TYPE,SIZE,MODEL

示例输出:

KNAME  TYPE   SIZE MODEL
loop0  loop 154.3M 
loop1  loop 154.3M 
loop2  loop  93.8M 
loop3  loop  93.9M 
loop4  loop    55M 
loop5  loop    55M 
loop6  loop   149M 
loop7  loop 140.7M 
loop8  loop 156.7M 
loop9  loop 255.6M 
loop10 loop 160.2M 
loop11 loop   2.4M 
loop12 loop   2.4M 
loop13 loop 140.7M 
loop14 loop 242.4M 
loop15 loop  14.8M 
loop16 loop   276K 
loop17 loop   956K 
loop18 loop   956K 
loop19 loop   3.7M 
loop20 loop   2.2M 
loop21 loop  54.8M 
loop22 loop  62.1M 
loop23 loop 199.4M 
loop24 loop   203M 
sda    disk 465.8G ST9500325AS
sda1   part 465.8G 
sr0    rom   1024M PLDS_DVD+_-RW_DS-8A8SH

我们甚至可以显示更多详细信息,包括文件系统类型,UUID,MountPoint等,如下所示:

$lsblk -io KNAME,TYPE,SIZE,MODEL,FSTYPE,UUID,MOUNTPOINT

示例输出:

KNAME  TYPE   SIZE MODEL                  FSTYPE   UUID                                 MOUNTPOINT
loop0  loop 154.3M                        squashfs                                      /snap/chromium/1135
loop1  loop 154.3M                        squashfs                                      /snap/chromium/1143
loop2  loop  93.8M                        squashfs                                      /snap/core/8935
loop3  loop  93.9M                        squashfs                                      /snap/core/9066
loop4  loop    55M                        squashfs                                      /snap/core18/1705
loop5  loop    55M                        squashfs                                      /snap/core18/1754
loop6  loop   149M                        squashfs                                      /snap/gifcurry/8
loop7  loop 160.2M                        squashfs                                      /snap/gnome-3-28-1804/116
loop8  loop 156.7M                        squashfs                                      /snap/gnome-3-28-1804/110
loop9  loop   2.2M                        squashfs                                      /snap/gnome-system-monitor/145
loop10 loop 242.4M                        squashfs                                      /snap/gnome-3-34-1804/27
loop11 loop 140.7M                        squashfs                                      /snap/gnome-3-26-1604/98
loop12 loop 140.7M                        squashfs                                      /snap/gnome-3-26-1604/97
loop13 loop   3.7M                        squashfs                                      /snap/gnome-system-monitor/135
loop14 loop  54.8M                        squashfs                                      /snap/gtk-common-themes/1502
loop15 loop 255.6M                        squashfs                                      /snap/gnome-3-34-1804/33
loop16 loop  62.1M                        squashfs                                      /snap/gtk-common-themes/1506
loop17 loop   203M                        squashfs                                      /snap/multipass/2037
loop18 loop 208.8M                        squashfs                                      /snap/multipass/2053
sda    disk 465.8G ST9500325AS                                                          
sda1   part 465.8G                        ext4     3968763a-adde-46e0-ae93-e2a1e51120da /
sr0    rom   1024M PLDS_DVD+_-RW_DS-8A8SH

如果要仅显示物理设备,请使用"-d"标志。

$lsblk -ido KNAME,TYPE,SIZE,MODEL

6.使用FDISK和SFDISK命令在Linux中查找硬盘驱动器详细信息

fdisk和sfdisk命令用于创建和操作分区表。
FDISK是一个用于创建和操作分区表的对话程序驱动程序,而SFDisk是一个面向脚本的工具,用于分区任何块设备。
两者都是Util-Linux包的一部分,它在所有Linux Distr中预先安装。

要获取HDD详细信息,请使用"-l"标志作为root或者sudo用户运行fdisk:

$sudo fdisk -l

示例输出:

[...]
Disk /dev/sda: 465.78 GiB, 500107862015 bytes, 976773168 sectors
Disk model: ST9500325AS     
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes/512 bytes
I/O size (minimum/optimal): 512 bytes/512 bytes
Disklabel type: dos
Disk identifier: 0x8dd04bfd
Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1  *     2048 976771071 976769024 465.8G 83 Linux
[...]

SFDISK的用法与FDISK相同。
要使用SFDISK列出HDD详细信息,请使用root或者sudo权限使用-l标志运行:

$sudo sfdisk -l

要从输出中排除DM(设备映射器)设备的详细信息,请运行:

$sudo fdisk -l /dev/sd?

或者,

$sudo sfdisk -l /dev/sd?

示例输出:

Disk /dev/sda: 465.78 GiB, 500107862015 bytes, 976773168 sectors
Disk model: ST9500325AS     
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes/512 bytes
I/O size (minimum/optimal): 512 bytes/512 bytes
Disklabel type: dos
Disk identifier: 0x8dd04bfd
Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1  *     2048 976771071 976769024 465.8G 83 Linux

7.在Linux中查找使用/proc的硬盘驱动器详细信息

/proc是UNIX的发行版中的特殊虚拟文件系统。
它也称为过程信息伪文件系统。
它不包含任何"真实"文件,但运行时系统信息,如进程,系统内存,安装的设备和硬件配置等。
每个设备详细信息都存储在单独的目录中/proc目录下。
存储设备的详细信息将在"/proc/scsi/scsi"文件中使用。

$cat /proc/scsi/scsi

示例输出:

Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST9500325AS      Rev: DEM1
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi4 Channel: 00 Id: 00 Lun: 00
  Vendor: PLDS     Model: DVD+-RW DS-8A8SH Rev: KD11
  Type:   CD-ROM                           ANSI  SCSI revision: 05
Host: scsi6 Channel: 00 Id: 00 Lun: 00
  Vendor: Generic- Model: Multi-Card       Rev: 1.00
  Type:   Direct-Access                    ANSI  SCSI revision: 00

8. HWINFO.

HWINFO是一个免费的,开源和命令行实用程序,用于查找Linux系统硬件信息。
它对Linux系统中存在的硬件探讨并显示每个硬件设备的广泛细节。
它使用libhd.so库收集几乎所有硬件的详细信息,如BIOS,CPU,架构,内存,硬盘,隔板,相机,蓝牙,CD/DVD驱动器,键盘/键盘/鼠标,显卡,监视器,调制解调器,Scanner,打印机,PCI,IDE,SCSI,声卡,网络接口卡,USB和更多。

8.1. 在Linux中安装HWINFO

请参阅以下链接以在Linux系统中安装HWINFO。

  • 如何使用HWINFO查找Linux系统硬件信息

8.2. 使用HWINFO查找Linux中的硬盘驱动器详细信息

要使用HWINFO查找硬盘驱动器详细信息,请运行:

$sudo hwinfo --disk

示例输出:

[...]
19: IDE 00.0: 10600 Disk
  [Created at block.245]
  Unique ID: 3OOL.lJ6EpAAhNoC
  Parent ID: w7Y8.V9XImrUYE44
  SysFS ID: /class/block/sda
  SysFS BusID: 0:0:0:0
  SysFS Device Link: /devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0
  Hardware Class: disk
  Model: "ST9500325AS"
  Device: "ST9500325AS"
  Revision: "DEM1"
  Serial ID: "5VEQTRV0"
  Driver: "ahci", "sd"
  Driver Modules: "ahci"
  Device File: /dev/sda
  Device Number: block 8:0-8:15
  Geometry (Logical): CHS 60801/255/63
  Size: 976773168 sectors a 512 bytes
  Capacity: 465 GB (500107862015 bytes)
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #2 (SATA controller)
[...]

或者我们可以显示磁盘详细信息的简短摘要:

$sudo hwinfo --short --disk

示例输出:

disk:                                                           
  /dev/sdb             Generic Multi-Card
  /dev/sda             ST9500325AS
                       Realtek RTS5138 Card Reader Controller

9. GNOME磁盘

磁盘或者GNOME-Disk-Utility是一个图形用户界面程序,用于在Linux系统中查看,修改和配置可用的存储设备和媒体。

如果我们不熟悉命令行方式,我们可以使用使用GNOME磁盘来创建和恢复磁盘镜像,分区和格式驱动器,检查驱动速度,基准驱动器和检查运行状况等。
它可以预先安装在所有Linux发行版中有Gnome桌面环境。

9.1. 使用GNOME磁盘查找Linux中的硬盘驱动器详细信息

从菜单或者破折号启动磁盘。
它列出了Linux系统中的所有可用磁盘和媒体。