Linux系统下如何查看硬盘容量、分区及使用情况的详细方法?

在Linux系统中,查看硬盘信息是系统管理、故障排查和资源优化的基础操作,通过不同命令可以从多个维度(如设备结构、分区信息、空间使用、健康状态等)获取硬盘详情,以下详细介绍常用方法及其实际应用。

linux如何查看硬盘

基础块设备信息查看

块设备是Linux中硬盘的抽象表示,通过基础命令可快速了解磁盘的物理结构和分区情况。

lsblk:列出块设备信息

lsblk以树状结构显示块设备,包括磁盘、分区及挂载点,适合直观查看设备层级关系。

  • 常用参数
    • -f:显示文件系统类型(如ext4、xfs)、UUID及挂载点;
    • -m:显示设备的权限、所有者及所属组;
    • -o NAME,SIZE,RO,TYPE,MOUNTPOINT:自定义输出列(设备名、大小、只读状态、类型、挂载点)。
  • 示例输出
    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT  
    sda      8:0    0 238.5G  0 disk   
    ├─sda1   8:1    0   500M  0 part /boot/efi  
    └─sda2   8:2    0   238G  0 part /  
    nvme0n1 259:0    0 931.5G  0 disk   
    └─nvme0n1p1 259:1    0 931.5G  0 part /data  

    TYPEdisk表示整块硬盘,part表示分区;SIZE显示磁盘容量(默认单位为KB,可通过-b指定字节)。

fdisk:分区表管理工具

fdisk是经典的分区管理工具,通过-l参数可查看所有磁盘的分区表信息,包括分区类型、起始/结束扇区等。

  • 常用参数
    • -l:列出所有磁盘的分区详情;
    • /dev/sda:指定目标磁盘(如/dev/sdb/dev/nvme0n1)。
  • 示例输出
    Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 sectors  
    Disk model: WDC WD10EZEX-08WN4A0  
    Units: sectors of 1 * 512 = 512 bytes  
    Sector size (logical/physical): 512 bytes / 4096 bytes  
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes  
    Disklabel type: gpt  
    Device     Start      End  Sectors Size Type  
    /dev/sda1   2048   1024000  1021951 500M EFI System  
    /dev/sda2 1024000 500117503 499093504 238G Linux filesystem  

    输出中包含磁盘型号、分区表类型(gpt/mbr)、分区的起始/结束扇区及大小,适合分析分区布局。

blkid:查看块设备属性

blkid用于显示块设备的文件系统类型、UUID、LABEL等属性,常用于确认分区格式或挂载参数。

  • 示例输出
    /dev/sda1: UUID="C12A7328-F81F-11D2-BA4B-00A0C93EC93B" TYPE="vfat" PARTLABEL="EFI System" PARTUUID="12345678-1234-1234-1234-123456789abc"  
    /dev/sda2: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="ext4" PARTUUID="87654321-4321-4321-4321-abcdef123456"  

文件系统空间使用情况

了解文件系统的空间占用是管理磁盘的核心,常用dfdu命令分别从整体和局部视角分析空间使用。

linux如何查看硬盘

df:文件系统空间统计

df按文件系统显示磁盘空间使用情况,适用于检查整体空间是否充足。

  • 常用参数
    • -h:以人类可读格式显示(如K、M、G);
    • -T:显示文件系统类型;
    • -i:显示inode使用情况(inode耗尽会导致无法创建文件,即使空间充足)。
  • 示例输出
    Filesystem     Type      Size  Used Avail Use% Mounted on  
    /dev/sda2      ext4       238G   50G  178G  22% /  
    /dev/nvme0n1p1 xfs       932G  200G  732G  22% /data  
    tmpfs          tmpfs      16G     0   16G   0% /dev/shm  

    Use%表示已用空间占比,若接近100%,需及时清理或扩容;Avail是可用空间(考虑保留空间,实际可用量可能略大)。

du:目录/文件大小统计

du用于递归计算指定目录或文件的大小,适合定位大文件或目录。

  • 常用参数
    • -sh:显示总大小(s汇总,h人类可读);
    • --max-depth=1:限制递归深度(仅显示一级子目录大小)。
  • 示例输出
    /data 200G  
    /data/logs 150G  
    /data/videos 45G  

硬盘物理与健康状态监控

对于硬盘维护,了解物理信息和健康状态可提前预警故障,需借助专业工具。

hdparm:查看硬盘物理信息

hdparm可获取硬盘型号、序列号、转速等物理参数,需安装(sudo apt install hdparm)。

  • 常用参数
    • -i:显示硬盘标识信息(型号、固件版本、接口类型);
    • -t:测试读取速度(非精确,仅作参考)。
  • 示例输出
    /dev/sda:  
      Model=WDC WD10EZEX-08WN4A0, FwRev=80.00A80, SerialNo=WD-WCC4N0KZ2Y7  
      Config={HardSect NotMFM HdSw>15uSec SpinControlRpmCmd}  
      RawCHS=16383/16/63, TrkSize=0, SectSize=512, ECCbytes=40  

