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)
酷番叔酷番叔
上一篇 1小时前
下一篇 1小时前

相关推荐

  • Linux串口如何配置权限与通信?

    识别串口设备物理连接将串口设备(如USB转TTL模块)插入电脑,系统通常自动识别,查看设备节点终端执行:dmesg | grep tty # 查看内核日志ls /dev/tty* # 列出所有串口设备常见设备名:/dev/ttyS0:主板原生串口/dev/ttyUSB0:USB转串口设备/dev/ttyACM0……

    2025年7月15日
    3700
  • Linux下如何覆盖文件内容?具体操作步骤和注意事项有哪些?

    在Linux系统中,覆盖文件内容是一项基础且高频的操作,无论是更新配置文件、修改脚本代码还是重写日志数据,都需要根据场景选择合适的方法,本文将详细介绍Linux中覆盖文件内容的多种方式,包括基础命令、高级工具及注意事项,帮助用户在不同需求下安全高效地完成操作,基础重定向操作符覆盖最直接的方式是使用重定向操作符……

    2025年9月10日
    800
  • linux如何使用flashrom

    Linux上使用flashrom,首先安装软件包,然后以root权限运行flashrom

    2025年8月14日
    1300
  • 如何30秒优化bash脚本效率?

    在Linux脚本编程中,sleep命令是一个基础但至关重要的工具,用于在脚本执行过程中添加时间延迟,它通过暂停脚本运行指定的时间长度,帮助控制任务节奏、协调进程或处理定时任务,下面从语法、用法到实际案例全面解析其使用,sleep命令的核心作用延迟执行:暂停脚本运行,避免资源冲突(如文件读写竞争),定时任务:配合……

    2025年7月28日
    2700
  • Linux卸载JDK 1.7如何避免误删其他Java环境?

    确认已安装的JDK版本打开终端(Ctrl+Alt+T),运行命令检查当前Java版本:java -version若输出包含 7.0(如 java version “1.7.0_80″),则JDK 1.7已安装,定位JDK安装路径:sudo update-alternatives –config java记录J……

    2025年7月5日
    3100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信