服务器测评网
我们一直在努力

Linux查看磁盘信息,命令有哪些?各有什么区别?

在 Linux 系统管理中,磁盘信息的查看是日常运维和故障排查的基础操作,通过准确掌握磁盘状态、分区结构、使用情况等数据,管理员可以有效规划存储资源、及时发现空间瓶颈,并保障数据安全,本文将系统介绍 Linux 系统中查看磁盘信息的多种命令及其使用场景,帮助读者全面掌握磁盘状态监控方法。

Linux查看磁盘信息,命令有哪些?各有什么区别?

基础磁盘信息查看:df 命令

df(disk free)命令是查看磁盘空间使用率的常用工具,主要用于显示文件系统的磁盘总容量、已用空间、可用空间及使用百分比等信息,其基本语法为 df [选项] [文件或目录],常用参数如下:

  • -h(human-readable):以人类可读的格式显示容量(如 K、M、G);
  • -T(print-type):显示文件系统类型;
  • -i(inodes):显示 inode 使用情况而非块使用情况;
  • --total:汇总所有文件系统的使用情况。

执行 df -hT 会输出类似以下结果:

文件系统     类型      容量  已用  可用 已用% 挂载点  
/dev/sda1    ext4       50G   20G   28G   42% /  
/dev/sdb1    xfs        100G  30G   70G   30% /data  
tmpfs        tmpfs      16G     0   16G    0% /dev/shm  

文件系统列标识磁盘分区或逻辑卷的类型,挂载点列显示分区挂载的目录位置,若需查看特定目录的磁盘使用情况,可指定目录路径,如 df -h /var/log 会仅显示 /var/log 所在分区的空间信息。

磁盘分区与详细信息:lsblk 与 fdisk

lsblk 命令:列出块设备

lsblk(list block devices)以树状结构显示磁盘及其分区的层级关系,直观呈现磁盘的物理结构、分区类型、挂载点等信息,其常用参数包括:

  • -f(fs):显示文件系统标签、UUID 及挂载点;
  • -d(directory):仅显示磁盘设备,不显示分区;
  • -m(maj:min):显示主设备号和次设备号。

执行 lsblk -f 的输出示例:

NAME   FSTYPE UUID                                 LABEL MOUNTPOINT  
sda                                                                  
├─sda1 ext4   12345678-9abc-def0-1234-56789abcdef0   /  
sdb                                                                  
├─sdb1 xfs    fedcba98-0765-4321-fedc-ba9876543210   /data  
└─sdb2 swap   11111111-2222-3333-4444-555555555555   [SWAP]  
nvme0n1                                                           
└─nvme0n1p1 ext4  88888888-9999-aaaa-bbbb-cccccccccccc /mnt/nvme  

从结果中可看出,系统包含 SATA 磁盘(sda/sdb)和 NVMe 磁盘(nvme0n1),每个磁盘下的分区类型、UUID 及挂载点一目了然。

fdisk 命令:分区表管理

fdisk 是经典的磁盘分区工具,可用于查看磁盘分区表、创建或删除分区,执行 sudo fdisk -ll 为 list 缩写)会列出系统中所有磁盘的详细分区信息,包括起始扇区、结束扇区、分区大小及分区类型 ID。

输出中可能包含:

Linux查看磁盘信息,命令有哪些?各有什么区别?

磁盘 /dev/sdb:107.4 GB, 107374182400 字节,209715200 个扇区  
单元:扇区 / 1 * 512 = 512 字节  
扇区大小(逻辑/物理):512 字节 / 512 字节  
I/O 大小(最小/最佳):512 字节 / 512 字节  
磁盘标签类型:dos  
磁盘标识符:0x12345678  
   设备 Boot      Start        End    Sectors   Size Id  
/dev/sdb1   *        2048   209715199   209713152   100G 83  
/dev/sdb2       209715200   209715199         0     1M  5  
/dev/sdb3       209717248   419430399   209713152   100G 8e  

Boot 列标记活动分区( 表示可引导),Id 列为分区类型(如 83 为 Linux 原生分区,8e 为 LVM 分区)。

