CentOS下如何查看所有物理磁盘的型号、大小和使用情况?

使用 lsblk 命令:最直观的方式

lsblk(List Block Devices)是现代 Linux 系统中查看块设备信息的首选工具,它以树状结构清晰展示磁盘及其分区的关系,输出简洁明了,非常适合快速概览。

CentOS下如何查看所有物理磁盘的型号、大小和使用情况?

直接在终端输入 lsblk 即可:

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 238.5G  0 disk 
├─sda1        8:1    0   512M  0 part /boot/efi
└─sda2        8:2    0   238G  0 part /
sdb           8:16   0   1.8T  0 disk 
├─sdb1        8:17   0   1.8T  0 part /data
└─sdb2        8:18   0   512M  0 part 
sr0          11:0    1  1024M  0 rom  

从输出中,我们可以直接读取到以下关键信息:

  • NAME:设备名称,如 sdasdbsda 通常代表第一块 SCSI/SATA 磁盘,sdb 是第二块,以此类推。
  • MAJ:MIN:主设备号和次设备号,用于内核识别设备。
  • RM:是否为可移动设备(1表示是,0表示否)。
  • SIZE:设备的容量。
  • RO:是否为只读(1表示是,0表示否)。
  • TYPE:设备类型,disk 表示整个磁盘,part 表示分区。
  • MOUNTPOINT:挂载点,即该分区在文件系统中的位置。

lsblk 还有一些非常实用的选项:

  • lsblk -f:显示文件系统类型(如 ext4, xfs)、UUID 和挂载点。
  • lsblk -d:仅列出磁盘本身,不显示其下的分区。

使用 fdiskparted:分区信息的细节

当需要更详细的分区表信息时,fdiskparted 是传统的强大工具。

fdisk -l
fdisk 是一个经典的磁盘分区工具,使用 -l 参数可以列出指定磁盘的分区表,通常需要 root 权限。

$ sudo fdisk -l /dev/sda
Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 sectors
...
Device     Boot   Start       End   Sectors   Size Id Type
/dev/sda1  *       2048    1048575    1048528   512M  7 HPFS/NTFS/exFAT
/dev/sda2      1048576  500117503  499068928 238.1G 83 Linux

fdisk 的输出非常详细,包含了磁盘的几何信息、每个分区的起始和结束扇区、分区ID等,它对于 MBR(主引导记录)分区表的支持非常完善。

parted -l
对于使用 GPT(GUID 分区表)格式的大容量磁盘(超过2TB),parted 是更现代、更推荐的选择,它同样可以列出磁盘分区信息。

CentOS下如何查看所有物理磁盘的型号、大小和使用情况?

$ sudo parted -l
Model: ATA VENDOR SSD (scsi)
Disk /dev/sda: 256GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 
Number  Start   End     Size    File system  Name  Flags
 1      1049kB  538MB   537MB   fat32              boot, esp
 2      538MB   256GB   255GB   ext4
Model: ATA ST2000DM008-2FR1 (scsi)
Disk /dev/sdb: 2000GB
...

parted 的输出清晰地显示了分区表类型(gpt 或 msdos),并且对大容量磁盘的支持更好。

使用 df 命令:查看已挂载的文件系统空间

需要注意的是,df(Disk Free)命令查看的是已挂载文件系统的磁盘空间使用情况,而不是物理磁盘的原始信息,它回答的是“我的文件系统还剩多少空间?”这个问题。

使用 -h(human-readable)选项可以以易读的格式(如 KB, MB, GB)显示。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       238G  150G   88G  64% /
/dev/sda1       512M  7.8M  504M   2% /boot/efi
/dev/sdb1       1.8T  1.2T  600G  67% /data

df 的结果与 lsblkMOUNTPOINT 列相关联,但提供了更详细的空间使用数据。

高级用法:磁盘健康检测 (smartctl)

除了查看基本信息,监控磁盘的物理健康状况也至关重要。smartctl 是来自 smartmontools 软件包的工具,可以读取和分析硬盘的 S.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology)信息。

可能需要安装该工具:
sudo yum install smartmontools

可以使用 -a(all)参数查看某块磁盘(如 /dev/sda)的全面健康信息:
sudo smartctl -a /dev/sda

CentOS下如何查看所有物理磁盘的型号、大小和使用情况?

输出会包含大量技术数据,如通电时间、错误计数、温度等,是判断磁盘是否即将故障的重要依据。


命令对比小编总结

为了更好地选择合适的工具,下表对上述命令进行了小编总结:

命令 主要用途 主要特点/优势 是否需要root权限
lsblk 快速查看磁盘和分区的层次关系 输出直观,树状结构,信息简洁
fdisk -l 查看详细的分区表信息 经典工具,信息详尽,擅长MBR分区
parted -l 查看分区表信息,特别是GPT磁盘 现代工具,支持大容量磁盘和GPT
df -h 查看已挂载文件系统的空间使用情况 关注文件系统层面,而非物理磁盘
smartctl 检测和分析磁盘的物理健康状态 专业工具,可预测磁盘故障

相关问答 (FAQs)

问题1:为什么 df -h 显示的总大小和 lsblkfdisk 看到的磁盘大小不完全一致?

解答: 这是一个非常常见的现象,主要原因有以下几点:

  1. 文件系统开销:文件系统本身需要占用一部分空间来存储元数据,如 inode、日志、超级块等,这部分空间用户无法直接使用。
  2. 保留空间:Linux 系统默认会为 root 用户保留 5% 的磁盘空间(对 ext2/ext3/ext4 文件系统而言),这是为了防止系统因普通用户占满所有空间而无法登录或进行关键操作。df 显示的 Avail 是普通用户可用的空间,而 Used 则包含了这部分保留空间。
  3. 计算单位差异:操作系统和硬盘制造商对容量单位的定义不同,操作系统通常使用 1GB = 102410241024 字节,而硬盘制造商则使用 1GB = 1,000,000,000 字节,这会导致显示上的差异。

问题2:我看到磁盘列表里有 sda, sdb, sdc,我如何确定哪个是系统盘,哪个是新加的磁盘?

解答: 可以通过多种方法进行区分:

  1. 查看挂载点:使用 lsblkdf -h 命令,挂载点为 (根目录)的分区所在的磁盘就是系统盘。/boot/boot/efi 也位于系统盘上。
  2. 查看分区信息:系统盘通常会有多个分区,包括一个用于启动的分区(如 EFI System Partition)和一个根分区,而新加的磁盘可能没有分区,或者只有一个大的数据分区。
  3. 使用 smartctl 查看型号:新磁盘和旧磁盘的型号、序列号通常不同,可以使用 sudo smartctl -i /dev/sdX(X 为 a, b, c)来查看每块磁盘的详细信息,包括型号、序列号、固件版本等,从而根据物理信息进行匹配。
  4. 查看系统日志:在 /var/log/messagesdmesg 的输出中,通常可以找到系统启动时识别磁盘以及新磁盘插入时的日志记录,这也能提供线索。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-13 09:57
下一篇 2025-10-13 09:58

相关推荐

发表回复

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

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信