哪个硬盘驱动器是哪个?


38

我想知道哪个硬盘驱动器对应哪个设备路径。将硬盘统计信息(品牌,大小)与开发路径相匹配是微不足道的,但是我想要更多。我想知道哪个驱动器是我的机箱中的哪个。获取此信息的好方法是什么?

约束条件

  • 我很懒。我不想拆开服务器以删除所有驱动器,然后一个接一个地添加。
  • 重新启动是可以接受的。
  • 这些驱动器在外壳中不方便地拧在一起。标签信息被隐藏。
  • 可以打开箱子。大多数磁盘是SATA,因此理论上可以热插拔。拔掉电缆是公平的游戏。

奖金

我会授予最佳/最简单gui或cli答案的答案,并悬赏另一种最佳答案。更喜欢cli的答案,但我知道许多其他人会喜欢一种很好的点击方法。

Answers:


26

hdparm -i /dev/sdX 为您提供序列号,这是我知道区分相同品牌和大小的硬盘的最简单方法。

序列号通常印在磁盘上的标签上,因此,尽管您需要打开机箱才能找到它,但无需拆卸计算机。

例:

$ sudo hdparm -i /dev/sdb | grep -i serial
 Model=SAMSUNG HD253GJ, FwRev=1AJ10001, SerialNo=S24JJ90Z505435

如果您需要更多信息lshw -c storage -c disk,则将提供最易读的输出。它与“磁盘工具”几乎相同,只是命令行格式。

这是我可以访问的最复杂设置的注释示例,其中包含四个磁盘控制器,七个硬盘,一个DVD ROM和一个USB磁盘。

输出已缩减为大小,以专注于有趣的部分:

[server ~]$ sudo lshw -c storage -c disk
  *-storage   
  # a 2-port PCI-E SATA controller
       description: SATA controller
       product: 88SE9123 PCIe SATA 6.0 Gb/s controller
       vendor: Marvell Technology Group Ltd.
     *-disk
          description: ATA Disk
          product: WDC WD15EADS-00P
          vendor: Western Digital
  # 'physical id' corresponds to port number, first port is 0
          physical id: 0  
          logical name: /dev/sdg
          serial: WD-WMAVU0849124
          size: 1397GiB (1500GB)
     *-cdrom
          description: DVD reader
          product: BD-ROM BR-5100S
          vendor: Optiarc
          physical id: 1
          logical name: /dev/cdrom1
          logical name: /dev/dvd1
          logical name: /dev/scd0
          serial: [Optiarc BD-ROM BR-5100S 1.02 May20 ,2008
  *-storage
  # mobo controller for eSATA ports. Not used.
       description: SATA controller
       product: JMB362/JMB363 Serial ATA Controller
       vendor: JMicron Technology Corp.
  *-ide
  # mobo controller for IDE. Not used.
       description: IDE interface
       product: JMB362/JMB363 Serial ATA Controller
       vendor: JMicron Technology Corp.
  *-storage
  # the primary SATA controller, six ports
       description: SATA controller
       product: 82801JI (ICH10 Family) SATA AHCI Controller
       vendor: Intel Corporation
  # 'disk:0' means port 0, same as physical id
     *-disk:0
          description: ATA Disk
          product: WDC WD1600BEVS-0
          vendor: Western Digital
          physical id: 0
          logical name: /dev/sda
          serial: WD-WXEY08T58317
          size: 149GiB (160GB)
     *-disk:1
          description: ATA Disk
          product: ST32000542AS
          vendor: Seagate
          physical id: 1
          logical name: /dev/sdb
          serial: 5XW1RTDS
          size: 1863GiB (2TB)
     *-disk:2
          description: ATA Disk
          product: ST32000542AS
          vendor: Seagate
          physical id: 2
          logical name: /dev/sdc
          serial: 5XW23W0W
          size: 1863GiB (2TB)
     [...]
  *-scsi
  # the USB disk, as evidenced by the bus info 
       physical id: 1
       bus info: usb@1:1
       capabilities: emulated scsi-host
     *-disk
          description: SCSI Disk
          product: 10EAVS External
          vendor: WD
          physical id: 0.0.0
          logical name: /dev/sdh
          serial: WD-WCAU46029507
          size: 931GiB (1TB)

我认为磁盘实用程序的读取速度更快;命令行版本的优点是可以在ssh和脚本中使用。

而且我仍然认为序列号是最可靠的解决方案:)

