Który dysk twardy jest który?

38

Chcę wiedzieć, który dysk twardy odpowiada ścieżce urządzenia. Dopasowywanie statystyk dysku twardego (marka, rozmiar) do ścieżki dewelopera jest trywialne, ale chcę więcej. Chcę wiedzieć, który dysk jest w mojej obudowie. Jaki jest dobry sposób na uzyskanie tych informacji?

Ograniczenia

  • Jestem leniwy. Nie chcę rozrywać mojego serwera, aby usunąć wszystkie dyski, a następnie dodawać je jeden po drugim.
  • Ponowne uruchomienie jest dopuszczalne.
  • Dyski są niewygodnie zgniatane razem w obudowie. Informacje na etykiecie są ukryte.
  • Skrzynkę można otworzyć. Większość dysków to SATA, więc teoretycznie można je wymieniać na gorąco. Odłączanie kabli to uczciwa gra.

Premia

Przyznam odpowiedź na najlepszą / najłatwiejszą odpowiedź GUI lub CLI i dam nagrodę za następną najlepszą odpowiedź innego rodzaju. I wolą cli odpowiedź, ale rozumiem, że wiele innych ludzi doceni dobrą metodę point-and-click.

djeikyb
źródło

Odpowiedzi:

26

hdparm -i /dev/sdX podaje numer seryjny, który jest najprostszym znanym mi sposobem na odróżnienie dysków twardych tej samej marki i rozmiaru.

Numer seryjny jest zwykle drukowany na etykiecie na dysku, więc chociaż musisz otworzyć obudowę, aby go znaleźć, nie ma potrzeby demontażu komputera.

Przykład:

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

Jeśli chcesz więcej informacji, lshw -c storage -c diskdaje najbardziej czytelny wynik. Są to prawie te same dane co Narzędzie dyskowe, tylko w formacie wiersza poleceń.

Oto przykład z najbardziej złożoną konfiguracją, do której mam dostęp, z czterema kontrolerami dysków, siedmioma dyskami twardymi, dyskiem DVD ROM i dyskiem USB.

Dane wyjściowe zostały zmniejszone, aby skupić się na interesujących częściach:

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

Myślę, że Narzędzie dyskowe jest szybsze do odczytania; Wersja z wierszem poleceń ma tę zaletę, że może być używana w porównaniu z ssh i skryptami.

I nadal uważam, że numer seryjny jest najbardziej niezawodnym rozwiązaniem :)

„Identyfikator fizyczny” każdego dysku odpowiada miejscu, w którym jest podłączony do płyty głównej. i zaczyna się od 0. więc fizyczny identyfikator 2 oznaczałby, że dysk jest podłączony do trzeciego portu sata twojego mobo lub innego odpowiedniego urządzenia.

jg-faustus
źródło
Ciekawy. Numer seryjny / etykieta jest miły, ale w moim scenariuszu dyski są wciśnięte w uchwyt, który blokuje widok naklejki. Najlepsze, co mogę zrobić, to prześledzić kable. Nie widziałem niczego hdparm -iprzydatnego od razu, ale muszę przeczytać stronę podręcznika, aby sprawdzić, czy nie mogę uzyskać więcej informacji.
djeikyb
Haha, serial jest rzeczywiście najbardziej niezawodny, ale daje to przydatną mapę rozpoznawania urządzeń z Linuksem -> fizyczne połączenia ... poprzez interfejs wiersza poleceń. Dzięki!
djeikyb
34

Narzędzie dyskowe

Jest to aplikacja GUI, która poda informacje o modelu, rozmiarze, numerze seryjnym i ścieżce urządzenia. Jest instalowany domyślnie na Ubuntu Desktop. Możesz nacisnąć przycisk Ubuntu Dash i wyszukać „narzędzie dyskowe”, aby go znaleźć, lub uruchomić go w terminalu za pomocą palimpsest.

Narzędzie dyskowe

