在block/blk-sysfs.c 中定义了一个rotational 的sysctl变量可以判断当前盘是ssd和hdd
static struct queue_sysfs_entry queue_nonrot_entry = {
.attr = {.name = "rotational", .mode = S_IRUGO | S_IWUSR },
.show = queue_show_nonrot,
.store = queue_store_nonrot,
};
从虾下面的定义可以看出ssd的话返回0,hdd的话返回1
#define QUEUE_FLAG_NONROT 9 /* non-rotational device (SSD) */
[root@localhost ~]# cat /sys/block/sda/queue/rotational
1
[root@localhost ~]#