Wie erkennt man, ob es sich bei einer Festplatte um eine SSD oder eine Festplatte handelt?


193

Ich möchte wissen, ob eine Festplatte ein Solid-State-Laufwerk oder eine Festplatte ist.

lshwes ist nicht installiert. Ich tue yum install lshwund es heißt, es gibt kein Paket mit dem Namen lshw. Ich weiß nicht, welche Version von http://pkgs.repoforge.org/lshw/ für mein CentOS geeignet ist.

Ich suche im Netz und es gibt nichts, was erklären könnte, ob es sich bei einem Laufwerk um eine SSD oder eine Festplatte handelt. Soll ich sie erst formatieren?

Ergebnis von fdisk -l:

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00074f7d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          14      103424   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              14         536     4194304   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3             536       14594   112921600   83  Linux

Disk /dev/sdc: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/sdb: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/sdd: 480.1 GB, 480103981056 bytes
255 heads, 63 sectors/track, 58369 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

1
Wenn dies wirklich eine SSD ist, möchten Sie sie möglicherweise neu formatieren, um die Löschblöcke an den Partitionen auszurichten.
Symcbean

SATA (Serial ATA) bezieht sich auf den Verbindungstyp des Laufwerks und bedeutet nicht, dass es sich um ein Festplattenlaufwerk handelt. SSDs können gleichzeitig SATA sein, daher schlage ich eine Bearbeitung des Titels vor.
Rechtschreibung

Antworten:


310

Linux erkennt SSD automatisch und seit Kernel-Version 2.6.29 können Sie Folgendes überprüfen sda:

cat /sys/block/sda/queue/rotational

Sie sollten 1für Festplatten und 0für eine SSD bekommen.

Es wird wahrscheinlich nicht funktionieren, wenn Ihre Festplatte ein von der Hardware emuliertes logisches Gerät ist (wie ein RAID-Controller).

Weitere Informationen finden Sie in dieser Antwort ...


2
Bei Stackoverflow hat jemand festgestellt, dass diese Sys-Info nicht funktioniert.
PythoNic

@Totor Ich habe zwei Festplatten, wie kann ich herausfinden, welche ssd ist?
user11498

2
@ user11498 ersetzen sdadurch sdbund sehen, welche SSD ist ...
Totor

3
@Totor Bei den "Hybrid" -Antrieben sind Sie richtig. Dual-Drive-Hybride werden jedoch als zwei Einzellaufwerke angezeigt, während SSHD (Solid-State Hybrid Drive) als Einzellaufwerk angezeigt wird. Die SSHD würde also eine Rotation von 1.
Terrance

6
Auf virtuellen Servern müssen Sie möglicherweise/sys/block/vda/queue/rotational
MonoThreaded

90

Mit lsblk(Teil des util-linuxPakets):

lsblk -d -o name, rota
NAME ROTA
sda     0
sdb     0
sdc     1

wo ROTAbedeutet rotational device( 1wenn wahr, 0wenn falsch)


1
Dieses Dienstprogramm scheint die gleichen Informationen wie in zu melden /sys/block/.../rotational.
dma_k

@dma_k Kein Wunder, wenn man bedenkt, dass es diesen zu verwenden scheint. Probieren Sie es aus:strace lsblk -d -o name,rota /dev/sda 2>&1 | grep --context=3 --color rotational
einen Lebenslauf

5
Eigentlich habe ich nach verschiedenen Möglichkeiten gesucht, weil einige USB-Controller nicht sagen, dass das Laufwerk nicht rotiert (z. B. USB-Flash) und es unter Linux keine Möglichkeit gibt, die Wahrheit zu sagen. Am Ende des Tages habe ich das behoben, indem ich die explizite Regel in /etc/udev/rules.d/90-non-rotational.rules:ACTION=="add|change", SUBSYSTEMS=="usb", ENV{ID_SERIAL}=="SanDisk_Ultra_Fit_*-0:0", ATTR{queue/rotational}="0", ATTR{queue/scheduler}="deadline"
dma_k

lsblkmeldet "0" für alle meine guten alten SATA-Festplatten hier (ASROCK mobo). « Einige USB-Controller sagen nicht, dass das Laufwerk tatsächlich nicht rotiert (z. B. USB-Flash). » @Dma_k Das ist so richtig - und besser so als auf die andere Weise für über USB verkabelte externe drehende Festplatten IMHA.
Tuk0z

50

Verwenden Sie smartctl(Installation durch Installation smartmontools), um Herstellerinformationen abzurufen.

sudo smartctl -a /dev/sdb

Wenn Sie eine Zeile wie diese sehen,

Rotation Rate: Solid State Device

Das wäre ein SSD-Laufwerk.


5
Befehl smartctl nicht gefunden
IgorGanapolsky

7
smartctl ist Teil des Pakets smartmontools
Trr

27

Ich musste dies auf dem VPS tun und keine der angebotenen Lösungen funktionierte für mich.

Diese Antwort hat den Trick getan

https://serverfault.com/questions/551453/how-do-i-verify-that-my-hosting-provider-gave-me-ssds/551495#551495

Es geht also darum, zufällige Daten vom Laufwerk zu lesen und die Zeit zu bestimmen.

