如何可靠地在/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

相关内容