smartctl:S.M.A.R.T.健康检测

S.M.A.R.T.(自我监控、分析和报告技术)是硬盘的健康监测标准,smartctl来自smartmontools工具包(需安装)。

  • 常用参数
    • -a:显示完整的S.M.A.R.T.信息(包括属性值、阈值、错误日志);
    • --health:仅显示健康状态摘要;
    • /dev/sda:指定目标硬盘。
  • 示例输出
    SMART overall-health self-assessment test result: PASSED  
    SMART Attribute Data:  
    ID# Attribute Name      Flags   Value Worst Threshold  
    9  Power_On_Hours     0x0032   12345  65535  00000  
    194 Temperature_Celsius 0x0022   35     00000  00000  

    SMART overall-health显示FAILED,或属性值(如Reallocated_Sector_Ct)接近阈值,需立即备份数据并更换硬盘。

    linux如何查看硬盘

nvme-cli:NVMe硬盘专用工具

对于NVMe固态硬盘,需使用nvme-cli工具(sudo apt install nvme-cli)查看专属信息,如温度、磨损等级等。

  • 常用命令
    • nvme list:列出NVMe设备;
    • nvme smart-log /dev/nvme0n1:显示SMART日志(包含温度、可用剩余寿命等)。

常用查看命令总结表

命令 主要功能 常用参数 适用场景
lsblk 列出块设备树状结构 -f, -m, -o NAME,SIZE,MOUNTPOINT 查看设备层级、分区及挂载点
df 文件系统空间统计 -h, -T, -i 检查整体空间使用及inode状态
du 目录/文件大小统计 -sh, --max-depth=1 定位大文件或目录
fdisk -l 查看分区表详情 -l 分析分区布局、类型(gpt/mbr)
smartctl S.M.A.R.T.健康检测 -a, --health 硬盘健康状态监控与故障预警
hdparm 硬盘物理信息读取 -i, -t 获取型号、转速等物理参数

相关问答FAQs

Q1: 如何测试硬盘的读写速度?
A1: 可使用dd命令进行简单测试(需确保无其他大流量IO操作),读取速度测试:

dd if=/dev/sda of=/dev/null bs=1G count=1 iflag=direct

写入速度测试:

dd if=/dev/zero of=/testfile bs=1G count=1 oflag=direct

测试后通过ls -lh /testfile查看文件大小,计算速度(如1GB耗时2秒,则速度为500MB/s),更专业的工具可使用fio( Flexible I/O Tester)。

Q2: 为什么df显示的已用空间和du计算的不一致?
A2: 主要原因包括:

  1. 文件系统保留空间:Linux文件系统默认预留5%空间(仅root用户可使用),df包含这部分空间,而du不统计;
  2. 删除文件未释放:若文件被删除但进程仍持有句柄(如日志文件被应用打开),空间未被实际释放,df仍计入已用,du无法统计已删除文件;
  3. 挂载点包含其他文件系统:如/home挂载独立分区,du /home仅统计该分区,而df /显示根分区空间,两者无直接关联。
    可通过df -i检查inode是否耗尽,或使用lsof | grep deleted查看被删除但未释放的文件。

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

(0)
酷番叔酷番叔
上一篇 2025年8月28日 05:25
下一篇 2025年8月28日 05:40

相关推荐

  • Linux中如何正确使用转义字符?

    在Linux系统中,转义字符是一种特殊的语法机制,用于改变字符的原始含义,使其作为普通字符而非特殊符号处理,Linux命令行和脚本中,许多字符(如、、、空格等)具有预定义的特殊功能,若需使用这些字符的字面值,必须通过转义字符告知系统“此处无需解析特殊含义”,本文将详细解析Linux中转义字符的类型、使用场景及注……

    2025年9月11日
    4200
  • archlinux如何安装桌面环境

    Archlinux中可通过sudo pacman -S xfce4等命令安装对应桌面

    2025年8月15日
    5300
  • Linux下用gdb如何实现单步执行?调试步骤与操作方法详解

    Linux环境下,程序调试是开发过程中的关键环节,单步执行作为核心调试手段,允许开发者逐行或逐指令跟踪程序执行流程,观察变量状态变化,精准定位逻辑错误,本文将详细介绍如何通过主流调试工具实现单步执行,重点以GDB(GNU Debugger)为例展开说明,大多数Linux发行版默认已安装GDB,若未安装,可通过包……

    2025年10月4日
    2700
  • 每天吃鸡蛋真的有害健康?

    环境准备:安装C++编译器与STL安装GCC/G++编译器通过包管理器安装ARM Linux的C++工具链(以Debian系为例):sudo apt updatesudo apt install g++ build-essential # 安装本地编译环境若需交叉编译(在x86主机上编译ARM程序):sudo……

    2025年7月27日
    6500
  • 如何查看linux的ftp

    Linux中,可使用命令ftp [服务器地址]进入FTP交互模式查看;

    2025年8月15日
    5500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信