物理磁盘性能与状态:smartctl 与 iostat

smartctl:监控磁盘健康状态

SMART(Self-Monitoring, Analysis and Reporting Technology)是硬盘的自我监测技术,smartctl 命令(需安装 smartmontools 工具包)可读取磁盘的 SMART 信息,评估硬盘健康状态。

常用参数:

  • -a(all):显示所有 SMART 信息;
  • -H(health):检查磁盘健康状态;
  • -A(attributes):显示详细属性表。

执行 sudo smartctl -H /dev/sda 会输出磁盘的总体评估(如 “PASSED” 或 “FAILED”),而smartctl -A /dev/sda` 则会显示温度、重新分配扇区数、 spin retry count 等关键健康属性,帮助预测硬盘故障。

iostat:磁盘 I/O 性能统计

iostat(位于 sysstat 工具包)是监控系统磁盘 I/O 性能的重要工具,可显示磁盘的读写请求数、数据传输速率、平均等待时间等指标,常用参数:

  • -d(disk):仅显示磁盘统计信息;
  • -x(extended):显示扩展统计信息(如利用率、等待时间);
  • -k:以 KB 为单位显示数据传输量。

执行 iostat -dxk 1(每秒刷新一次)的输出示例:

Device         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util  
sda            0.50     1.20     1.5     2.0     32.0     48.0    32.00     0.05    10.0    5.0   15.0   5.0   1.75  
sdb            0.00     0.00     0.0     0.0      0.0      0.0     0.00     0.00    0.0    0.0    0.0   0.0   0.00  

%util 列表示磁盘利用率,若持续高于 80%,可能表明磁盘 I/O 存在瓶颈;await 列为平均等待时间,数值过高说明磁盘响应慢。

文件系统使用详情:du 与 ncdu

du 命令:统计目录或文件大小

du(disk usage)用于递归统计目录或文件占用的磁盘空间,常用参数:

Linux查看磁盘信息,命令有哪些?各有什么区别?

  • -h:人类可读格式;
  • -s(summary):仅显示总计大小,不显示子目录详情;
  • --max-depth=N:限制递归深度(如 --max-depth=1 仅统计一级子目录)。

du -sh /var/log 会显示 /var/log 目录的总大小,而 du -h --max-depth=1 /home 则会列出 /home 下各用户目录的磁盘占用情况。

ncdu:交互式磁盘使用分析器

ncdu(NCurses Disk Usage)是 du 的增强版,提供交互式界面,支持快速导航、删除文件及可视化分析,安装后执行 ncdu /path/to/dir,即可进入文本界面,通过上下键选择目录,按 Delete 键可删除不需要的文件,适合快速定位大文件或空目录。

高级磁盘监控:/proc/diskstats 与 sar

/proc/diskstats:内核磁盘统计

/proc/diskstats 是 Linux 内核提供的磁盘统计接口,包含每个磁盘的详细 I/O 指标,如读取/写入次数、扇区数、耗时等,可通过 cat /proc/diskstats 查看原始数据,或结合 awkgrep 提取特定磁盘信息,适合编写自动化监控脚本。

sar:系统资源历史记录

sar(System Activity Reporter)可记录并查询系统历史资源使用情况,包括磁盘 I/O 统计,安装 sysstat 后,执行 sar -d -p 1 5(每秒记录一次,共 5 次)会显示磁盘的每秒读写请求数、传输量等,适合分析历史 I/O 负载模式。

Linux 系统提供了丰富的命令和工具用于查看磁盘信息,从基础的 dflsblk 到专业的 smartctliostat,管理员可根据需求选择合适的工具,日常运维中,建议结合 df 监控空间使用率、smartctl 检测硬盘健康、iostat 分析性能瓶颈,并通过 duncdu 定位大文件,从而实现磁盘资源的精细化管理,保障系统稳定运行。

赞(0)
未经允许不得转载:好主机测评网 » Linux查看磁盘信息,命令有哪些?各有什么区别?