Welches Festplattenlaufwerk ist welches?

38

Ich möchte wissen, welches Festplattenlaufwerk welchem ​​Gerätepfad entspricht. Es ist trivial, die Festplattenstatistiken (Marke, Größe) mit dem Entwicklerpfad abzugleichen, aber ich möchte mehr. Ich möchte wissen, welches Laufwerk in meinem Fall welches ist. Was ist ein guter Weg, um diese Informationen zu erhalten?

Einschränkungen

  • Ich bin faul. Ich möchte meinen Server nicht zerreißen, um alle Laufwerke zu entfernen, und dann eins nach dem anderen wieder hinzufügen.
  • Neustarts sind akzeptabel.
  • Die Laufwerke werden in dem Fall unbequem zusammengedrückt. Die Beschriftungsinformationen sind ausgeblendet.
  • Der Fall kann geöffnet werden. Die meisten Festplatten sind SATA-Festplatten, also theoretisch Hot-Swap-fähig. Das Abziehen von Kabeln ist ein faires Spiel.

Bonus

Ich werde die Antwort auf die beste / einfachste GUI- oder CLI-Antwort vergeben und der nächstbesten Antwort der anderen Art eine Prämie geben. Ich bevorzuge eine CLI-Antwort, aber ich verstehe, dass viele andere Leute eine gute Point-and-Click-Methode zu schätzen wissen.

djeikyb
quelle

Antworten:

26

hdparm -i /dev/sdX gibt Ihnen die Seriennummer, was die einfachste mir bekannte Methode ist, Festplatten derselben Marke und Größe auseinander zu halten.

Die Seriennummer befindet sich normalerweise auf einem Etikett auf der Festplatte. Obwohl Sie das Gehäuse öffnen müssen, um es zu finden, müssen Sie den Computer nicht zerlegen.

Beispiel:

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

Wenn Sie weitere Informationen wünschen, erhalten Sie die lshw -c storage -c diskam besten lesbare Ausgabe. Es sind so ziemlich die gleichen Daten wie beim Festplatten-Dienstprogramm, nur im Befehlszeilenformat.

Hier ist ein kommentiertes Beispiel aus dem komplexesten Setup, auf das ich mit vier Festplattencontrollern, sieben Festplatten, einer DVD-ROM und einer USB-Festplatte zugreifen kann.

Die Ausgabe wurde verkleinert, um sich auf die interessanten Teile zu konzentrieren:

[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)

Ich denke, das Festplatten-Dienstprogramm ist schneller zu lesen. Die Befehlszeilenversion hat den Vorteil, dass sie gegenüber ssh und in Skripten verwendet werden kann.

Und ich denke immer noch, dass die Seriennummer die zuverlässigste Lösung ist :)

Die "physische ID" jedes Laufwerks entspricht dem Ort, an dem es mit der Hauptplatine verbunden ist. und beginnt mit 0. Eine physikalische ID von 2 würde bedeuten, dass das Laufwerk an den dritten SATA-Port Ihres Mobos oder eines anderen anwendbaren Geräts angeschlossen ist.

jg-faustus
quelle
Interessant. Die Seriennummer / das Etikett ist schön zu haben, aber in meinem Szenario sind die Datenträger in einer Halterung eingepfercht, die die Sicht auf den Aufkleber blockiert. Das Beste, was ich tun kann, ist, die Kabel zu verfolgen. Ich habe nichts hdparm -isofort Nützliches gesehen, aber ich muss die Manpage durchlesen, um zu sehen, ob ich keine weiteren Informationen daraus erhalten kann.
djeikyb
Haha, die serielle Schnittstelle ist in der Tat die zuverlässigste, aber dies liefert die nützliche Übersicht über die Erkennung von Linux-Geräten -> physische Verbindungen ... über eine Befehlszeilenschnittstelle. Vielen Dank!
djeikyb
34

Festplattendienstprogramm

Dies ist eine GUI-Anwendung, mit der Sie Informationen zu Modell, Größe, Seriennummer und Gerätepfad Ihrer Laufwerke erhalten. Es wird standardmäßig auf Ubuntu Desktop installiert. Sie können die Ubuntu Dash-Taste drücken und "disk utility" suchen, um es zu finden, oder es im Terminal mit ausführen palimpsest.

