Linux如何通过命令查询硬盘数量?

在Linux系统中,查询硬盘数量是系统管理和运维中的常见需求,尤其是在服务器或存储设备配置中,Linux提供了多种命令和工具来帮助用户准确识别硬盘数量,以下将详细介绍几种主流方法,包括命令用法、输出解析及注意事项。

linux如何查询硬盘数量

使用lsblk命令列出块设备

lsblk(list block devices)是Linux中最常用、最直观的块设备查看工具,它能以树状结构展示所有块设备(包括硬盘、分区、光驱等),并通过TYPE字段区分设备类型。

基本用法

lsblk

输出解析
执行后,终端会显示设备名称(如sdasdb)、大小、类型(disk表示硬盘,part表示分区)、挂载点等信息,其中TYPEdisk的行即为物理硬盘,统计这些行的数量即可得到硬盘总数。

示例输出

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS  
sda      8:0    0  100G  0 disk  
├─sda1   8:1    0   50G  0 part /  
├─sda2   8:2    0   30G  0 part /home  
└─sda3   8:3    0   20G  0 part [SWAP]  
sdb      8:16   0  500G  0 disk /data  
sr0     11:0    1 1024M  0 rom  

上述输出中,sdasdbTYPE均为disk,说明系统有2块物理硬盘(sr0是光驱,不计入硬盘数量)。

进阶选项

  • -d:仅显示磁盘设备,不显示分区(避免分区干扰计数):
    lsblk -d | grep disk | wc -l

    该命令直接统计disk类型设备的数量,适用于精确计数。

使用fdisk命令列出磁盘分区表

fdisk是一个传统的磁盘分区管理工具,通过-l选项可列出所有磁盘设备的分区信息,Disk”开头的行即为硬盘设备。

基本用法

fdisk -l

输出解析
输出以“Disk /dev/sda”开头的行对应一块硬盘,下方会显示该硬盘的分区信息,统计这些行的数量即可得到硬盘总数。

示例输出

linux如何查询硬盘数量

Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors  
Disk /dev/sdb: 500 GiB, 536870912000 bytes, 1048576000 sectors  

上述输出中,sdasdb即为两块硬盘。

注意事项
若系统中有未分区的硬盘,fdisk -l仍会显示该设备,因此该方法能准确统计所有物理硬盘,包括未使用或未分区的硬盘。

读取/proc/partitions文件

/proc/partitions是Linux内核提供的虚拟文件,记录了系统中所有块设备(包括硬盘和分区)的信息,通过解析该文件,可提取硬盘设备名称。

基本用法

cat /proc/partitions

输出解析
文件包含三列:主设备号、次设备号和设备大小,最后一列是设备名称(如sdasda1),不包含数字后缀的设备名(如sdasdb)即为硬盘分区对应的设备,统计这些唯一设备名的数量即可。

示例输出

major minor  #blocks  name  
     8        0  104857600 sda  
     8        1   52428800 sda1  
     8        2   31457280 sda2  
     8       16  524288000 sdb  

上述输出中,sdasdb为硬盘设备,数量为2。

提取硬盘数量命令

awk '{print $4}' /proc/partitions | grep -o '[a-z]*[0-9]*$' | sort | uniq | grep -v '[0-9]$' | wc -l

该命令通过提取设备名、过滤分区(带数字后缀)、去重后统计硬盘数量。

使用lshw工具获取详细硬件信息

lshw(List Hardware)是一个功能强大的硬件信息查看工具,能提供详细的硬件列表,包括硬盘的型号、接口类型(SATA/SCSI/NVMe等)。

安装与使用
若系统未安装lshw,需先安装(Ubuntu/Debian:sudo apt install lshw;CentOS/RHEL:sudo yum install lshw)。

linux如何查询硬盘数量

lshw -class disk -short

输出解析
-class disk仅显示磁盘类设备,-short以简洁格式输出,包含设备路径、描述和大小,统计输出行数即可得到硬盘数量。

示例输出

/pci0000:00/0000:00:17.0/ata1/host0/target0:0:0/0:0:0:0    disk    500GB  
/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0    disk    100GB  

上述输出显示2块硬盘,分别为500GB和100GB。

命令对比与适用场景

为方便选择,以下工具对比如下:

