使用DISKPART命令行实用程序,我可以得到一个称为"位置路径"的东西,它似乎能够提供我需要的东西,您可以detail disk在选择其中一个磁盘后使用该命令查看diskpart.
看来我可以通过这个类以编程方式获取此信息:MSFT_Disk
我不确定如何获得这个类的实例.我有几个使用ManagementObjectSearcherfor WMI类的例子但是这个方法对我不起作用,我也不确定MSFT_DiskWindows 7中的可用性,因为该页面提到这是针对Windows 8的.
有谁知道获得SATA通道信息或磁盘"位置路径"的好方法?
我有一个应用程序需要从硬盘读取信息,如串行模型等.
当然,如果驱动器是SAS,SATA或FC驱动器,那么这很重要.
有没有可靠的方法可以确定连接驱动器使用哪种协议?通过OS命令或检查某些日志或查询设备?
我不想使用sysfs结构.我想知道操作系统是如何知道它是ATA,SCSI还是任何类型的磁盘.
我想在 QEMU 中模拟 SATA 磁盘驱动器以检查我正在尝试开发的设备驱动程序。如何才能做到这一点?非常感谢您的帮助。
我有一个禁用写入缓存的SATA硬盘:
hdparm -W0 /dev/foo
Run Code Online (Sandbox Code Playgroud)
我正在ext4使用这些挂载选项(以及其他)的分区上运行:
data=ordered
auto_da_alloc
Run Code Online (Sandbox Code Playgroud)
Linux内核版本是2.6.32-5-686.
现在,我有一个我无法修改的外部程序,但我知道以下列方式创建一个文件:
int fd = open(path);
write(fd, data, data_size);
close(fd);
Run Code Online (Sandbox Code Playgroud)
即它在关闭之前不会fsync.所以在这一点上,数据可能在RAM中,在kernel/fs缓存中的某个地方.
注意:元数据还不是一个问题:在我确保数据已经到达磁盘盘片之后,最终的元数据将被写入并保存.数据本身就是问题所在.
所以问题是,我如何帮助数据到达实际的磁盘盘片?
我之后想过运行这个单独的程序:
int fd = open(path);
fsync(fd);
close(fd);
Run Code Online (Sandbox Code Playgroud)
这有助于刷新数据,还是应该使用不同的方法?
我正在开发一个高性能数据库,我想直接写入具有多个磁头的特定磁道/磁道.如何通过SATA总线在带有SATA磁盘的Linux中完成?您可以推荐哪些文档,示例?
我目前正在开发一个项目,我需要将数据批量导入Hadoop集群.需要导入Hadoop的数据驻留在SATA磁盘上.需要导入的数据是Encase取证磁盘映像(E01).我创建了一个从这些图像中提取文件并将这些文件导入Hadoop的应用程序,这种方法很好但我需要手动启动该过程.
我希望通过热插拔SATA驱动器自动完成该过程并自动启动提取过程.我用Java编写了我的程序,由于我用来分析图像的一些外部库,它需要这样.我在互联网上搜索了一个解决方案,其中Java用于检测新插入的驱动器,但我发现所有可以检测到usb驱动的库或使用udev规则来启动进程(我可以使用它但更喜欢Java解决方案)
有谁知道我所描述的东西是否存在?或者有人能指出我正确的方向吗?非常感谢!
差点忘了......我使用ubuntu 12.04 Server Edition作为我的操作系统.