问题标签 [hdd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
22390 浏览

windows-vista - 在 Vista Ultimate 64 位上获取 HDD(而非卷)序列号

我曾经想在不使用 WMI 的情况下获取 HDD 序列号,结果找到了。我在 StackOverFlow.com 上找到并发布的代码在 XP 和 Vista 的 32 位 Windows 上运行良好。当我尝试在 64 位操作系统(特别是 Vista Ultimate 64)上获取序列号时,问题才开始。该代码始终返回 String.Empty 或 Space。

有人知道如何解决这个问题吗?

编辑:

我使用了 Dave Cluderay 建议的工具,结果很有趣:

这是 DiskId32 在 Windows XP SP2 32 位上的输出:

并且 DiskId32 在 Windows Vista Ultimate 64 位上运行:

请注意 Vista 上的信息要少得多,以及如何不返回序列号。另一个工具 EnumDisk 将我在 Vista 上的硬盘称为“SCSI”,而不是 Windows XP 上的“ATA”。

有任何想法吗?

编辑2:

我正在发布 EnumDisks 的结果:

在 Windows XP SP2 32 位上:

在 Vista 64 Ultimate 上:

0 投票
1 回答
2319 浏览

c# - 尝试通过 WMI 获取 CPU ID 时生成“未找到”异常

我正在使用此代码来获取处理器 ID:

我正在运行 Windows 7 32 位 Visual Studio 2008。不幸的是,mc.GetInstances() 方法调用引发了“未找到”异常。

这是一段类似的代码(获取硬盘序列号):

此代码也失败 - “disk.Get()”方法引发“无效类”异常。

我已经在关闭和打开 UAC 的情况下运行此代码 - 没有任何帮助。

我究竟做错了什么?

0 投票
2 回答
405 浏览

java - 使用 java.io 高效序列化原生 java 数组

我必须对 Java 序列化提出疑问。

我只是使用 FileOutputStream 和 BufferedOutputStream 结合 Dataoutputstream 将 10 个大小为 int[] array = new int[2^28] 的数组写入我的硬盘(我知道这有点大,但我需要它) . 在每次序列化之前,我创建一个新的 FileOutputstream 和所有其他流,然后我关闭并刷新我的流。

问题:第一次序列化大约需要 2 秒,之后它会增加 tp 17 秒并保持在这个级别。这里有什么问题?如果我进入代码,我可以看到 FileOutputStreams 为 writeByte(...) 花费了大量时间。这是由于硬盘缓存(完整)吗?我怎样才能避免这种情况?我可以清除它吗?

这是我的简单代码:

其中 dataOut.write(int[], 0, end)

和 `protected void checkBuf(int need) throws IOException {

BufferedDataOutputStream 扩展了 BufferedOutputStream 与 fit 框架一起提供。它只是将 BufferedOutputStream 与 DataOutputStream 结合起来,以减少编写大数组时的方法调用次数(这使其速度更快......最多 10 倍......)。

这是输出:

起始基准

开始运行 0

2.001972271

开始运行 1

1.986544604

开始运行 2

15.663881232

开始运行 3

17.652161328

开始运行 4

18.020969301

开始运行 5

11.647542466

开始运行 6

为什么时间会增加这么多?

谢谢,

埃斯

0 投票
1 回答
857 浏览

c++ - 尝试编写一个综合方法来使用 C++ 确定 Windows 驱动器类型

我遇到了大量非托管 C++/MFC 示例,这些示例显示人们试图通过其 DOS 路径确定驱动器的类型,但对于应该如何完成似乎存在很多困惑。所以我试图将所有信息整合到一个功能中,并做微软很久以前应该为我们做的事情。

我基本上需要将所有现代驱动器分类为:

  • 固定驱动器
  • 可移动驱动器
  • 媒体驱动器
  • 其他(见代码中的解释)

有人可以在下面检查我的代码吗?

0 投票
1 回答
873 浏览

linux - 使用 SATA HDD 作为块设备

我对 Linux 内核完全陌生,所以我可能把事情搞混了。但任何建议都会对我有所帮助;)

我有一个通过 PCIe SATA 卡连接的 SATA HDD,我尝试在块设备上使用read和喜欢。write我还希望将数据断电保存在 HDD 上 - 不缓存。最后我必须分析我在每个 linux 堆栈层中浪费了多少时间。而是一步一个脚印。

目前,我尝试open使用 *O_DIRECT* 访问设备。但是我真的不明白在哪里可以找到该设备。它显示为/dev/sdd,我创建了一个分区/dev/sdd1

  • openread在分区/dev/sdd1工作。write*O_DIRECT* 失败(但我确定我有正确的块大小)
  • open readwrite呼吁/dev/sdd完全失败。
  • 是否有另一个文件/dev/代表我在块层上的设备?
  • 我的错误和错误假设是什么?

这是我当前的测试代码

编辑:我在电源架构上使用 3.2 内核 - 如果这很重要。

非常感谢您的宝贵时间,Fabian

0 投票
2 回答
7564 浏览

linux - 从具有 O_DIRECT 的 HDD 读取()失败并显示 22(EINVAL,无效参数)

我想read()从 SATA HDD做一个基本的/dev/sdd。Awrite()似乎工作。也可以在没有标志的情况read()下工作。我读过,它必须与块大小对齐。所以我用它来获取块大小:write()O_DIRECT

如您所见,我有根。硬盘通过 PCIe SATA 卡连接,并向lspci -vv我显示它使用基本的 ahci ( drivers/ata/ahci.c) 驱动程序。我在 64 位 Power Architecture 上使用 3.2.0 Linux 内核。

这是我的代码:

输出是:

编辑:我已经按照 Brett Hale 的回答更新了我的来源。不幸的是,我仍然得到错误。我找出块大小的方法可以吗?我做对了吗?

非常感谢您阅读,
费边

0 投票
1 回答
763 浏览

c++ - Windows XP 上用于高级格式硬盘的物理扇区大小

我需要检索硬盘的物理扇区大小,以确定硬盘是否为高级格式,在 Windows XP 中。

我尝试使用STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR,但它在 Windows XP 中不兼容。我使用的任何方法都将返回 512 而不是 4096,其中包括 WMI,其中返回的唯一值是 512。

我一直在用 C++ 进行编码,如果有人能指出一种方法来帮助我找到实际的物理扇区大小,我将非常感激。

0 投票
2 回答
1110 浏览

vb6 - 如何获取当前的硬盘类型?

我找到了一种在 vb6 中获取硬盘序列号的方法。但它需要从中选择一个选项

  • 初级主人
  • 主从
  • 二级大师
  • 次要奴隶

但我想自动选择一个选项。自动选择逻辑是,

假设我有 4 个具有上述 4 种类型的 HDD。并且逻辑将选择加载当前系统的硬盘类型。

我真的不知道如何检测当前系统是哪种硬盘类型。请帮忙。

这是我用来选择硬盘序列号的类。HDSN 等级

0 投票
2 回答
10625 浏览

external - NTFS/GPT 挂载以退出代码 13 退出

这是一个重复的帖子,因为我在 askubuntu.com 上没有得到任何帮助。

我有一个最近格式化为 NTFS 的 1TB 外置硬盘。直到现在,它一直安装在我的 Ubuntu 11.10 上。我没有进行任何更改来影响我的操作系统或我的 exhdd。

我得到的错误是:

我确实读过这个这个。但两者都没有帮助。

我尝试安装ntfsfix,但不再存在这样的包。我从来没有在 Windows 机器上使用过这个硬盘。如果我需要使用另一台机器来解决这个问题,我可以使用 mac。

有什么建议吗?

这是我的 sudo fdisk -l 输出:GPT 到底是什么?我没有那样做。它曾经是NTFS。

0 投票
1 回答
113 浏览

php - 注意:未定义的偏移量:2 或者如何一直获取硬盘空间

这一行给了我那个错误

我从http://www.installgentoo.net/获得了这段代码, 它显然对他们有用。我正在使用 Windows,他们可能正在使用 linux

如果这是一个 Windows 问题,我怎么能做一些适用于 Windows 和 linux 的东西(它总是得到正确的 HDD,所以我不使用类似的东西,disk_total_space("C:")因为所有的网络服务器可能都没有它在 C 驱动器上。

如果您想要我正在使用的方法