/sys/block 内のどのデバイスが HDD ですか?

/sys/block 内のどのデバイスが HDD ですか?

/sys/block 内のどのデバイスが実際の HDD ドライブであるか興味があります。

[root@sdp1a block]# pwd
/sys/block
[root@sdp1a block]# ls
dm-0   dm-12  dm-3  dm-7   loop1  loop5  ram1   ram13  ram3  ram7  sdaa  sdae  sdai  sdam  sdaq  sdau  sday  sdbb  sdbf  sdc  sdg  sdk  sdo  sds  sdw
dm-1   dm-13  dm-4  dm-8   loop2  loop6  ram10  ram14  ram4  ram8  sdab  sdaf  sdaj  sdan  sdar  sdav  sdaz  sdbc  sdbg  sdd  sdh  sdl  sdp  sdt  sdx
dm-10  dm-14  dm-5  dm-9   loop3  loop7  ram11  ram15  ram5  ram9  sdac  sdag  sdak  sdao  sdas  sdaw  sdb   sdbd  sdbh  sde  sdi  sdm  sdq  sdu  sdy
dm-11  dm-2   dm-6  loop0  loop4  ram0   ram12  ram2   ram6  sda   sdad  sdah  sdal  sdap  sdat  sdax  sdba  sdbe  sdbi  sdf  sdj  sdn  sdr  sdv  sdz
[root@sdp1a block]#

これをどう理解すればいいのでしょうか?

答え1

man sdブロック デバイスが実際の HDD であるかどうかは、およびに記載されているように、ディスク ドライバーに対応するメジャー デバイス番号から判断できますman 4 hd。SCSI
ディスクと SATA ディスクのメジャー番号は 8 で、古い IDE ディスクのメジャー番号は 3 または 22 です。

/proc/devicesこれらはファイル内で確認したり解析したりできます/sys/block/*/dev:
cd /sys/block; grep -lE '^(8|3|22):' */dev | sed 's-/dev--'
sda
sdb

これを仮想マシンで実行すると、結果は仮想化の種類によって異なります
ハードウェア仮想化
PVHVMを除いて、動作は上記と同じです(下記参照)。準仮想化状況は変わります。例えば、XEN xvdドライバはメジャー202を使用します。
これは、PVHVMたとえば、Amazon EC2 で使用されるようなものです。
したがって、VM で目的の結果を達成するには追加の対策が必要です。

関連情報