Ubuntu 14.04를 실행하는 GNU bash 4.3.11을 사용하여 컴퓨터의 모든 SD 카드에 대한 경로를 가져옵니다.

Ubuntu 14.04를 실행하는 GNU bash 4.3.11을 사용하여 컴퓨터의 모든 SD 카드에 대한 경로를 가져옵니다.

Ubuntu 14.04를 실행하는 GNU bash 4.3.11을 사용하여 내 컴퓨터에 있는 모든 SD 카드의 경로를 어떻게 얻을 수 있습니까?

배경:

.iso 파일이 있고 사용자에게 .iso 파일을 쓸 SD 카드를 묻는 bash 스크립트를 만들고 싶습니다. 스크립트는 내부 하드 드라이브나 CD/DVD 드라이브를 제공하지 않고 SD 카드 경로만 제공해야 합니다.

실제로 나는 수동으로 사용합니다

ls -la /dev/sd*

예를 들어 테스트 머신을 제공합니다.

brw-rw---- 1 root disk 8,  0 May  3 10:54 /dev/sda
brw-rw---- 1 root disk 8,  1 May  3 10:54 /dev/sda1
brw-rw---- 1 root disk 8,  2 May  3 10:54 /dev/sda2
brw-rw---- 1 root disk 8,  5 May  3 10:54 /dev/sda5
brw-rw---- 1 root disk 8, 16 May  3 15:12 /dev/sdb
brw-rw---- 1 root disk 8, 17 May  3 14:56 /dev/sdb1
brw-rw---- 1 root disk 8, 18 May  3 14:56 /dev/sdb2

이 경우 컴퓨터의 하드웨어를 알고 있기 때문에 sda가 내 하드 드라이브라는 것을 "알고" 있으므로 sdb가 SD 카드임에 틀림없지만 알고리즘은 이를 어떻게 수행합니까?

답변1

lsblk -d -t다음과 같은 출력을 제공하는 명령을 사용하여 귀중한 정보를 얻을 수 있습니다.

NAME  ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED    RQ-SIZE
sda           0    512      0     512     512    0 deadline     128
sdb           0   4096      0    4096     512    1 deadline     128
sdc           0    512      0     512     512    1 deadline     128
sdd           0    512      0     512     512    1 deadline     128
sr0           0    512      0     512     512    1 deadline     128

불행하게도 위험한 가정 없이 SSD를 배제할 수 있는 방법은 없습니다(SDXC) 형식은 2009년 1월에 출시되었으며 SD 사양 3.01에 도입되었습니다. 버전에 정의된 대로 최대 2TB의 카드를 지원합니다. 일부 SSD보다 용량이 더 높은 SD 카드를 본 적이 있습니다.

관련 정보