Festplattendienstprogramm

Allan
quelle
4
und Sie müssen nur eine Hand und einen Finger benutzen, das ist, was ich Energieeinsparung nenne "Rette den Planeten, benutze das Festplatten-Dienstprogramm"
Allan
4
Ich denke, dies wird die Antwort sein, wobei "Standort: Port X des SATA-Host-Adapters" die Killer-Funktion ist. Ich würde gerne auch ein paar Antworten von CLI sehen. Octavian & Faustus haben interessante Lösungen in diese Richtung
djeikyb
18

Öffnen Sie den Fall und hören Sie sich die Laufwerke mit einer aufgerollten Kopie von "The Linux Journal" an. Führen Sie dann nacheinander auf jedem Laufwerk eine dd aus, um Festplattengeräusche zu erzeugen.

Hinweis: Dies funktioniert nicht auf SSDs!

jjg
quelle
2
Stethoskop ftw
Jeremy
1
Liebe diese Antwort. Ich bevorzuge die technische Ausgabe von palimpsestund lshw, aber dies ist ein knappes Drittel.
djeikyb
SSDs erzeugen kein Rauschen. Die Lösung funktioniert auch nicht, wenn Sie mehr als ein Laufwerk haben und andere Prozesse gleichzeitig von zwei Laufwerken lesen.
Sergiy Kolodyazhnyy
Dies wird auch nicht helfen, wenn Sie mit einem Remote-Server über sshoder RDP
Sergiy Kolodyazhnyy
2
Was könnte das für ein "Whooshing" sein?
jjg
10