time for i in `seq 1 1000`; do
    dd bs=4k if=/dev/sda count=1 skip=$(( $RANDOM * 128 )) >/dev/null 2>&1;
done

Hier sind meine Ergebnisse für SSD

real    0m1.375s
user    0m0.285s
sys     0m0.944s

und HDD

real    0m14.249s
user    0m0.752s
sys     0m6.284s

Ich habe eine Nicht-SSD, RAID10, und meine Ergebnisse sind: real 0m1.351s - Benutzer: 0m0.307s - sys: 0m0.560s
the_nuts

1
Dies ist eine gute Antwort und funktioniert auf ganzer Linie. Die Sache ist, dass einige Festplatten ziemlich schnell sind und die Ergebnisse denen von SSDs ähneln können. Dennoch liefert diese Antwort eine gute Metrik.
Itoctopus

1
Auf meinem VPS ohne SSD liefert dies Ergebnisse wie in Ihrem SSD-Beispiel. Ich glaube, dass dies durch "hybride" (SSD-zwischengespeicherte HDD) Setups getäuscht werden kann.
Trr

funktioniert bei mir nicht Ich finde, dass SSD und HDD ähnliche Ergebnisse erzielen.
qqibrow

Auf einer VPS-Hardware wird virtualisiert. Sie können nicht genau sagen, ob Ihre Dateien auf einer Festplatte, im Cache oder auf einer SSD gespeichert sind.
Vidarlo

12

In den anderen Antworten wird bereits erläutert, wie Sie diese Informationen auf verschiedene Arten abrufen können /proc. Sie müssen jedoch damit rechnen, dass all diese Mechanismen zum Tragen kommen, wenn eine Virtualisierung im Wege steht, z. B. ein Hybrid-SAN-Array mit mehreren Ebenen, oder wenn es sich bei dem Linux-Computer um einen virtuellen Computer handelt (wobei Linux den Datenträger wahrscheinlich als rotierenden SCSI-Basisdatenträger ausgibt) , egal wie die Hardware wirklich ist)


Dies kann eine der wichtigsten Antworten sein ... und auch innerhalb des BIOS oder EFI / UEFI muss möglicherweise der SATA-Controller-Modus auf AHCI eingestellt werden, und anschließend muss jede Festplatte im BIOS als SSD markiert werden. Mein Asrock-Board auf dem Heim-PC ist so. Ich kann mich nicht erinnern, ob es auf Server-Boards (Supermicro) etwas Ähnliches gab, das ich bei der Arbeit habe, aber ich benutze keine SSD bei der Arbeit.
Ron

@ron - Was meinst du, wenn du den SATA-Controller-Modus auf AHCI setzt? Wie wirkt es sich auf die Fähigkeit aus, genau zu melden, ob das Gerät eine SSD ist oder nicht?
Motiviert

Nachschlagen von AHCI vs IDE, Wortlaut der ersten Websuche: IDE wird als angemessen für den durchschnittlichen Computerbenutzer angesehen und ist am kompatibelsten mit anderen Technologien, insbesondere älteren Geräten. Allerdings fehlt es Unterstützung für neue Technologien ... AHCI ein Standardsystem bereitstellt , die Designer und Entwickler nutzen können , um zu konfigurieren, zu erkennen, oder das Programm SATA / AHCI - Adapter *.
ron

Das ist eine Grundeinstellung im BIOS, irgendwo unter Storage stehen IDE, AHCI und je nach Marke / Modell / Jahr des Motherboards kann RAID auch angeboten werden. SSDs kamen heraus, lange nachdem IDE im Grunde genommen veraltet war und der Standard AHCI wurde. Zum Beispiel würde die Installation von Windows95 auf einem Computer heute keine Hardware erkennen ... im IDE-Modus zu sein, würde sicherlich nicht die Kommunikation mit einer SSD unterstützen, nicht so sehr die Genauigkeit, sondern einfach in der Lage sein, mit einem SATA-Controller zu kommunizieren, der auf AHCI-Protokollen basiert.
Ron

9

überprüfen cat /proc/scsi/scsi. Dort sollten Sie das genaue Modell Ihrer Festplatte sehen. dann googeln Sie einfach das Modell, um Informationen darüber zu finden.


1
dmesgwird die gleichen Informationen enthalten. dmesg | grep -i -e scsi -e ata
Matt

3

Dies ist ein alter Beitrag, aber ich wollte einen anderen Weg, dies zu tun, teilen, den ich zufällig herausgefunden habe:

sg_vpd --page=bdc /dev/sda

Dieser Befehl ruft die Vital-Produktdaten für die Blockgeräteeigenschaften ab. Bei einer rotierenden Kopfscheibe umfasst die Ausgabe: Nenndrehzahl: 7200 U / min. Bei einer SSD umfasst sie: Nicht rotierendes Medium (z. B. Festkörper).


+1. schön, aber läuft das auf meinen (; alternden und demnächst zu ersetzenden) WD Greens Medium rotation rate is not reported. hdparmund smartmonctlsag dasselbe. Ich denke, WD will es nicht sagen.
cas

sg_vpd -i ist möglicherweise nützlicher, zumindest werden Herstellerinformationen über das Laufwerk angezeigt. Funktioniert nicht bei einem Überfall.
Dale
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.