Answers:
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端口。
打开机箱,聆听带有“ The Linux Journal”的汇总副本的驱动器。然后依次在每个驱动器上运行dd以产生一些磁盘噪音。
注意:这不适用于SSD!
palimpsest
和lshw
,但是这是一个接近三分之一。
ssh
RDP或RDP 使用远程服务器,这也无济于事
您可以从/ 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
并在那里查看。
strace -e trace=open lsblk
和strace -e trace=open lsblk
,则正是要读取的数据。这个答案值得更多的赞扬。
我推荐hwinfo --disk
。
这将列出您的硬盘的所有相关信息。如果您需要有关分区的更多信息,可以使用hwinfo --partition
。
您可以将以上两种方法与--short
选项结合使用,以得到较短的表示。
核心问题:
我想知道哪个硬盘驱动器对应哪个设备路径。
基本且更实际的方法是通过检查/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
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 info
用grep
:
$ udisksctl info -b /dev/sda1 | grep 'IdUUID:\|Id:'
Id: by-id-ata-Radeon_R7_A22MD061520000172-part1
IdUUID: 86df21bf-d95f-435c-9292-273bdbcba056
使用UDisks
称为的进程间通信总线上发布的信息dbus
,我为带有Unity桌面的Ubuntu编写了一个指示器(尽管它也可以在其他桌面上使用)。最初,它是为“ 文件系统使用情况指示器”而编写的(请参阅链接以获取安装说明)。它允许方便地显示所有已安装驱动器的信息以及其他一些功能,例如单击分区/设备并在文件管理器中打开相应的目录。
udisksctl
可能是最简单的方法-您可以使用grep过滤设备+ UUID行。我将其编辑成我的问题。对于自定义解决方案,当然可以使用perl或python甚至外壳脚本编写脚本,在其中遍历/dev/disk/by-id
并将其与中的符号链接进行匹配/dev/disk/by-uuid
。
udisksctl status
一部分。
palimpset
显然已重命名为gnome-disks-utility
,但是它不再具有“位置”。至少不是在我正在运行的16.04中
hdparm -i
立即有用的任何内容,但是我必须通读手册页以了解是否无法从中获得更多信息。