系统相关
首页 > 系统相关> > linux – 了解特定设备是否为USB海量存储

linux – 了解特定设备是否为USB海量存储

作者:互联网

上下文

我正在从现有的dd工厂图像中自动化SD卡成像. SD卡始终通过外部USB读卡器连接,因此在系统中显示为SCSI块设备/ dev / sd *.

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

问题

我已经在对DEVICE进行基本检查以验证它的格式是/ dev / sd *但这还不够:我担心用户(生产人员不熟悉Linux)会犯错并指定另一个看似有效的设备,例如.的/ dev / SDA.你可以看到迫在眉睫的灾难,特别是因为我的成像​​脚本需要root权限(不要自己写图像,但是要修改SD卡,包括根据SD卡的实际大小调整分区大小)…

我想验证指定的设备实际上是一些USB大容量存储(或至少是一个可移动设备),以便我可以保护系统磁盘不会被意外地删除.我怎样才能做到这一点?

我发现在/ proc或网络上没有任何相关内容,我现在很茫然.

解决方法:

看看/ 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 /块/ SDE.检查是否包含usb *文件夹可能只是一个简单的检查.

您可以从/ sys / block / sdX / device /获取其他设备详细信息,例如供应商和型号,这些也可能会派上用场.

标签:usb-drive,linux,block-device,devices,removable-storage
来源: https://codeday.me/bug/20190809/1629859.html