问题背景
由于项目需要,在自动化安装系统时,智能过滤掉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。