/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

관련 정보