如何判断 Linux 磁盘是 HDD 还是 SSD?




一、查看 rotational 的值


HDD : Hard Disk Drive, 机械硬盘
SSD : Solid State Drive,固态硬盘

首先学习一下 HDD 和 SSD 工作原理的区别:

HDD机械硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。
在这里插入图片描述

磁头沿盘片半径方向运动,盘片以每分钟几千转的高速旋转,这样磁头就可以定位在盘片的指定位置上进行数据读写。

信息通过离磁性表面很近的磁头,由电磁流改变极性的方式,被电磁流写到磁盘上,并可以通过相反的方式读取。

如此精密之设备,尘埃是其大敌,因此进入硬盘的空气必须过滤。
在这里插入图片描述


而SSD固态硬盘,内部构造则相对简单,固态硬盘内主体其实就是一块PCB板,组成部件分为:主控芯片、闪存芯片、固件算法。

在这里插入图片描述

SSD,在主控的指挥下,通过电学信号的传输完成对闪存芯片的读写操作;

所以,SSD的读写过程依靠的是电学信号,不需要旋转磁盘。

电学信号比物理机械运作快多了,因此固态硬盘的运行速度远胜机械硬盘。

在这里插入图片描述


而磁盘的旋转情况,可以通过查看 rotational 来获知结果。
因此可以通过查看 rotational 来判断 Linux 磁盘是 HDD 还是 SSD 。

比如对于 sda 这个设备,可以通过 cat /sys/block/sda/queue/rotational 得到结果:

1 :表示磁盘可旋转, 是 HDD ;

0 :表示磁盘不可以旋转 , 是 SSD 。





二、通过 lsscsi 命令查看


除了查看 rotational 以外, 还可以通过 lsscsi 命令执行的结果来判断磁盘是 SSD 还是 HDD 。

lsscsi - list SCSI devices (or hosts) and their attributes

lsscsi 主要命令参数介绍:

-s 显示容量大小。
-c 用全称显示默认的信息。
-d 显示设备主,次设备号。
-g 显示对应的sg设备名。
-H 显示主机控制器列表,-Hl,-Hlv。
-l 显示相关属性,-ll,-lll=-L。
-v 显示设备属性所在目录。
-x 以16进制显示lun号。
-p 输出DIF,DIX 保护类型。
-P 输出有效的保护模式信息。
-i 显示udev相关的属性
-w 显示WWN
-t 显示相应传输信息(ATA,FC,SBP,ISCSI,SPI,SAS,SATA,USB)


HDD:

:~> lsscsi
[2:1:0:0]    disk    HP       LOGICAL VOLUME   4.02  /dev/sda

SSD :

:~> lsscsi
[0:0:0:0]    disk    ATA      INTEL SSDSC2BB08 D201  /dev/sda




参考文档: lsscsi

发布了37 篇原创文章 · 获赞 24 · 访问量 3078

猜你喜欢

转载自blog.csdn.net/weixin_44648216/article/details/103930178