Cómo determinar si el disco es flash compacto o disco duro estándar

Necesito determinar en un script de shell si un dispositivo de bloque dado (por ejemplo, /dev/sda ) es un disco compacto flash o un disco duro normal. Google no me ayudó por una vez, y aunque udevadm info --query=all --name=sda me da mucha información, no hay nada que reconozca que signifique "Definitivamente (no) soy una unidad flash" o "I Definitivamente (no) un disco duro ".

¿Es posible distinguir estos dos types de dispositivos de almacenamiento?

Yo uso Ubuntu 10.10.

Parece probable (aunque puede haber advertencias) que esto hará una distinción entre los dispositivos de almacenamiento basados ​​en flash y los discos duros tradicionales:

 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 

EDITAR: Se agregó el command sed para protegerse contra model o serie que contiene CFA.