/devでLinuxディスクを確実に見つける方法は?

/devでLinuxディスクを確実に見つける方法は?

次のクロスポストhttps://stackoverflow.com/q/63976722/4534

私たちは以前にそれを使用したことがありますか/dev/[sh]d? ...しかし、今はNVMe SSD / dev / nvme *ドライブが登場し、これはもはや真実ではありません。

あなたは方法を知っていますインストールディスクの検索?または、/dev/[sh]dゲームを更新しますか?それとも使用しますか/proc/partitions

答え1

最も信頼できる方法は旅行することです/dev/disk/{by-id,by-label,by-partlabel,by-path,by-uuid}。私は個人的にこの方法を選択します/dev/disk/by-path

答え2

簡単な方法はlsblkコマンドを使用することです。

# list all block devices without paritions
lsblk --nodeps

# to exclude any particular type of block device like optical drives
lsblk --nodeps --exclude 11

ブロックデバイスIDの完全なリストは以下にあります。https://www.kernel.org/doc/Documentation/admin-guide/devices.txt

答え3

始動修理から。

All_Hard_Drives=$(ls /dev/hd[a-z] /dev/hd[a-z][a-z] /dev/sd[a-z] /dev/sd[a-z][a-z] /dev/xvd[a-z] /dev/vd[a-z] /dev/vd[a-z][a-z] /dev/nvme[0-9]n[0-9] /dev/nvme[0-9]n[0-9][0-9] /dev/nvme[0-9][0-9]n[0-9] /dev/nvme[0-9][0-9]n[0-9][0-9] /dev/mmcblk[0-9] /dev/mmcblk[0-9][0-9] 2>> ${Trash});

答え4

/sys/block/*

for b in /sys/block/*; do readlink -f $b; done

for b in /sys/block/*; do echo $(cat $b/uevent); done

/sys/class/block/*パーティションも欲しいなら。

または:

grep -srl DEVTYPE=disk /sys/devices

grep -srl DEVTYPE=partition /sys/devices

関連情報