Linux系统如何查看硬盘的详细信息、容量、使用情况及分区状态?

Linux系统中,查看硬盘信息是系统管理、故障排查和性能优化的基础操作,Linux提供了多种命令和工具,从不同维度(如设备识别、分区结构、使用情况、健康状态等)展示硬盘信息,本文将详细介绍这些方法,并通过示例帮助读者理解输出结果的含义。

linux 如何查看硬盘

硬盘设备命名规则

在Linux中,硬盘设备文件通常位于/dev目录下,命名规则与硬盘接口类型相关:

  • IDE硬盘:早期接口,设备名为/dev/hd[a-z](如/dev/hda)。
  • SCSI/SATA/USB硬盘:当前主流接口,设备名为/dev/sd[a-z](如/dev/sdaa表示第1块硬盘,b为第2块,以此类推)。
  • NVMe硬盘:高速固态硬盘接口,设备名为/dev/nvme[0-9]n[1-9](如/dev/nvme0n10为控制器编号,1为磁盘编号)。
  • PCIe SSD:部分高性能SSD可能以/dev/pciename形式命名,但较少见。

了解命名规则后,可通过ls /dev | grep -E 'sd|nvme|hd'查看系统中的所有硬盘设备。

查看硬盘基本信息与分区结构

lsblk:列出块设备信息(推荐)

lsblk(list block devices)是Linux中最常用的块设备查看工具,以树状结构展示设备及其分区信息,支持自定义输出列。

常用参数

  • -f:显示文件系统类型(FSTYPE)、挂载点(MOUNTPOINT)和UUID。
  • -m:显示设备权限、所有者、组信息。
  • -t:显示设备拓扑结构(如层级、是否为虚拟设备)。
  • -o NAME,SIZE,FSTYPE,MOUNTPOINT,ROTA:自定义输出列(如设备名、大小、文件系统、挂载点、是否为旋转介质,ROTA=1表示机械硬盘,0表示SSD)。

示例

lsblk -f -o NAME,SIZE,FSTYPE,MOUNTPOINT,ROTA

输出解读(示例表格):

NAME SIZE FSTYPE MOUNTPOINT ROTA
sda 8T 1
├─sda1 512M vfat /boot/efi 1
└─sda2 8T ext4 1
nvme0n1 512G 0
└─nvme0n1p1 512G xfs /data 0

从输出可直观看到:sda是1.8TB机械硬盘(ROTA=1),分为两个分区;nvme0n1是512GB SSD(ROTA=0),仅有一个分区挂载到/data

fdisk:查看和管理分区表

fdisk是经典的分区工具,适合查看MBR或GPT分区表的详细信息。

用法

fdisk -l /dev/sda  # 查看/dev/sda的分区表

输出解读

  • Device:分区设备名(如/dev/sda1)。
  • Boot:是否为启动分区(标记为)。
  • Start/End:分区的起始和结束扇区。
  • Sectors:分区大小(扇区数)。
  • Size:分区大小(自动换算为KB/MB/GB)。
  • Id:分区类型(如83为Linux原生分区,8e为LVM分区,7为NTFS分区)。

交互模式:直接运行fdisk /dev/sda进入交互界面,输入p打印分区表,q退出,m查看帮助。

parted:高级分区工具(支持GPT/MBR)

partedfdisk更强大,支持GPT分区表、大容量硬盘(超过2TB),且可调整分区大小。

用法

linux 如何查看硬盘

parted -l  # 列出所有设备的分区信息

输出解读

  • Model:硬盘型号(如Samsung SSD 870 EVO 500GB)。
  • Disk /dev/nvme0n1:硬盘设备名及总大小。
  • Partition Table:分区表类型(如gpt)。
  • Number:分区编号,Start/End:分区起始和结束位置,Size:分区大小,File system:文件系统类型。

查看磁盘使用情况

df:文件系统磁盘使用量

df(disk free)用于查看已挂载文件系统的磁盘使用情况,默认单位为KB。

常用参数

  • -h:人类可读格式(如1K234M2G)。
  • -T:显示文件系统类型(如ext4xfsvfat)。
  • -i:显示inode使用情况(inode耗尽会导致无法创建文件)。

示例

df -hT