每个驱动器的“物理ID”对应于它与主板的连接位置。并以0开头。因此,物理ID为2表示驱动器已连接至主板或其他适用设备的第3个sata端口。


有趣。序列号/标签很不错,但是在我的情况下,磁盘被塞在一个固定器中,从而阻止了标签的显示。我能做的最好的就是追踪电缆。我没有看到hdparm -i立即有用的任何内容,但是我必须通读手册页以了解是否无法从中获得更多信息。
djeikyb 2011年

哈哈,串行确实是最可靠的,但这通过命令行界面给出了有用的linux设备识别图->物理连接...。谢谢!
djeikyb 2011年

34

磁盘工具

这是一个GUI应用程序,它将为您提供有关驱动器的型号,大小,序列号和设备路径的信息。默认情况下,它已安装在Ubuntu桌面上。您可以按Ubuntu Dash按钮并搜索“磁盘实用程序”以找到它,或者在终端中运行它palimpsest

磁盘工具


4
而且您只需要用一只手和手指,那就是我所说的节能“拯救地球使用磁盘工具”
艾伦(Allan)

4
我认为这将是答案,其中“位置:SATA主机适配器的端口X”是杀手级功能。我也希望看到一些CLI答案。Octavian和
Faustus

18

打开机箱,聆听带有“ The Linux Journal”的汇总副本的驱动器。然后依次在每个驱动器上运行dd以产生一些磁盘噪音。

注意:这不适用于SSD!


2
听诊器ftw
杰里米(Jeremy)

1
喜欢这个答案。我更喜欢的技术输出palimpsestlshw,但是这是一个接近三分之一。
djeikyb 2011年

SSD不会产生噪音。另外,如果您有多个驱动器,并且其他进程同时从两个驱动器读取数据,则该解决方案将无法正常工作。
Sergiy Kolodyazhnyy

此外,如果您通过sshRDP或RDP 使用远程服务器,这也无济于事
Sergiy Kolodyazhnyy

2
那“嘶哑”的声音会是什么?
jjg

10

您可以从/ sys(或/ dev)获得该信息:

anthony@Zia:~$ ls -l /sys/block/ | grep sd.
lrwxrwxrwx 1 root root 0 Feb 25 13:30 sda -> ../devices/pci0000:00/0000:00:1f.2/host2/target2:0:0/2:0:0:0/block/sda
lrwxrwxrwx 1 root root 0 Feb 25 13:30 sdb -> ../devices/pci0000:00/0000:00:1f.2/host3/target3:0:0/3:0:0:0/block/sdb
lrwxrwxrwx 1 root root 0 Feb 25 13:30 sdc -> ../devices/pci0000:00/0000:00:1f.2/host4/target4:0:0/4:0:0:0/block/sdc
lrwxrwxrwx 1 root root 0 Feb 25 13:30 sdd -> ../devices/pci0000:00/0000:00:1f.2/host5/target5:0:0/5:0:0:0/block/sdd

因此,您可以看到我的四个磁盘位于端口2(到主机5)上。

您也可以执行ls -l /dev/disk/by-path并在那里查看。


2
+1,用于从/ sys和/ dev访问基本信息。我仍然更喜欢接受的解决方案中的汇总信息,但是知道如何获取和读取基本信息非常宝贵。这是@ jg-faustus和@Allan给出的更大答案的缺失部分
djeikyb 2011年

实际上,如果您运行strace -e trace=open lsblkstrace -e trace=open lsblk,则正是要读取的数据。这个答案值得更多的赞扬。
Sergiy Kolodyazhnyy

8

我推荐hwinfo --disk

这将列出您的硬盘的所有相关信息。如果您需要有关分区的更多信息,可以使用hwinfo --partition

您可以将以上两种方法与--short选项结合使用,以得到较短的表示。


这看起来最有希望,尤其是SysFS和Device Files行,但是我不确定如何将它们翻译成英文。
djeikyb 2011年

5

Hardinfo是一个GUI,可让您收集系统信息,其中可能包括但不限于物理连接的存储设备和文件系统,如以下屏幕快照所示:

在此处输入图片说明

在此处输入图片说明

Hardinfo网站:http ://hardinfo.berlios.de/HomePage


4
  • cat /proc/partitions 显示内核检测到的分区/磁盘,您可以通过大小来确定

在此处输入图片说明

  • smartctl -i /dev/sda

在此处输入图片说明


3

最快最简单的方法

1.打开Gnome终端

2.输入 sudo blkid

