如何找出系统中的硬盘?

xen*_*ide 265 linux hardware devices hard-disk

我需要知道哪些硬盘可用,包括未安装和可能未格式化的硬盘。我在dmesgor 中找不到它们/var/log/messages(太多了,无法滚动浏览)。我希望有一种方法可以使用/dev/proc找出这些信息,但我不知道如何。我正在使用 Linux。

Gil*_*il' 220

这是高度依赖于平台的。此外,不同的方法可能会以不同的方式处理边缘情况(各种“假”磁盘、RAID 卷等)。

在现代 udev 安装中,有到 子目录中存储介质的符号链接/dev/disk,您可以通过序列号 ( /dev/disk/by-id/)、UUID ( /dev/disk/by-uuid)、文件系统标签 ( /dev/disk/by-label/) 或硬件连接 ( /dev/disk/by-path/)查找磁盘或分区。

在 Linux 2.6 下,每个磁盘和类似磁盘的设备在/sys/block. 从一开始,在 Linux 下,磁盘和分区都列在/proc/partitions. 或者,您可以使用lshw : lshw -class disk

Linux 还提供了lsblk显示存储卷的漂亮树状视图的实用程序(自 util-linux 2.19 起,在带有 BusyBox 的嵌入式设备上不存在)。

如果您有一个fdiskdisklabel实用程序,它可能会告诉您它可以在哪些设备上工作。

您可以在Rosetta Stone for Unix上找到许多 Unix 变体的实用程序名称,特别是“列出硬件配置”和“读取磁盘标签”行。

  • 哦; Rosetta Stone 网站很棒 (12认同)
  • `sudo lshw -class disk` 让我的一天变得简单而直观。 (2认同)

K3-*_*rnc 189

lsblk将列出所有块设备。它非常适合编写脚本:

$ lsblk -io KNAME,TYPE,SIZE,MODEL
KNAME TYPE   SIZE MODEL
sda   disk 149.1G TOSHIBA MK1637GS
sda1  part  23.3G 
sda2  part    28G 
sda3  part  93.6G 
sda4  part   4.3G 
sr0   rom   1024M CD/DVDW TS-L632M
Run Code Online (Sandbox Code Playgroud)

lsblk 存在于 util-linux 包中,因此比提议的替代方案更通用。

  • 如果您只需要物理磁盘,请使用 `lsblk -d`,`-d` 表示不列出依赖消息。 (13认同)
  • 确实 =) $ `lsblk -ido KNAME,TYPE,SIZE,MODEL`(`util-linux` 的一部分,它是 Arch 上 `base` 的一部分)立即提供所需的信息,而无需 root。请注意,它提供*设备型号*,而不是*型号系列*。Skippy 建议的`smarctl -i /dev/<device>` 做到了,例如:“Model Family: Seagate Barracuda 7200.12”(lsblk -ido 中缺失:“disk 465,8G ST3500418AS”)。 (2认同)

nc3*_*c3b 77

怎么样

lshw -class disk
Run Code Online (Sandbox Code Playgroud)

  • 不错......下车时我会仔细检查它,我确定它可以工作......不幸的是它(`lshw`)没有安装在服务器上,我怀疑答案是我们没有安装它。 (3认同)
  • 当不以 root 身份运行时,它不会列出任何磁盘,但也不会出错。 (2认同)
  • bash: lshw: 命令未找到 (2认同)

Mar*_*der 31

hwinfo 帮助:

> hwinfo --disk
21: IDE 00.0: 10600 Disk                                        
[Created at block.245]
Unique ID: 3OOL.8MZXfAWnuH8
Parent ID: w7Y8.1T_0outZkp6
SysFS ID: /class/block/sda
SysFS BusID: 0:0:0:0
SysFS Device Link: /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0
Hardware Class: disk
Model: "Hitachi HTS54322"
Vendor: "Hitachi"
Device: "HTS54322"
Revision: "ESBO"
Driver: "ahci", "sd"
Driver Modules: "ahci"
Device File: /dev/sda
Device Files: /dev/sda, /dev/disk/by-id/ata-Hitachi_HTS543225A7A384_E2021342GEPG4J, /dev/disk/by-id/scsi-SATA_Hitachi_HTS5432_E2021342GEPG4J, /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0, /dev/disk/by-id/wwn-0x5000cca614c6395e
Device Number: block 8:0-8:15
BIOS id: 0x80
Geometry (BIOS EDD): CHS 484521/16/63
Size (BIOS EDD): 488397168 sectors
Geometry (BIOS Legacy): CHS 1023/255/63
Drive status: no medium
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #17 (SATA controller)
> hwinfo --block --short
disk:                                                           
  /dev/sda             Hitachi HTS54322
