3

在 Windows 中,您可以通过 GetDriveType 返回值来确定 USB 硬盘驱动器或 USB 闪存驱动器。

DRIVE_REMOVABLE ==> USB 闪存驱动器

DRIVE_FIXED ==> USB 硬盘驱动器

我应该如何在linux中做到这一点?

从开发人员的角度来看,我应该怎么做?

4

2 回答 2

3

您需要使用 apt-get 或 yum 命令安装 lshw 命令。要显示系统中的所有磁盘和存储控制器,请输入:

# lshw -class disk -class storage

稍后您还可以尝试以下操作,它将提供特定的完整详细信息...

# hdparm -I /dev/sda

或者

$ sudo hdparm -I /dev/sda
于 2013-11-11T09:00:45.720 回答
2

好吧,有一个“可移动”标志实现为 `/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”表示“否”)。不是很有帮助。

于 2013-11-18T07:05:36.263 回答