-1

我正在尝试使用open(2)lssek[64](2)和编写可用空间归零器write(2)。我正在尝试确定正在使用的磁盘扇区。

我从 coreutils 看了一下dd(1),但该实用程序没有执行类似的检查。在 Windows 世界中,我可以使用 FSCTL_GET_VOLUME_BITMAP 调用 DeviceIoControl

给定一个原始扇区,是否有一个系统调用可以让我确定该扇区是否正在使用?

4

1 回答 1

3

完成此操作的传统方法(因为您的方法受文件系统破坏竞争条件的影响)是创建一个巨大的文件,将其归零,然后删除该文件。其实直接用sh就可以了,不需要文件:

# dd will run until disk space is exhausted
dd if=/dev/zero of=__somefile.bin bs=1M conv=noerror; rm __somefile.bin
于 2011-05-11T00:58:55.800 回答