【发布时间】:2013-04-19 21:39:01
【问题描述】:
我正在尝试在不需要 root 访问权限的情况下获取 linux 上的硬盘序列号。这可以通过this source 在 Windows 上实现,本质上它使用IOCTL_STORAGE_QUERY_PROPERTY 执行DeviceIoControl。 ioctl 版本是多少?
【问题讨论】:
-
您可能需要 root 才能获取该信息,无论您以何种方式获取它。它可能不存在(例如,在
chroot-ed 环境或虚拟机中,或者在具有 NFS 文件系统的无盘机器上,就像许多虚拟互联网服务器一样)。您可以strace显示该信息的 linux 命令...(hdparm、fdisk)找出获取它所涉及的系统调用。 -
查看
hdparm的源代码,因为-i它正在检索您想要的内容。但它需要为此扎根(可能用SG_IO做一些ioctl)。因此,如果不是 root,您将无法检索该信息。 -
@BasileStarynkevitch 谢谢,但重点是在不需要 root 权限的情况下获取信息。