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

Lau*_*low 5 shell ubuntu block-device

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

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

我使用 Ubuntu 10.10。

Lau*_*low 2

看起来(尽管可能有警告)这将区分基于闪存的存储设备和传统硬盘:

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
Run Code Online (Sandbox Code Playgroud)

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