Diese Informationen erhalten Sie von / sys (oder / 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

Sie können also sehen, dass sich meine vier Festplatten an den Ports (Hosts / Ziele) 2 bis 5 befinden.

Sie können auch ls -l eingeben /dev/disk/by-pathund dort anzeigen .

derobert
quelle
2
+1 für den Zugriff auf die Basisinformationen von / sys und / dev. Ich mag die gesammelten Informationen aus den akzeptierten Lösungen immer noch besser, aber zu wissen, wie man die Basisinformationen abruft und liest, ist von unschätzbarem Wert. Dies ist ein fehlender Teil der größeren Antwort, die @ jg-faustus und @Allan gaben
djeikyb
Wenn Sie strace -e trace=open lsblkund ausführen strace -e trace=open lsblk, werden genau diese Daten gelesen. Diese Antwort verdient mehr Gegenstimmen.
Sergiy Kolodyazhnyy
8

Ich empfehle hwinfo --disk.

Daraufhin werden alle relevanten Informationen für Ihre Festplatten aufgelistet. Wenn Sie weitere Informationen zu Ihren Partitionen benötigen, können Sie diese verwenden hwinfo --partition.

Sie können beide oben genannten --shortOptionen mit der Option kombinieren , um eine kürzere Darstellung zu erhalten.

Octavian Damiean
quelle
Dies sieht am vielversprechendsten aus, insbesondere die Zeilen SysFS und Device Files, aber ich bin nicht sicher, wie ich sie ins Englische übersetzen soll.
djeikyb
5

Hardinfo ist eine grafische Benutzeroberfläche, mit der Sie Ihre Systeminformationen erfassen können. Dazu gehören unter anderem die physisch verbundenen Speichergeräte und Dateisysteme, wie in den folgenden Screenshots dargestellt:

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Hardinfo-Website: http://hardinfo.berlios.de/HomePage

Geppettvs D'Constanzo
quelle
4
  • cat /proc/partitions Zeigt der Kernel erkannte Partitionen / Festplatten an, können Sie anhand der Größe herausfinden

Bildbeschreibung hier eingeben

  • smartctl -i /dev/sda

Bildbeschreibung hier eingeben

Jet
quelle
3

Schnellster und einfachster Weg

1. Öffnen Sie das Gnome-Terminal

2. Geben Sie ein sudo blkid

3. Passwort eingeben

4. In einem einfach zu lesenden Format wird angezeigt, welches Laufwerk welches ist

era878
quelle
2

Wenn Sie einen Weg suchen, ohne die Etiketten sehen zu können, gibt es meines Wissens keine der anderen Antworten. Ich würde alle Laufwerke aushängen (Wenn möglich, müssen Sie möglicherweise von einer Live-CD booten, um dies zu tun). Alle Laufwerke sollten jetzt herunterfahren. Sie können dann nach und nach jeden einzelnen besteigen und hören oder fühlen, welcher sich dreht. Auf diese Weise brauchen Sie nur den Deckel von Ihrem Koffer abzunehmen, aber Sie müssen die Etiketten nicht sehen.

Simples

Windschatten
quelle
1

Kernfrage:

Ich möchte wissen, welches Festplattenlaufwerk welchem ​​Gerätepfad entspricht.

Kommandozeilen-Ansätze

  1. Grundlegender und praktischer Ansatz ist das Untersuchen des /dev/Dateisystems. Es gibt mehrere Verzeichnisse, in /dev/disk/denen Symlinks zu Gerätedateien enthalten sind. Diese Verzeichnisse sind nach UUID, ID, Pfad im /sysDateisystem und Bezeichnung (falls Gerät / Partition über eine verfügt) organisiert. Wenn ich beispielsweise die UUID des Laufwerks kenne, das ich finden möchte, könnte ich Folgendes tun:

    $ 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 wird standardmäßig mit UDisksDisk Manager geliefert. Es hat einige Dienstprogramme, die man benutzen kann. Die Informationen aus der Methode Nr. 1 werden bereits aus Gründen der Benutzerfreundlichkeit analysiert. Um beispielsweise einfach herauszufinden, welches Gerät welchem ​​Festplattenmodell entspricht, können Sie Folgendes tun:

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

    Erweiterte Informationen erhalten Sie über udisksctl info -b /dev/sda1für ein bestimmtes Gerät oder udisksctl dumpfür alle Geräte. udisksctl monitorkann zum physischen Verbinden / Trennen der Laufwerke verwendet werden.

Insbesondere wenn Sie die UUID einem bestimmten Laufwerk zuordnen möchten, können Sie filtern udisksctl infomit grep:

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

GUI-Ansätze:

Unter Verwendung der Informationen, UDisksdie auf den Interprozess-Kommunikationsbus ausgegeben werden dbus, habe ich einen Indikator für Ubuntu mit Unity-Desktop geschrieben (obwohl er auch für andere verwendet werden kann). Ursprünglich wurde es für File System Usage Indicator geschrieben (Installationsanweisungen finden Sie unter dem Link). Es ermöglicht die bequeme Anzeige von Informationen für alle gemounteten Laufwerke und einige andere Funktionen, z. B. das Klicken auf Partition / Gerät und das Öffnen des entsprechenden Verzeichnisses im Dateimanager.

Bildbeschreibung hier eingeben

Sergiy Kolodyazhnyy
quelle
Hier gibt es viele gute Infos. Ihr dev / sys fs-Hinweis wirft jedoch die Frage auf: "Woher weiß ich, welche physische Festplatte eine Partition mit dieser UUID hat?". Welches ist, was ich in erster Linie gefragt habe.
djeikyb
@djeikyb Das ist tatsächlich eines der Dinge, die ich bei der Arbeit an dem von mir erwähnten Indikator gelöst habe, und udisksctlwahrscheinlich der einfachste Ansatz - Sie können ihn mit grep für das Gerät + UUID-Zeilen filtern. Ich werde es in meine Frage bearbeiten. Benutzerdefinierte Lösungen können natürlich mit Perl- oder Python-Skripten oder sogar mit Shell-Skripten erstellt werden, in denen Sie /dev/disk/by-idsie mit Symlinks in verknüpfen /dev/disk/by-uuid.
Sergiy Kolodyazhnyy
@djeikyb Also, Sie möchten im Grunde wissen, welche Anschlüsse von welchem ​​Laufwerk verwendet werden, oder? und ohne das Modell oder die Festplatte zu kennen?
Sergiy Kolodyazhnyy
@djeikyb Ich habe das gelesen und sie konzentrieren sich auf die Seriennummer jeder Platte. . .was ist, was ich auch teilweise zur Verfügung gestellt habe udisksctl status.
Sergiy Kolodyazhnyy
@djeikyb Interessant. Das Dienstprogramm für Standardfestplatten palimpsetwurde anscheinend in umbenannt gnome-disks-utility, hat aber nicht mehr den "Speicherort". Zumindest nicht in 16.04, dass ich
laufe