lsblk가 ID별로 장치를 나열하도록 합니다.

lsblk가 ID별로 장치를 나열하도록 합니다.

나는 트리에 있는 인쇄 장치의 출력을 해당 드라이브 이름 구성표의 이름과 lsblk연결 하려는 상황에 자주 직면합니다./dev/sdXY/dev/disk/by-id/

답변1

ID별 이름은 드라이브 모델과 일련 번호로 구성되며 lsblk다음 명령을 사용하여 나열할 수 있습니다.

lsblk -o name,model,serial

이 명령의 출력은 다음과 같습니다.

NAME   MODEL            SERIAL
sda    SAMSUNG HD203WI  S1UYJ1VZ500792                                       
├─sda1                  
└─sda9                  
sdb    ST500DM002-1BD14 W2APGFP8
├─sdb1                  
└─sdb9                  
sdc    ST500DM002-1BD14 W2APGFS0
├─sdc1                  
└─sdc9 

후손을 위해 일반적으로 사용되는 몇 가지 열이 포함된 더 긴 명령은 다음과 같습니다.

sudo lsblk -o name,size,fstype,label,model,serial,mountpoint

출력은 다음과 같습니다.

NAME     SIZE FSTYPE            LABEL         MODEL            SERIAL          MOUNTPOINT
sda      1,8T zfs_member                      SAMSUNG HD203WI  S1UYJ1VZ500792
├─sda1   1,8T zfs_member        storage                                        /home    
└─sda9     8M zfs_member                                                       
sdb    465,8G btrfs                           ST500DM002-1BD14 W2APGFP8        
├─sdb1 465,8G btrfs                                                            
└─sdb9     8M btrfs                                                            
sdc    465,8G btrfs                           ST500DM002-1BD14 W2APGFS0        
├─sdc1 465,8G btrfs             rpool                                          /      
└─sdc9     8M btrfs 

답변2

발견하다여기, 를 통해 장치 ID를 볼 수 있습니다 ls -l /dev/disk/by-id.
따라서 귀하의 작업은 다음을 통해 수행될 수 있습니다.

lsblk |awk 'NR==1{print $0" DEVICE-ID(S)"}NR>1{dev=$1;gsub("[^[:alnum:]]","",dev);printf $0"\t\t";system("find /dev/disk/by-id -lname \"*"dev"\" -printf \" %p\"");print "";}'

또는

lsblk -r|awk 'NR==1{print $0" DEVICE-ID(S)"}NR>1{dev=$1;printf $0" ";system("find /dev/disk/by-id -lname \"*"dev"\" -printf \" %p\"");print "";}'

관련 정보