Articles of 硬盘驱动器

进程永久停留在D状态

我在Ubuntu 10.04.3 LTS上遇到一些进程停滞在D状态的问题。 他们自11月5日以来一直处于这种状态(今天是12月6日)。 我知道这些是不间断睡眠状态,通常与从硬件(如硬盘)等硬件数据相关。 这是一个生产服务器,所以重新启动是最后的手段,任何人都能够清楚这些进程可能是什么? 这是来自ps -aux的D状态项目的输出 www-data 22851 0.0 0.0 0 0 ? D Nov05 0:00 [2637.64] www-data 26306 0.0 0.0 4008 12 ? D Nov05 0:00 ./2.6.37 www-data 26373 0.0 0.0 4008 12 ? D Nov05 0:00 ./n2 www-data 26378 0.0 0.0 4008 12 ? D Nov05 0:00 ./n2 这是ps axl | […]

直接高效地读写硬盘扇区

我特别需要块数据存储。 我的数据是格式化的数据块大小为4096.为了高效率,我想直接操纵硬盘扇区上的块,而不想把数据块当作文件。 我认为一种方法是将设备视为/ dev / sda1这样的文件,并使用lseek()read()和write()来读写数据。 但是我不知道文件头是否是硬盘的第一个扇区。 我也怀疑这种方法的效率。 我正在研究Linux OS和C编程语言。 什么是处理硬盘扇区的最有效方法? 我应该写一个linux的块设备模块吗? 但是,我不太了解。 我应该使用什么内核函数来读写块设备?

如何使用Python获取硬盘序列号

如何在Linux hard disk使用Python获取hard disk器的serial number ? 我想使用一个Python模块来做到这一点,而不是运行一个外部程序,如hdparm 。 也许使用fcntl模块?

如何在Windows中使用DeviceIoControl()读取各个扇区/群集?

当Windows准备进入hibernate状态时,我放弃了笔记本电脑,结果硬盘上出现了一个头部故障。 (教我下次使用自由落体传感器的硬盘驱动器和/或笔记本电脑。)无论如何,运行SpinRite尝试恢复数据导致磁盘上的所有备用扇区全部用完到目前为止可回收的部门。 SpinRite现在还在运行,但由于不再有备用扇区了,我认为除了告诉我所有的坏道在哪里之外,这是徒劳的。 无论如何,我正在计划编写一个应用程序来试图从硬盘上抢救数据。 从我过去的整理碎片,我知道我可以使用FSCTL_GET_RETRIEVAL_POINTERS找出任何给定文件的逻辑簇编号。 我怎么去尝试阅读该实际集群的部门? 我通过MSDN列出的磁盘,文件和音量设备控制代码来挖掘我没有任何东西跳到我实际的群集数据的方式。 我是否应该甚至不打算在这么低的水平上阅读? 我应该做SetFilePointer()和ReadFile()调用来获得适当的集群大小偏移到文件和读取群集大小的块? 如果我试图读取的文件有一个坏扇区,NTFS会将整个文件标记为坏,并阻止我将来访问该文件? 如果是这样,我该如何告诉NTFS不要将文件标记为坏或死亡? (请记住,房屋署现在没有备用扇区进行重新映射。) 我应该掸掉我的* nix知识,弄清楚如何从/ dev /中读取数据? 更新:我find了我自己的问题的答案。 :-)解决scheme是在卷处理上而不是在文件句柄上执行SetFilePointer()和ReadFile()。

如何以编程方式防止Windows从硬盘驱动器停转?

我的程序在硬盘可用空间上执行任务。 任务相当长, 需要1-2个小时 。 问题是,在笔记本电脑上,用户闲置几分钟后,硬盘可能会closures。 如何以编程方式阻止Windows从硬盘旋转(关机)?

如何获取C / C ++中的磁盘驱动器序列号

这已经被回答了,但是它是一个C#解决scheme。 如何在C或C ++中执行此操作?

卷到物理驱动器

QueryDosDevice(L"E:", DeviceName, MAX_PATH); (E:是SD卡) DeviceName是“\ Device \ HarddiskVolume3” 我如何“转换”为"\\.\PHYSICALDRIVE1"