Linux下判断磁盘属于U盘、HDD盘或者SSD盘的方法

问题背景

由于项目需要,在自动化安装系统时,智能过滤掉U盘以及固态盘(SSD),因此需要判断出各磁盘类型,然后将其忽略掉。

列出系统中可用的磁盘

通过以下命令,可以找出当前系统可用的所有磁盘:

[root@localhost ~]# cat /proc/partitions|grep "^[^a-zA-Z].*[^0-9]$"|awk '{print $4}'
sda
sdb
sdc
[root@localhost ~]#

判断磁盘是否属于U盘

判断磁盘是否为U盘,只要判断磁盘是否可以removable就可以了,removable为1那就是U盘,为0就不属于U盘了。命令如下:
sda:

[root@localhost ~]# cat /sys/block/sda/removable
0
[root@localhost ~]# 

sdb:

[root@localhost ~]# cat /sys/block/sdb/removable
0
[root@localhost ~]# 

sdc:

[root@localhost ~]# cat /sys/block/sdc/removable
1
[root@localhost ~]# 

通过上述命令可以看出,sda、sdb不属于U盘,而sdc属于U盘。

判断磁盘是HDD还是SSD的方法

判断磁盘是HDD还是SSD,只需要获取磁盘是否可翻转(rotational)即可知道了,可以翻转就是HDD,反之,不可翻转就属于SSD了,详见如下:
sda:

[root@localhost ~]#  cat /sys/block/sda/queue/rotational
1
[root@localhost ~]# 

sdb:

[root@localhost ~]#  cat /sys/block/sdb/queue/rotational
0
[root@localhost ~]# 

通过上述命令的结果可以看出,sda属于HDD,而sdb属于SSD。

你可能感兴趣的:(Linux下判断磁盘属于U盘、HDD盘或者SSD盘的方法)