3.输入密码

4.它会以易于阅读的格式告诉您哪个驱动器是哪个驱动器


2

如果您想要一种看不到标签的方法,据我所知,其他答案都没有。我将卸载所有驱动器(如果可能,您可能必须从实时cd引导启动)。现在,所有驱动器都应旋转。然后,您可以逐步安装每一个,并聆听或感觉哪个旋转。这样,您只需要盖好箱子的盖子即可,而无需看到标签缠结在一起就很好了。

简单的


1

核心问题:

我想知道哪个硬盘驱动器对应哪个设备路径。

命令行方法

  1. 基本且更实际的方法是通过检查/dev/文件系统。有几个目录 /dev/disk/包含到设备文件的符号链接,并且这些目录按UUID,id,/sys文件系统中的路径和标签(如果设备/分区包含一个)进行组织。例如,知道我要查找的驱动器的UUID,我可以执行以下操作:

    $ find /dev/disk/by-uuid/ -mindepth 1 -printf "%p >>> %l\n"
    /dev/disk/by-uuid/8e344ab1-5eb5-4e20-becd-4147fffd439f >>> ../../sdb6
    /dev/disk/by-uuid/483CDA9D3CDA84FA >>> ../../sdb5
    /dev/disk/by-uuid/32AE5766AE5721A1 >>> ../../sdb4
    /dev/disk/by-uuid/7852-5217 >>> ../../sdb2
    /dev/disk/by-uuid/D668510B6850EC2D >>> ../../sdb1
    /dev/disk/by-uuid/B8E453D4E453940A >>> ../../sdb3
    /dev/disk/by-uuid/86df21bf-d95f-435c-9292-273bdbcba056 >>> ../../sda1
    
  2. Ubuntu默认带有UDisks磁盘管理器。它具有几个可以使用的实用程序。为了方便用户,已经解析了方法1的信息。例如,要简单地找到哪个设备对应于哪个硬盘驱动器型号,我们可以这样做:

    $ udisksctl  status
    MODEL                     REVISION  SERIAL               DEVICE
    --------------------------------------------------------------------------
    Radeon R7                 1.01      A22MD061520000172    sda     
    TOSHIBA MQ01ABF050        AM0P3M    Z4GRCSXAT            sdb     
    

    可以通过udisksctl info -b /dev/sda1特定设备或udisksctl dump所有设备获取高级信息。udisksctl monitor可以与物理上连接/断开驱动器一起使用。

特别是,如果你想与特定的驱动器相匹配的UUID,你可以过滤udisksctl infogrep

    $ udisksctl info -b /dev/sda1 | grep 'IdUUID:\|Id:'                                                   
    Id:                         by-id-ata-Radeon_R7_A22MD061520000172-part1
    IdUUID:                     86df21bf-d95f-435c-9292-273bdbcba056

GUI方法:

使用UDisks称为的进程间通信总线上发布的信息dbus,我为带有Unity桌面的Ubuntu编写了一个指示器(尽管它也可以在其他桌面上使用)。最初,它是为“ 文件系统使用情况指示器”而编写的(请参阅链接以获取安装说明)。它允许方便地显示所有已安装驱动器的信息以及其他一些功能,例如单击分区/设备并在文件管理器中打开相应的目录。

在此处输入图片说明


这里有很多很好的信息。但是您的dev / sys fs建议却提出了一个问题:“我如何知道哪个物理磁盘具有此uuid的分区”。首先是我要问的。
djeikyb

@djeikyb实际上,这是我在处理提到的指标时要解决的问题之一,并且udisksctl可能是最简单的方法-您可以使用grep过滤设备+ UUID行。我将其编辑成我的问题。对于自定义解决方案,当然可以使用perl或python甚至外壳脚本编写脚本,在其中遍历/dev/disk/by-id并将其与中的符号链接进行匹配/dev/disk/by-uuid
Sergiy Kolodyazhnyy

@djeikyb因此,您基本上想知道哪个驱动器使用了哪个连接器,对吗?并且不知道型号或硬盘驱动器?
Sergiy Kolodyazhnyy

@djeikyb我已经读过了,它们专注于每个磁盘的序列号。。我也提供了udisksctl status一部分。
Sergiy Kolodyazhnyy

@djeikyb有趣。默认磁盘实用程序 palimpset显然已重命名为gnome-disks-utility,但是它不再具有“位置”。至少不是在我正在运行的16.04中
Sergiy Kolodyazhnyy
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.