このシナリオを想像してください。あなたはLinuxの経験が限られている初心者です。最近、UbuntuなどのLinuxがプリインストールされた新しいラップトップを購入しました。インストールされているディスクがSSD(ソリッドステートドライブ)なのか、通常のHDD(ハードディスクドライブ)なのかはよくわかりません。問題ない!この簡単なガイドでは、LinuxオペレーティングシステムでディスクがSSDかHDDかを確認する方法を説明します。
LinuxでディスクがSSDかHDDかを確認する
カーネルバージョン2.6.29以降 、LinuxオペレーティングシステムはSSDを自動的に検出できます。ディスクがSSDであるかHDDであるかを確認する方法はいくつかあります。ここでは7つの方法を示しました。
方法1-ディスクが回転しているかどうかを確認します
ご存知かもしれませんが、従来のハードディスクドライブ(HDD) プラッターと呼ばれる円形のディスクにデータを保存します 。ディスクが回転すると、移動する読み取り/書き込みヘッドがデータにアクセスします。ディスクの回転(回転)が速いほど、ハードディスクの動作も速くなります。
一方、ソリッドステートドライブ(SDD) は、最新のストレージテクノロジーであり、すぐにアクセスできるフラッシュメモリチップにデータを保存する高速タイプのディスクドライブです。従来のHDDとは異なり、SSDには可動部品がなく、SSDは回転しません 。
したがって、インストールされているディスクがSSDであるか通常のHDDであるかを確認するには、次のコマンドを使用してディスクが回転しているかどうかを確認します。
$ cat /sys/block/sda/queue/rotational
出力が1の場合 、ディスクはHDDです。出力が0の場合 (ゼロ)、ディスクはSDDです。 SSDは回転しないからです。したがって、システムにSSDがある場合、出力はゼロになるはずです。
各ドライブには、 / sys / class / block /にディレクトリがあります。 位置。したがって、他のドライブの詳細も確認できます。
$ cat /sys/block/sdb/queue/rotational
$ cat /sys/block/sdc/queue/rotational
注:
KVMゲスト仮想マシンを使用している場合、ドライブ文字は vdaになります。 。結果はバスの種類によって異なります 仮想マシンで選択しました。たとえば、仮想ディスクのバスタイプとしてSATAを選択した場合、次の出力が表示されます。
$ cat /sys/block/vda/queue/rotational 1
方法2-lsblkコマンドを使用する
lsblk コマンドはsysfsを読み取ります ファイルシステムとudevdb 使用可能なすべてのデバイスまたは指定されたブロックデバイスに関する情報を収集します。 lsblkコマンドはutil-linuxの一部です パッケージであり、ほとんどのLinuxディストリビューションにプリインストールされています。
lsblkコマンドが使用できない場合に備えて、ディストリビューションのパッケージマネージャーを使用してutil-linuxパッケージをインストールしてください。
たとえば、Archベースのシステムでは、次のコマンドを使用してインストールできます。
$ sudo pacman -S util-linux
Debianベースのシステムの場合:
$ sudo apt install util-linux
RPMベースのシステムの場合:
$ sudo yum install util-linux
openSUSEの場合:
$ sudo zypper install util-linux
次に、コマンドを使用して、ディスクがSSDかHDDかを確認します。
$ lsblk -d -o name,rota
出力例:
NAME ROTA loop0 1 loop1 1 loop2 1 loop3 1 loop4 1 loop5 1 loop6 1 loop7 1 loop8 1 loop9 1 loop10 1 loop11 1 loop12 1 loop13 1 loop14 1 loop15 1 loop16 1 loop17 1 loop18 1 loop19 1 loop20 1 sda 1 sr0 1
ここで、「回転」とは回転装置を意味します 。上記の出力でrotaの値を1として取得した場合 、ディスクはHDDです。値が0(ゼロ)の場合 、ディスクはSSDです。
方法3-SMART監視ツールの使用
ディスクがSSDであるかHDDであるかを確認する別の方法は、 smartctlを使用することです。 指図。 smartctlは、S.M.A.R.T監視ツールパッケージの一部であり、S.M.A.R.Tを制御および監視するために使用されます。有効なATAおよびSCSIハードドライブ。
Arch LinuxとそのバリアントにSMARTモニタリングツールをインストールするには、以下を実行します:
$ sudo pacman -S install smartmontools
Debian、Ubuntuの場合:
$ sudo apt install smartmontools
RHELでは、CentOS:
$ sudo yum install smartmontools
openSUSEの場合:
$ sudo zypper install smartmontools
smartmontoolsパッケージをインストールした後、次のコマンドを実行して、ディスクがSSDかHDDかを確認します。
$ sudo smartctl -a /dev/sda | grep 'Rotation Rate'
ディスクがSSDの場合、次のような出力が得られます。
Rotation Rate: Solid State Device
ディスクがHDDの場合、次の出力が得られます:
Rotation Rate: 5400 rpm
方法4-dmesg+Googleを使用する
これは、ディスクタイプを見つけるための直接的なアプローチではありません。この方法では、 dmesgを使用します コマンドを使用してディスクモデルを検索し、詳細をグーグルで検索して、ディスクがSSDかHDDかを確認します。
$ dmesg | grep -i -e scsi -e ata
他のすべての詳細の中でディスクモデル名が表示されます。
[...] [ 1.845159] scsi 0:0:0:0: Direct-Access ATA ST9500325AS DEM1 PQ: 0 ANSI: 5 [...]
このモデルをグーグルで検索して、ディスクの詳細を見つけてください。
方法5-SCSI詳細+Googleの使用
上記の方法と同じです。 / procからディスクモデルを取得します コマンドを使用したディレクトリ:
$ cat /proc/scsi/scsi
出力例:
Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: ST9500325AS Rev: DEM1 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi4 Channel: 00 Id: 00 Lun: 00 Vendor: PLDS Model: DVD+-RW DS-8A8SH Rev: KD11 Type: CD-ROM ANSI SCSI revision: 05 Host: scsi6 Channel: 00 Id: 00 Lun: 00 Vendor: Generic- Model: Multi-Card Rev: 1.00 Type: Direct-Access ANSI SCSI revision: 00
次に、詳細をGoogleで調べて、ディスクがSSDかHDDかを確認します。
方法6-Sg3-utilsを使用する
Sg3-utils SCSIコマンドセットを使用するデバイス用のユーティリティのコレクションです。このパッケージの各ユーティリティは、1つのSCSIコマンドを実装しています。
Sg3-utilsは、DebianとUbuntuのデフォルトのリポジトリで利用できます。システムにインストールするには、次のコマンドを実行します。
$ sudo apt install sg3-utils
次に、次のコマンドを実行して、ブロックデバイスの特性についてVital Product Data(VPD)を確認します。
$ sudo sg_vpd --page=bdc /dev/sda
出力例:
Block device characteristics VPD page (SBC): Nominal rotation rate: 5400 rpm Product type: Not specified WABEREQ=0 WACEREQ=0 Nominal form factor not reported ZONED=0 BOCS=0 FUAB=0 VBULS=0
出力を確認します。出力にこの行が含まれている場合-「公称回転速度:5400rpm」 、HDDです。 SSDの場合、おそらく次のように表示されます-「非回転媒体」 。
方法7-ベンチマークディスクアクセスパフォーマンス
次のコマンドを使用してディスクからランダムなブロックを読み取ることにより、ディスクがSSDかHDDかを確認します。
time for i in `seq 1 1000`; do dd bs=4k if=/dev/sda count=1 skip=$(( $RANDOM * 128 )) >/dev/null 2>&1; done
このコマンドは、ディスクの最初の16GBから1000個のランダムな4kブロックを読み取ります。
ディスクがSSDの場合、操作は約1秒で完了するはずです。 。ディスクがHDDの場合、完了するまでに数秒かかります。
これは、VPSのディスクをチェックするのに役立ちます。 VPSを使用していて、ホスティングプロバイダーからSSDとHDDのどちらが提供されているかを確認したい場合は、これが1つの方法です。
複数のディスクがある場合はどうなりますか?
2つのディスクがある場合、1つはSSDで、もう1つはHDDです。両方のディスクは同じサイズで、同じメーカーのものです。 Linuxがどのディスクにインストールされているのかわかりません。その場合は、次のコマンドを使用して、ルートファイルシステムがどのディスクにあるかを確認するだけです。
$ df / -h
出力例:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 458G 341G 95G 79% /
または、 lshwを使用します ディスクの詳細を検索するコマンド:
$ sudo lshw -short -C disk
出力例:
H/W path Device Class Description ==================================================================== /0/100/1d/1/1/6/0.0.0 /dev/sdb disk Multi-Card /0/100/1d/1/1/6/0.0.0/0 /dev/sdb disk /0/1/0.0.0 /dev/sda disk 500GB ST9500325AS /0/2/0.0.0 /dev/cdrom disk DVD+-RW DS-8A8SH
上記の出力でわかるように、私のルートファイルシステムは / dev / sdaにインストールされています 。次に、上記のいずれかの方法に従って、ディスクがHDDかSSDかを確認します。
注:
Lenovo Ideapad s240などの一部の新しいノートパソコン 、たとえば nvme0n1などの別のデバイス名が表示されます 。コマンドを使用して、使用可能なブロックデバイスのリストを表示しましょう:
$ ls /sys/block
出力例:
loop0 loop11 loop14 loop17 loop2 loop3 loop6 loop9 loop1 loop12 loop15 loop18 loop20 loop4 loop7 nvme0n1 loop10 loop13 loop16 loop19 loop21 loop5 loop8
ルートファイルシステムがどのディスクにあるかを調べてみましょう:
$ df / -h
出力例:
Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p6 96G 34G 58G 34% /
上記の出力に見られるように、 sdaはありません。 またはsdb 。パニックにならない!これは正常です。 / dev / nvme ...デバイス名は新しいNVMeを示します 「ディスク」ディスクが従来のSATAまたはSASポートではなく、NVM Expressポートを介して接続されている場合は、上記の出力に示されているように、異なるデバイス名が表示されます。
ここでは、 / dev / nvme0n1 / dev / sdaと同等です 。したがって、 / dev / nvme0n1p6 / dev / sda6と同等です 。
推奨される読み物:
- Linuxでハードウェア仕様を見つける方法
- Linuxシステムが物理マシンか仮想マシンかを確認する方法
- Linuxシステムが32ビットか64ビットかを確認する方法
- CPUが仮想化テクノロジー(VT)をサポートしているかどうかを確認する方法
これらは、ディスクがLinuxのSSDまたはHDDであるかどうかを確認するためのいくつかの方法です。お役に立てば幸いです。
PixabayのPagDevによるSSDアイコン画像
ClkerによるHddアイコン画像-Free-Vector-Imagesfrom Pixabay