On 08/28/2010 06:22 AM, Patrick O'Callaghan wrote:
On Fri, 2010-08-27 at 21:53 -0700, JD wrote:
> On 08/27/2010 09:25 PM, JD wrote:
>> Is there a Linux util to scrub free disk blocks and keep everything
>> else intact ??
>>
> Someone (not on this list) described a simple way to do this.
> Scrubbing files to be deleted is easy enough - there are utils for it
> already.
> But scrubbing existing free space is slower and requires patience.
>
> cd to the root of the partition.
> sudo dd if=/dev/zero of=ZERO bs=20M
>
> When the dd program fails to write any further, you
> have grabbed and zeroed all available free disk blocks
> in the partition.
>
> Now all you do is use the command scrub to scrub the file ZERO
> and when done the file is deleted.
From scrub(1):
-X, --freespace
Create specified directory and fill it with files until write returns
ENOSPC (file system full),
then scrub the files as usual. The size of each file can be set with -s,
otherwise it will be the
maximum file size creatable given the user’s file size limit or 1g if
umlimited.
However note that neither of these methods guarantees to scrub indirect
blocks in the filesystem that were used to create the space-filling
files. Maybe they do, maybe they don't, it's not clear.
poc
What is not clear from the man page is, when using the -X option, whether or
not the directory and the files created in the directory are automatically
deleted before scrub exits. I will assume that they are. Currently scrubbing
189GB free space.