确定原始磁盘扇区是否正在使用中

时间:2011-05-11 00:54:29

标签: linux disk inode

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

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

鉴于原始扇区,系统调用是否允许我确定扇区是否正在使用?

1 个答案:

答案 0 :(得分:3)

这是完成的传统方式(因为你的方法受文件系统损坏的竞争条件),就是创建一个巨大的文件,将其归零,然后删除该文件。事实上,你可以直接用sh做,不需要文件:

# dd will run until disk space is exhausted
dd if=/dev/zero of=__somefile.bin bs=1M conv=noerror; rm __somefile.bin