我需要在 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 的型号或序列。