输出解读(示例表格):

Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 8T 800G 950G 45%
/dev/nvme0n1p1 xfs 512G 300G 200G 60% /data
tmpfs tmpfs 16G 0 16G 0% /dev/shm

重点关注Use%(使用率)和Mounted on(挂载点),避免磁盘空间不足导致系统故障。

du:目录/文件磁盘占用

du(disk usage)用于统计指定目录或文件的磁盘占用空间,适合定位大文件或目录。

常用参数

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

示例

du -sh /home/* | sort -hr  # 按大小倒序查看用户目录占用

输出解读

2G    /home/user1
800M    /home/user2
50M     /home/user3

可快速定位占用空间大的用户或目录。

查看硬盘健康状态与物理信息

smartctl:硬盘SMART信息(关键工具)

SMART(Self-Monitoring, Analysis and Reporting Technology)是硬盘的自我监控技术,smartctl来自smartmontools包,用于读取硬盘SMART信息,判断健康状态。

安装(Ubuntu/Debian):

linux 如何查看硬盘

sudo apt install smartmontools

常用参数

  • -i:显示设备信息(型号、序列号、固件版本)。
  • -H:显示硬盘健康状态(PASSED正常,FAILED异常)。
  • -a:显示所有SMART信息(包括属性、错误日志)。
  • -x:显示SMART详细信息(包括原始值和阈值)。

示例

sudo smartctl -H /dev/sda
sudo smartctl -a /dev/nvme0n1 | grep -E "Reallocated_Sector_Ct|Current_Pending_Sector"

输出解读

  • SMART Health Status: PASSED:硬盘健康状态正常。
  • 关键属性(机械硬盘):
    • Reallocated_Sector_Ct(重分配扇区数):大于0表示扇区损坏,需关注。
    • Current_Pending_Sector(当前待重定向扇区数):大于0表示读取错误。
    • Uncorrectable_Error_Cnt(不可纠正错误计数):大于0表示数据丢失风险。
  • SSD专属属性:
    • Wear_Leveling_Count(磨损均衡计数):反映SSD写入寿命,数值越大越接近寿命极限。
    • Available_Reservd_Space(预留空间):剩余预留空间比例,低于10%需更换。

hdparm:获取/设置硬盘参数

hdparm用于查看硬盘的物理参数,如缓存大小、传输模式、是否支持TRIM(对SSD重要)。

示例

hdparm -I /dev/sda | grep -E "cache|TRIM"  # 查看缓存和TRIM支持

输出解读

  • * Nominal Media Rotation Rate: 7200:机械硬盘转速(7200RPM)。
  • Device does not support TRIM:不支持TRIM(影响SSD写入性能)。
  • * LBA48 supported:支持LBA48 addressing(突破2TB容量限制)。

通过/sys文件系统查看物理信息

Linux将设备信息暴露在/sys目录下,可直接查看硬盘型号、接口类型等:

cat /sys/block/sda/device/model  # 硬盘型号
cat /sys/block/nvme0n1/device/device_type  # 接口类型(如NVMe)
cat /sys/block/sda/queue/rotational  # 是否为旋转介质(1=机械硬盘,0=SSD)

常用命令对比总结

命令 主要用途 常用参数 示例场景
lsblk 查看块设备及分区结构 -f, -m, -o NAME,SIZE,FSTYPE 快速了解设备、分区、挂载信息
fdisk 查看/管理MBR/GPT分区表 -l, 交互模式(p/q 查看分区类型、大小、启动标记
parted 高级分区管理(支持大容量) -l, print(交互模式) 调整分区大小、查看GPT分区
df 查看已挂载文件系统使用量 -h, -T, -i 监控磁盘空间是否不足
du 统计目录/文件占用空间 -sh, --max-depth=N 定位大文件、清理磁盘
smartctl 查看硬盘SMART健康状态 -H, -a, -x 判断硬盘是否损坏、预测寿命
hdparm 获取硬盘物理参数 -I, -t(基准测试) 查看缓存、TRIM支持、转速
blkid 查看块设备属性(UUID/FS类型) -o value -s UUID 获取分区UUID用于挂载

相关问答FAQs

Q1:Linux中/dev/sda和/dev/nvme0n1有什么区别?如何确认硬盘接口类型?

A/dev/sda是SCSI/SATA/USB等传统接口硬盘的设备名,而/dev/nvme0n1是NVMe接口的固态硬盘,可通过以下方式确认接口类型:

  1. 通过设备名判断sd前缀通常为SATA/SCSI,nvme前缀为NVMe。
  2. 通过lsblk查看拓扑结构
    lsblk -t | grep -E "sda|nvme0n1"

    输出中SATANVMe等字段直接标注接口类型。

  3. 通过物理信息判断
    cat /sys/block/sda/device/interface  # 可能输出"ata"(SATA)或"scsi"
    cat /sys/block/nvme0n1/device/device_type  # 输出"NVMe"

Q2:如何判断硬盘是否即将损坏?需要关注哪些SMART属性?

A:通过smartctl查看SMART信息,重点关注以下属性(不同硬盘厂商属性名可能略有差异):

  • 机械硬盘
    • Reallocated_Sector_Ct(重分配扇区数):大于0表示扇区损坏,持续增长需立即更换。
    • Current_Pending_Sector(当前待重定向扇区数):大于0表明存在读取错误。
    • Uncorrectable_Error_Cnt(不可纠正错误计数):大于0可能导致数据丢失。
    • Raw_Read_Error_Rate(原始读取错误率):异常升高表明磁头或盘片问题。
  • SSD
    • Wear_Leveling_Count(磨损均衡计数):反映SSD写入寿命,数值越大越接近寿命极限(需结合厂商寿命阈值)。
    • Available_Reservd_Space(预留空间):剩余比例低于10%时性能下降,需更换。
    • Media_Wearout_Indicator(媒体磨损指标,部分厂商支持):百分比形式,低于20%需警惕。
      操作建议:定期执行sudo smartctl -a /dev/sda | grep -E "(ATTRIBUTE_ID|fail)",若出现FAILING_NOWPre-fail属性异常,立即备份数据并更换硬盘。

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

(0)
酷番叔酷番叔
上一篇 2025年9月19日 18:24
下一篇 2025年9月19日 18:38

相关推荐

  • Linux系统如何制作启动盘?步骤与工具方法详解

    在Linux系统制作启动盘是安装操作系统、进行系统救援或运行Live环境的基础操作,其核心是将Linux系统镜像文件(ISO)写入可移动存储设备(如U盘),使设备具备引导功能,以下是详细的操作步骤、工具选择及注意事项,帮助用户顺利完成启动盘制作,准备工作在开始制作启动盘前,需确保以下准备工作就绪:Linux系统……

    2025年9月9日
    7800
  • Linux下如何关机?关机命令的原因是什么?

    在Linux系统中,关机操作看似简单,但涉及系统进程管理、文件同步、硬件安全等多个层面,正确的关机命令不仅能确保数据安全,还能延长硬件寿命,Linux系统提供了多种关机命令,每种命令的设计背后都有其特定的原因和适用场景,理解这些命令的原理和区别,有助于在不同场景下选择最合适的操作方式,Linux关机命令详解及使……

    2025年9月21日
    8500
  • PE环境下如何引导安装Linux系统?详细步骤说明

    在Windows预安装环境(PE)下引导Linux安装,是解决无光驱、无系统或需快速部署Linux系统的常用方法,PE环境提供了基础的磁盘操作、引导配置和驱动支持,通过特定工具可实现对Linux安装ISO的加载与引导,以下是详细操作流程及注意事项,准备工作工具与文件准备PE工具:选择支持引导配置的PE系统,如微……

    2025年8月22日
    10100
  • 如何关闭SELinux?操作步骤与配置方法详解

    SELinux(Security-Enhanced Linux)是Linux内核中一个重要的安全模块,通过强制访问控制(MAC)机制为系统提供细粒度的安全策略,防止未授权的访问和操作,但在某些场景下,如软件安装、服务调试或兼容性问题,可能需要临时或永久关闭SELinux,以下是详细的关闭步骤及注意事项,涵盖不同……

    2025年10月3日
    5200
  • Linux如何读取MATLAB的.mat文件?

    使用Python的Scipy库(推荐)适用于大多数.mat文件(v7.3以下版本),需安装Python环境:pip install scipy numpy操作步骤:创建Python脚本(如read_mat.py):from scipy.io import loadmatdata = loadmat('y……

    2025年7月15日
    12000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信