如何获取Linux中的物理磁盘数量?


12

什么是命令行命令以获取Linux Server中的物理磁盘数量以及每个磁盘上使用了多少空间?

Answers:


10

sudo fdisk -l将列出您的磁盘以及有关它们的大量统计信息,包括分区。磁盘通常采用/dev/sdx和分区的形式/dev/sdxn,其中x是字母,n是数字(因此sda是该磁盘上的第一个物理磁盘,sda1是该磁盘上的第一个分区)。

sudo df -h为您提供每个分区的大小和使用情况统计信息。删除-h,您就可以分块使用它,它是人类可读的。

我把sudos放在那里,是因为我以常规用户身份运行命令时没有从fdisk得到任何输出,而只有df有部分输出,我想是因为命令从非管理员的权限之外读取。


您应该添加parted用于GPT分区的fdisk代替。只是为了执行您的好答案。
Francisco Tapia 2015年

6

如果您只想显示硬件,而不显示OS可能会将其视为物理驱动器的RAID卷和分区。您可能要尝试lshw

lshw -class disk -short
H/W path        Device      Class       Description
===================================================
/0/1/0.0.0      /dev/cdrom  disk        DVD-RAM GSA-H55N
/0/1/0.1.0      /dev/sda    disk        160GB ST3160021A
/0/2/0.0.0      /dev/sdb    disk        160GB ST3160815AS

还是有点冗长

lshw -class disk
  *-cdrom                 
   description: DVD-RAM writer
   product: DVD-RAM GSA-H55N
   vendor: HL-DT-ST
   physical id: 0.0.0
   bus info: scsi@0:0.0.0
   logical name: /dev/cdrom
   logical name: /dev/sr0
   version: 1.04
   serial: [
   capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
   configuration: ansiversion=5 status=nodisc
  *-disk
   description: ATA Disk
   product: ST3160021A
   vendor: Seagate
   physical id: 0.1.0
   bus info: scsi@0:0.1.0
   logical name: /dev/sda
   version: 8.01
   serial: 5JS97CFY
   size: 149GiB (160GB)
   capabilities: partitioned partitioned:dos
   configuration: ansiversion=5 sectorsize=512 signature=000f3a2f
  *-disk
   description: ATA Disk
   product: ST3160815AS
   vendor: Seagate
   physical id: 0.0.0
   bus info: scsi@2:0.0.0
   logical name: /dev/sdb
   version: 3.AA
   serial: 9RX7AK36
   size: 149GiB (160GB)
   capabilities: partitioned partitioned:dos
   configuration: ansiversion=5 sectorsize=512 signature=000b6d91

3

我认为最近安装的Linux上最简单的方法(至少涉及解析工作)是

$ lsblk -S

输出如下所示:

tremendous:~# lsblk -S
NAME HCTL       TYPE VENDOR   MODEL             REV TRAN
sda  0:0:0:0    disk ATA      WDC WD5000AUDX-6 01.0 sata
sdb  1:0:0:0    disk ATA      WDC WD5000AUDX-6 01.0 sata
tremendous:~# 

-S在debian wheezy / sid或Ubuntu 12.10上不是有效的选项。但是,如果没有它,将lsblk显示出类似林的漂亮输出。
dezso 2014年

2

您可能会想到一个简单的答案,但这实际上取决于您所说的“物理磁盘”。iSCSI卷和RAID设备(例如)显示为物理磁盘,但是用来检查它们的工具有所不同。

如果您只是想将普通的SATA或SCSI驱动器直接连接到服务器主板上的主机控制器,则您正在寻找/ dev / sdN上的活跃使用的设备,因此您可以通过dmesg对其进行grep(dmesg | grep sd),也可以查看/ dev / disk / by-id,或者再次查看/ proc / diskstats。

一旦为存在的设备标识了/ dev /条目,就可以使用适当的工具检查可用空间。这又取决于其他信息,例如它们的分区方式,是否使用lvm等。


另一点:我的回答是假设您可能希望对磁盘进行分区,修改其lvm布局或创建/修改文件系统。如果您只想知道已分配的磁盘上有多少可用空间,请运行命令“ df -h”
sapeurfaire 2012年

实际上,这个问题是由stackoverflow.com/questions/11744730/…激发的。我实际上想知道,我们的服务器计算机中有多少个单独的磁盘系统。(Tomas回答)。
2012年

有多少个可用或正在使用的有几个?换句话说,您是在寻找放置另一个磁盘的地方,还是试图找到您认为已经存在的磁盘?
sapeurfaire

我试图找到我认为已经存在的磁盘。
Arpssss

2

根据您的分布(在本例中为Centos 7),lsblk -d您将看到(例如)三个物理磁盘。

NAME MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0   11:0    1  1024M  0 rom  
sr1   11:1    1  1024M  0 rom  
sdf    8:80   0 372.6G  0 disk 
sde    8:64   0 372.6G  0 disk 
sdg    8:96   0   1.8T  0 disk 

iostat也会显示类似结果(忽略dm设备,因为它们属于LVM

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sdf               1.85        41.74        53.80   68524791   88335482
sde               0.00         0.01         0.00      20219          0
dm-0              7.75        40.17        52.24   65945186   85767784
dm-1              0.31         0.94         1.56    1543416    2567312
sdg               0.86         1.89       171.04    3096240  280813864

0

如果您只想了解系统中的物理磁盘。

lsblk | grep -e ^ NAME -e磁盘

输出类似:

名称:最低RM尺寸RO型MOUNTPOINT

sda 8:0 0 40G 0磁盘

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.