首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找出特定设备是否是USB大容量存储器。

问找出特定设备是否是USB大容量存储器。
EN

Unix & Linux用户
提问于 2013-06-27 11:38:17
回答 1查看 4.6K关注 0票数 11

上下文

我是自动化SD卡成像从现有的dd工厂映像。SD卡总是通过外部USB卡读取器连接,因此在系统中以SCSI块设备/dev/sd*的形式出现。

目前,我命令的语法是:write-image DEVICE,其中DEVICE是SD卡块设备,例如。/dev/sdd。

问题

我已经在DEVICE上做了一个基本的检查,以验证它是/dev/sd*的形式,但这还不够:我担心用户(生产人员不习惯Linux)犯了一个错误,指定了另一个看似有效的设备,例如。/dev/sda。您可以看到即将到来的灾难,特别是因为我的成像脚本需要根特权(不是写入映像本身,而是修改SD卡,包括根据SD卡的实际大小调整分区的大小).

问题

我想验证指定的设备实际上是某种USB大容量存储器(或者至少是一个可移动的设备),这样我就可以保护系统磁盘不被意外破坏。我怎么能这么做?

我在/proc或网络上没有发现任何相关的东西,我现在很茫然。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2013-06-27 12:06:36

查看/sys/目录下的内容。特别是,/sys/block/包含指向/sys/devices/中阻塞设备的符号链接。

对于可移动设备,/sys/block/sdX/removable看起来将被读取为1,否则为0。这为您提供了一个可移动性的基本检查。

我不确定是否有更好的方法来检查它是否是一个USB设备,但是readlink /sys/block/sde会吐出一些类似../devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1.2/6-1.2:1.0/host7/target7:0:0/7:0:0:0/block/sde的东西。检查其中是否包含一个usb*文件夹可能是一个简单的检查。

您可以从/sys/block/sdX/device/获得其他设备细节,如供应商和型号,这也可能会派上用场。

票数 11
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/80875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档