【问题标题】:how in c check what exactly is under /dev/sda and what is under /dev/sdb when both are USB drives当两者都是 USB 驱动器时,如何在 c 中检查 /dev/sda 下的内容以及 /dev/sdb 下的内容
【发布时间】:2013-10-20 13:36:42
【问题描述】:

我的 c 程序有问题,它正在向/从 /dev/sda 和 /dev/sdb 传输/复制数据。(打开、读取、写入)这两个设备都是 USB 笔式驱动器,它们的主要编号是 8。

我遇到的问题是,次要编号的变化与 sda sdb 名称完全相同

为了更复杂,两个 USB 设备都连接到相同的 USB 总线(Raspberry Pi 只有一个)并且大小相同。不同的是制造商名称。

如何检查c中的差异?

提前致谢。

【问题讨论】:

  • 我认为你应该调查udev/sys/,也许还有/proc/mounts/proc/下的其他文件

标签: c linux raspberry-pi


【解决方案1】:

udev 应该通过在 /dev/disk 下创建唯一名称来为您解决这个问题,您可以使用它来代替 /dev/sda 和 /dev/sdb。 /dev/disk/by-id 下的链接还包括制造商名称。

【讨论】:

  • 我尝试使用来自 /dev/disk/by-id/ 的名称,但发生了非常奇怪的事情。我在设备上使用 dd 进行 som 磁盘恢复,然后我进行安装。我遇到的问题是,在 dd 之后存在(我在其他 cosnole 中使用 watch ls /dev/disk/by-id/ 看到它)设备的设备/分区,但系统声称它们不存在并且挂载失败。更奇怪的是,如果我使用像 /dev/sd* 这样的名称,一切都会完美无缺。
  • 我不太明白你对正在发生的事情的描述。在任何情况下,/dev/disk/by-id 下的所有内容都必须是符号链接,您可以看到它们指向的设备。如果某个名称指向 /dev/sda,那么是否使用 /dev/sda 的名称都没有区别。
  • 对不起。这都是我的错。我可以在列表中看到该设备,但 /dev/by-id 还没有准备好(用 stat 检查)来写它。因为我在程序中完成了这一切,所以一切都进行得非常快,而且很可能链接没有完全初始化。当我在一切正常之间引入 stat 命令时。谢谢
猜你喜欢
  • 1970-01-01
  • 2013-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 1970-01-01
相关资源
最近更新 更多