ディスクがSSDかHDDかを知る方法


193

ディスクがソリッドステートドライブかハードディスクかを知りたい。

lshwインストールされていません。私はそうしyum install lshw、それはlshwという名前のパッケージがないと言います。どのバージョンのhttp://pkgs.repoforge.org/lshw/が私のCentOSに適しているかわかりません。

私はネットを検索しましたが、ドライブがSSDかHDDかを知る方法を説明するものは何もありません。最初にフォーマットするだけですか?

結果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
これが本当にSSDである場合、消去ブロックをパーティションに合わせるために再フォーマットすることをお勧めします。
symcbean

SATA(シリアルATA)はドライブの接続タイプを指し、ハードディスクドライブ(HDD)であることを意味するものではありません。SSDを同時にSATAにすることもできるため、タイトルの編集をお勧めします。
スペル

回答:


310

LinuxはSSDを自動的に検出しカーネルバージョン2.6.29 以降、次の方法で確認できますsda

cat /sys/block/sda/queue/rotational

1ハードディスクと0SSD を入手する必要があります。

ディスクがハードウェア(RAIDコントローラーなど)によってエミュレートされた論理デバイスである場合、おそらく機能しません。

詳細については、この回答を参照してください...


2
Stackoverflowで、誰かがこのsys-infoが機能しないことを発見しました。
PythoNic 14

@Totor私は2つのディスクを持っていますが、どの1つがssdであるかをどのように見つけることができますか?
user11498 14

2
@ user11498に置き換えsdasdb、どれがSSDであるかを確認します...
Totor

3
@Totor「ハイブリッド」ドライブは正しいです。ただし、デュアルドライブハイブリッドは2つの個別のドライブとして表示され、SSHD(ソリッドステートハイブリッドドライブ)は単一のドライブとして表示されます。だから、SSHDは、1の回転表示されるでしょう
テランス

6
仮想サーバーでは、フェッチが必要な場合があります/sys/block/vda/queue/rotational
-MonoThreaded

90

with lsblkutil-linuxパッケージの一部):

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

where ROTArotational device1trueの0場合、falseの場合)


1
そのユーティリティはと同じ情報を報告するよう/sys/block/.../rotationalです。
dma_k

@dma_kそれを使用しているように見えることを考えると、少し不思議です。それを自分で試してみてくださいstrace lsblk -d -o name,rota /dev/sda 2>&1 | grep --context=3 --color rotational
からCVn

5
実際、私はさまざまな方法を検討していました。一部のUSBコントローラーは、ドライブが実際に非回転(たとえばUSBフラッシュ)であると認識せず、Linuxに真実を伝える方法がないためです。一日の終わりに私は明示的にルールを作成していることを固定している/etc/udev/rules.d/90-non-rotational.rulesACTION=="add|change", SUBSYSTEMS=="usb", ENV{ID_SERIAL}=="SanDisk_Ultra_Fit_*-0:0", ATTR{queue/rotational}="0", ATTR{queue/scheduler}="deadline"
dma_k

lsblkここでは、古き良きSATA回転HDDすべてについて「0」を報告します(ASROCK mobo)。« 一部のUSBコントローラーは、ドライブが実際に非回転であることを認識しません(たとえば、USBフラッシュ) »@dma_kこれは非常に真実です。この方法は、USB有線外部回転 HDD IMHAの他の方法よりも優れています。
tuk0z

50

使用smartctl(インストールすることで、インストールsmartmontoolsベンダー情報を取得するために)、

sudo smartctl -a /dev/sdb

このような行が表示される場合、

Rotation Rate: Solid State Device

それはSSDドライブです。


5
smartctlコマンドが見つかりません
IgorGanapolsky

7
今回smartctlは、パッケージのsmartmontoolsの一部である
TRR

27

VPSでこれを行う必要がありましたが、提供されたソリューションはどれも役に立ちませんでした。

この答えはトリックをしました

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

そのため、ドライブからランダムデータを読み取り、時間を評価します。

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

ここにSSDの私の結果があります

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

およびHDD

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

非SSD、RAID10があり、結果は次のとおりです。実際の0m1.351s-ユーザー:0m0.307s-sys:0m0.560s
the_nuts

1
これは良い答えであり、全面的に機能します。問題は、一部のHDDは非常に高速であり、SSDの結果と同様になる可能性があることです。それでも、この答えは良い指標を提供します。
itoctopus

1
SSDのないVPSでは、SSDの例のような結果が得られます。これは「ハイブリッド」(SSDキャッシュHDD)セットアップにだまされている可能性があると思います。
trr

私にはうまくいきません。SSDとHDDが同様の結果をもたらすことがわかりました。
qqibrow

仮想化されたVPSハードウェア上。ファイルがHDDに保存されているか、キャッシュされているか、SSDに保存されているかはわかりません。
vidarlo

12

他の回答はすでにあなたにいくつかの方法でこの情報を得る方法を教えています、含む/proc。ただし、複数の層を持つハイブリッドSANアレイなどの仮想化がある場合、またはLinuxマシンが仮想マシンである場合(Linuxはおそらくディスクを基本SCSI回転ディスクとして報告します) 、ハードウェアが実際に何であるかに関係なく)


これは、より重要な応答の1つかもしれません...また、BIOSまたはEFI / UEFI内では、SATAコントローラーモードをAHCIに設定し、各ディスクをBIOS内でSSDとしてマークする必要があります。自宅のPCのAsrockボードはこのようなもので、サーバーボード(supermicro)に似たようなものがあったかどうかは覚えていませんが、職場ではSSDを使用していません。
ロン・

@ron-SATAコントローラーモードをAHCIに設定するとはどういう意味ですか?デバイスがSSDであるかどうかを正確に報告する機能にどのように影響しますか?
やる気

AHCI対IDE、最初のWeb検索からの言い回しを調べてください。IDEは、平均的なコンピューターユーザーに適していると考えられ、他の技術、特に古いデバイスと最も互換性があります。ただし、新しいテクノロジーのサポートが欠けています... AHCIは、SATA / AHCIアダプターの構成、検出、またはプログラミングに使用できる標準システムを提供します。*
ron

これはBIOSの基本設定であり、ストレージの下のどこかにIDE、AHCIがあり、マザーボードのメーカー/モデル/年によってもRAIDを提供できます。IDEは基本的に廃止され、標準がAHCIになってからかなり後にSSDが登場しました。たとえば、今日のコンピューターにWindows95をインストールすると、ハードウェアは認識されません... IDEモードでは確かにSSDとの通信はそれほど正確ではありませんが、単にAHCIプロトコルに基づいたSATAコントローラーと通信できること。
ron

9

確認してくださいcat /proc/scsi/scsi。そこには、ディスクの正確なモデルが表示されます。次に、モデルをグーグルで検索して、それに関する情報を見つけます。


1
dmesg同じ情報が含まれます。dmesg | grep -i -e scsi -e ata
マット

3

これは古い投稿ですが、これを行う別の方法を共有したかったのです。

sg_vpd --page=bdc /dev/sda

このコマンドは、ブロックデバイスの特性の重要な製品データを取得します。回転ヘッドディスクの場合、出力には以下が含まれます。公称回転速度:7200 rpm SSDの場合、以下が含まれます。非回転媒体(例:ソリッドステート)


+1。素敵ですが、私の(高齢ですぐに交換される)WD Greensでそれを実行していますMedium rotation rate is not reported。 同じことhdparmsmartmonctl言う。私はWDが伝えたくないと思います。
cas

sg_vpd -iの方が便利かもしれません。少なくともドライブからベンダー情報を提供します。レイドでは動作しません、カントー。
デール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.