Allan
źródło
4
i trzeba tylko użyć jednej ręce i palec to jest to co nazywam oszczędzania energii „Save The Disk Utility użytku planeta”
Allan
4
Myślę, że to będzie odpowiedź, ponieważ „Lokalizacja: Port X SATA Host Adapter” jest funkcją zabójczą. Chciałbym też zobaczyć odpowiedzi niektórych CLI. Oktawian i Faust mają podobne rozwiązania
djeikyb
18

Otwórz skrzynkę i wysłuchaj dysków ze zwiniętą kopią „The Linux Journal”. Następnie uruchom kolejno dd na każdym napędzie, aby wygenerować trochę hałasu na dysku.

Uwaga: to nie będzie działać na dyskach SSD!

jjg
źródło
2
Stetoskop ftw
Jeremy
1
Uwielbiam tę odpowiedź. Wolę wydajność techniczną palimpsesti lshw, ale jest to blisko jedna trzecia.
djeikyb
Dyski SSD nie generują hałasu. Ponadto rozwiązanie nie będzie działać, jeśli masz więcej niż jeden dysk i istnieją inne procesy, które odczytują jednocześnie dwa dyski.
Sergiy Kolodyazhnyy
To również nie pomoże, jeśli pracujesz ze zdalnym serwerem za pośrednictwem sshlub RDP
Sergiy Kolodyazhnyy
2
Czym może być ten „wycie”?
jjg
10

Możesz uzyskać te informacje od / sys (lub / dev, jeśli o to chodzi):

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

Widzicie, że moje cztery dyski znajdują się na portach (hosty / cele) od 2 do 5.

Możesz także zrobić ls -l on /dev/disk/by-pathi zobaczyć to tam.

derobert
źródło
2
+1 za dostęp do podstawowych informacji z / sys i / dev. Wciąż podoba mi się informacja zbiorcza z zaakceptowanych rozwiązań, ale wiedza, jak uzyskać i odczytać informacje podstawowe, jest nieoceniona. Jest to brakująca część większej odpowiedzi udzielonej przez @ jg-faustus i @Allan
djeikyb 11.11
W rzeczywistości, jeśli uruchomisz strace -e trace=open lsblki strace -e trace=open lsblk, to właśnie dane są odczytywane. Ta odpowiedź zasługuje na więcej pochwał.
Sergiy Kolodyazhnyy
8

Polecam hwinfo --disk.

Spowoduje to wyświetlenie wszystkich istotnych informacji dotyczących dysków twardych. Jeśli potrzebujesz więcej informacji o swoich partycjach, możesz ich użyć hwinfo --partition.

Możesz połączyć oba powyższe z --shortopcją uzyskania krótszej reprezentacji.

Oktawian Damiean
źródło
Wygląda to najbardziej obiecująco, szczególnie linie SysFS i Pliki plików, ale nie jestem pewien, jak je przetłumaczyć na angielski.
djeikyb
5

Hardinfo to GUI, które pozwoli ci zebrać informacje o systemie, które mogą obejmować między innymi fizycznie połączone urządzenia pamięci masowej i systemy plików, jak pokazano na następnych zrzutach ekranu:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Strona internetowa Hardinfo: http://hardinfo.berlios.de/HomePage

Geppettvs D'Constanzo
źródło
4
  • cat /proc/partitions pokaż wykryte partycje / dysk przez jądro, możesz dowiedzieć się po rozmiarze

wprowadź opis zdjęcia tutaj

  • smartctl -i /dev/sda

wprowadź opis zdjęcia tutaj

strumień
źródło
3

Najszybszy i najłatwiejszy sposób

1. Otwórz terminal Gnome

2. Wprowadź sudo blkid

3. Wprowadź hasło

4. Powie ci, który dysk jest w formacie łatwym do odczytania

era878
źródło
2

