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カードを見たことがあります。