命令/工具 优点 缺点 适用场景
lsblk 直观、树状结构、无需安装 默认显示分区,需过滤 日常快速查看
fdisk -l 传统工具、兼容性强 输出信息较杂,需手动筛选 兼容旧系统或查看分区详情
/proc/partitions 系统文件、无需安装 需手动解析文本 脚本自动化处理
lshw 信息详细(型号、接口等) 需安装、输出较复杂 深度硬件分析

查询Linux硬盘数量可根据需求选择工具:日常使用推荐lsblk -d | grep disk | wc -l,快速且准确;脚本自动化可读取/proc/partitions并解析;若需硬盘详细信息(如型号),则使用lshw,注意区分物理硬盘和虚拟设备(如loop设备、RAM盘),避免误计数。

相关问答FAQs

Q1: 如何排除虚拟硬盘(如loop设备)只统计物理硬盘?
A: 使用lsblk时结合d选项(排除分区)和-o选项(指定输出列),并通过grep过滤非物理设备。

lsblk -d -o NAME,TYPE | grep disk | grep -v loop

该命令仅显示TYPEdisk且设备名不含loop的物理硬盘。

Q2: 为什么lsblkfdisk -l显示的硬盘数量不一致?
A: 可能原因包括:

  1. lsblk默认显示所有块设备(如光驱、虚拟磁盘),而fdisk -l仅显示磁盘类设备;
  2. 部分硬盘(如未初始化的NVMe硬盘)可能被lsblk识别为disk,但fdisk因无分区表而不显示;
  3. 虚拟设备(如QEMU虚拟磁盘)可能被lsblk统计,但fdisk -l忽略。
    建议通过lshw -class disk确认物理硬盘数量,或结合lsblk -dfdisk -l交叉验证。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/27656.html

(0)
酷番叔酷番叔
上一篇 2025年9月21日 16:01
下一篇 2025年9月21日 16:11

相关推荐

  • Linux访问网站的常用命令和详细操作步骤有哪些?

    在Linux系统中,访问网站是日常操作和服务器管理中的基础需求,主要通过图形界面浏览器和命令行工具实现,本文将详细介绍不同场景下的访问方法、常用工具及网络问题排查技巧,帮助用户全面掌握Linux环境下的网站访问能力,图形界面浏览器访问Linux图形界面(GUI)环境下,访问网站最常用的方式是使用网页浏览器,主流……

    2025年9月8日
    3000
  • Linux如何打开网络端口?命令与配置方法详解?

    在Linux系统中,网络端口是应用程序与外部通信的入口,“打开端口”通常指允许特定端口的流量通过防火墙,并确保有进程在该端口上监听,本文将详细介绍Linux中打开网络端口的常用方法,包括端口状态检查、防火墙配置及常见问题排查,端口基础概念网络端口用16位整数表示(0-65535),其中0-1023为知名端口(如……

    2025年10月7日
    1700
  • Linux中如何停止Tomcat服务?

    在Linux系统中停止Tomcat服务是日常运维中的常见操作,根据Tomcat的启动方式和部署环境不同,停止方法也存在差异,正确的停止操作可以避免数据丢失或服务异常,下面将详细介绍几种主流的停止方法及注意事项,使用Tomcat自带脚本停止(推荐方式)Tomcat提供了shutdown.sh和catalina.s……

    2025年9月24日
    2100
  • Linux如何更改时区?具体操作步骤与命令详解

    在Linux系统中,正确设置时区对系统日志记录、应用运行时间同步、定时任务执行等至关重要,不同Linux发行版更改时区的方法略有差异,但核心逻辑一致,本文将详细介绍几种主流操作方式,使用timedatectl命令(推荐,适用于systemd系统)现代Linux发行版(如Ubuntu 16.04+、CentOS……

    2025年9月24日
    2900
  • 如何查看linux补丁版本

    在Linux系统中,补丁版本通常指内核补丁、系统安全更新或软件包的修订版本,查看这些信息有助于系统管理员了解系统安全性、稳定性及更新状态,不同Linux发行版查看补丁版本的方法略有差异,以下从内核补丁、系统补丁包、安全更新记录等角度详细介绍查看方法,并针对主流发行版提供具体命令和示例,查看内核补丁版本内核补丁版……

    2025年9月17日
    3000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信