如何确定磁盘是紧凑型闪存还是标准硬盘

如何确定磁盘是紧凑型闪存还是标准硬盘

我需要在 shell 脚本中确定给定的块设备(例如/dev/sda)是紧凑型闪存磁盘还是常规硬盘驱动器。谷歌一次没有帮助我,虽然udevadm info --query=all --name=sda给了我很多信息,但我没有认识到“我绝对是(不是)闪存驱动器”或“我绝对是(不是)硬盘驱动器”的意思。

是否可以区分这两种类型的存储设备?

我使用Ubuntu 10.10。

答案1

它似乎可能(尽管可能有一些警告)这将区分基于闪存的存储设备和传统硬盘:

is_compact_flash ()
{
    hdparm -I $1 | sed -n '\_Commands/features:_,\_Security:_p' | \
        grep -q CFA && return 0 || return 1
}

disk=/dev/sda
if is_compact_flash $disk; then
    echo "$disk is a compact flash disk"
else
    echo "$disk is not a compact flash disk"
fi

编辑:添加了sed命令以防范包含 CFA 的型号或序列。

相关内容