Jeśli chcesz znaleźć sposób, nie mogąc zobaczyć etykiet, co, o ile wiem, nie ma żadnej innej odpowiedzi. Odmontowałbym wszystkie dyski (jeśli to możliwe, może być konieczne uruchomienie komputera z płyty CD na żywo). Wszystkie dyski powinny się teraz obracać. Następnie możesz stopniowo montować każdy z nich i słuchać lub czuć, który się obraca. W ten sposób potrzebujesz tylko pokrywy z obudowy, ale nie musisz widzieć etykiet, co jest miłe, jeśli wszystkie są splątane.

Simples

Slipstream
źródło
1

Podstawowe pytanie:

Chcę wiedzieć, który dysk twardy odpowiada ścieżce urządzenia.

Podejścia z linii poleceń

  1. Podstawowym i bardziej praktycznym podejściem jest badanie /dev/systemu plików. Istnieje kilka katalogów, w /dev/disk/których znajdują się dowiązania symboliczne do plików urządzeń, a katalogi te są uporządkowane według identyfikatora UUID, identyfikatora, ścieżki w /syssystemie plików i etykiety (jeśli urządzenie / partycja ma taki). Na przykład znając UUID dysku, który chcę znaleźć, mógłbym zrobić coś takiego:

    $ 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 jest domyślnie wyposażony w UDisksmenedżera dysków. Ma kilka narzędzi, z których można korzystać. Informacje z metody nr 1 zostały już przeanalizowane dla wygody użytkownika. Na przykład, aby po prostu znaleźć, które urządzenie odpowiada modelowi dysku twardego, możemy to zrobić:

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

    Zaawansowane informacje można uzyskać za pośrednictwem udisksctl info -b /dev/sda1określonego urządzenia lub udisksctl dumpwszystkich urządzeń. udisksctl monitormoże być używany do fizycznego podłączania / odłączania napędów.

W szczególności, jeśli chcesz dopasować UUID do konkretnego dysku, możesz filtrować za udisksctl infopomocą grep:

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

Podejścia GUI:

Korzystając z informacji, które są UDisksumieszczane na magistrali komunikacyjnej międzyprocesowej, znanej jako dbus, napisałem wskaźnik dla Ubuntu z Unity Desktop (chociaż można go również wykorzystać na innych). Pierwotnie został napisany dla wskaźnika użycia systemu plików (patrz link do instrukcji instalacji). Umożliwia wygodne wyświetlanie informacji o wszystkich zamontowanych dyskach oraz kilka innych funkcji, takich jak kliknięcie partycji / urządzenia i otwarcie odpowiedniego katalogu w menedżerze plików.

wprowadź opis zdjęcia tutaj

Sergiy Kolodyazhnyy
źródło
Jest tu wiele dobrych informacji. Ale twoja rada dewelopera / sys nasuwa pytanie: „skąd mam wiedzieć, który dysk fizyczny ma partycję z tym identyfikatorem”? Właśnie o to zapytałem.
djeikyb
@ djeikyb To właściwie jedna z rzeczy, które rozwiązałem, pracując nad wspomnianym wskaźnikiem, i udisksctljest to prawdopodobnie najprostsze podejście - możesz je przefiltrować za pomocą grep dla linii urządzenia + UUID. Zmienię to w moje pytanie. Jeśli chodzi o niestandardowe rozwiązania, to oczywiście może być skryptowane za pomocą perla lub pythona, a nawet skryptu powłoki, w którym przechodzisz /dev/disk/by-idi dopasowujesz go za pomocą dowiązań symbolicznych /dev/disk/by-uuid.
Sergiy Kolodyazhnyy
@ djeikyb Więc chcesz wiedzieć, które złącza są używane przez dany dysk, prawda? i nie znając modelu ani dysku twardego?
Sergiy Kolodyazhnyy
@ djeikyb Przeczytałem to i koncentrują się na numerze seryjnym każdego dysku. . . co też udisksctl statusczęściowo podałem .
Sergiy Kolodyazhnyy
@djeikyb Ciekawe. Domyślnie narzędzie dyskowe, palimpsetnajwyraźniej zostało przemianowane na gnome-disks-utility, ale nie ma już „Lokalizacja”. Przynajmniej nie w 16.04, który prowadzę
Sergiy Kolodyazhnyy