在 Windows 中,您可以通过 GetDriveType 返回值来确定 USB 硬盘驱动器或 USB 闪存驱动器。
DRIVE_REMOVABLE ==> USB 闪存驱动器
DRIVE_FIXED ==> USB 硬盘驱动器
我应该如何在linux中做到这一点?
从开发人员的角度来看,我应该怎么做?
在 Windows 中,您可以通过 GetDriveType 返回值来确定 USB 硬盘驱动器或 USB 闪存驱动器。
DRIVE_REMOVABLE ==> USB 闪存驱动器
DRIVE_FIXED ==> USB 硬盘驱动器
我应该如何在linux中做到这一点?
从开发人员的角度来看,我应该怎么做?
您需要使用 apt-get 或 yum 命令安装 lshw 命令。要显示系统中的所有磁盘和存储控制器,请输入:
# lshw -class disk -class storage
稍后您还可以尝试以下操作,它将提供特定的完整详细信息...
# hdparm -I /dev/sda
或者
$ sudo hdparm -I /dev/sda
好吧,有一个“可移动”标志实现为 `/sys 下的文件,但是....
例如,在我的系统上,下面的这个文件/sys
表示/dev/sde
由连接的 USB 硬盘实现的磁盘(在“总线 1 -> 端口 2 -> 配置 1 -> 接口 0”上找到的 USB 设备)
/sys/devices/pci0000:00/0000:00:02.1/usb1/1-2/1-2:1.0/host9/target9:0:0/9:0:0:0/block/sde
子路径
/sys/devices/pci0000:00/0000:00:02.1/usb1/1-2
这是在“总线 1 -> 端口 2”上找到的 USB 设备似乎代表了 USB 设备本身。
让我们使用以下命令查找“可移动”文件find
并打印它们的内容cat
:
$ cd /sys/devices/pci0000:00/0000:00:02.1/usb1/1-2
$ find . -name removable -exec echo -n '{}: ' ";" -exec cat '{}' ";"
./1-2:1.0/host9/target9:0:0/9:0:0:0/block/sde/removable: 0
./removable: unknown
因此,不知道“设备”是可移动的,而“磁盘”是不可移动的(假设“0”表示“否”)。不是很有帮助。