partition:
  /dev/sda1            Partition
  /dev/sda2            Partition
  /dev/sda3            Partition
  /dev/sda4            Partition
  /dev/sda5            Partition
Run Code Online (Sandbox Code Playgroud)


Ste*_*ski 20

@Giles 说这高度依赖于平台。这是一个这样的例子。

我正在运行 CentOS 5.5 系统。该系统有 4 个磁盘和一个 3ware RAID 控制器。

在我的情况下,lshw -class diskcat /proc/scsi/scsiparted --list显示了RAID控制器(的3ware 9650SE-4LP)。这不显示实际磁盘:

仅显示提供 /dev/sda 卷的 3ware RAID 控制器:

# lshw -class disk
  *-disk                  
       description: SCSI Disk
       product: 9650SE-4LP DISK
       vendor: AMCC
       physical id: 0.0.0
       bus info: scsi@0:0.0.0
       logical name: /dev/sda

# cat /proc/scsi/scsi 
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: AMCC     Model: 9650SE-4LP DISK  Rev: 4.06
  Type:   Direct-Access                    ANSI SCSI revision: 05

# parted --list

Model: AMCC 9650SE-4LP DISK (scsi)
Disk /dev/sda: 2000GB
Run Code Online (Sandbox Code Playgroud)

为了查看下面的磁盘,我必须从 3ware 安装 tw_cli 实用程序,并询问控制器本身。

# tw_cli info c0
...

VPort Status         Unit Size      Type  Phy Encl-Slot    Model
------------------------------------------------------------------------------
p0    OK             u0   931.51 GB SATA  0   -            WDC WD1002FBYS-02A6 
p1    OK             u0   931.51 GB SATA  1   -            WDC WD1002FBYS-02A6 
Run Code Online (Sandbox Code Playgroud)


Eug*_*e S 14

我正在运行 fedora 14 并且lshw在此处不可用(至少默认情况下不可用)。但是,就我而言,我使用fdisk -l命令(作为 root 用户)来获得以下输出:

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006a697

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    16777215     7875584   8e  Linux LVM

Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/dm-0: 6509 MB, 6509559808 bytes
255 heads, 63 sectors/track, 791 cylinders, total 12713984 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/dm-0 doesn't contain a valid partition table

Disk /dev/dm-1: 1543 MB, 1543503872 bytes
255 heads, 63 sectors/track, 187 cylinders, total 3014656 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/dm-1 doesn't contain a valid partition table
Run Code Online (Sandbox Code Playgroud)


Ski*_*rou 14

由于“我能看到我安装了什么硬盘吗? ”和“我如何确定我的存储设备的品牌和型号? ”都被标记为这个问题的重复,我很惊讶没有人提到hdparmsmartctl。看看几台机器,似乎它们中的任何一个(当它不是两个时)经常被发现已经安装在标准(甚至是旧的)linux 发行版中。

# smartctl -i /dev/sda
smartctl 6.1 2013-03-16 r3800 [i686-linux-3.9.9-301.fc19.i686.PAE] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Toshiba 2.5" HDD MK..56GSY
Device Model:     TOSHIBA MK1656GSY
Serial Number:    60PKT43CT
LU WWN Device Id: 5 000039 2919874b6
Firmware Version: LH013D
User Capacity:    160 041 885 696 bytes [160 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Mon Jul 22 11:13:37 2013 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

# hdparm -i /dev/sda

/dev/sda:

 Model=TOSHIBA MK1656GSY, FwRev=LH013D, SerialNo=60PKT43CT
 Config={ Fixed }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=16384kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=312581808
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  sdma0 sdma1 sdma2 mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
 AdvancedPM=yes: unknown setting WriteCache=enabled
 Drive conforms to: Unspecified:  ATA/ATAPI-3,4,5,6,7

 * signifies the current active mode
Run Code Online (Sandbox Code Playgroud)

像往常一样,查看联机帮助页以获取更多选项。


Grz*_*cki 6

在其他 SE 答案中发现,该inxi工具非常方便:

inxi -Dxx
Drives:    HDD Total Size: 810.2GB (42.9% used)
           ID-1: /dev/sdc model: ST3160827AS size: 160.0GB serial: 5MT2HMH6
           ID-2: /dev/sdb model: WDC_WD3200JD size: 320.1GB serial: WD-WCAMR1302926
           ID-3: /dev/sda model: ST380817AS size: 80.0GB serial: 4MR2EWBE
           ID-4: /dev/sdd model: ST3250824AS size: 250.1GB serial: 9ND08GKX
Run Code Online (Sandbox Code Playgroud)