使用运行 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 文件,想要创建一个 bash 脚本,询问用户希望将该 .iso 文件写入哪个 SD 卡。该脚本不应为他提供内部硬盘驱动器或 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 版中定义,支持高达 2 TB 的卡,我见过容量比某些 SSD 更高的 SD 卡

相关内容