On Mon, 2009-01-26 at 02:20 +0000, Pádraig Brady wrote: > > A consequence of this change -- right now -- is that all 3 passes > will > > be random. I am not sure if this was the intended result or not. > > Yes we don't really care about the patterns written to file any more, > so random is as good as any. Attached is a test to make this explicit. > > cheers, > Pádraig. >
Thanks, Pádraig. One more thing -- and please forgive me on insisting on this --: the random passes are done by using /dev/urandom, not by randomly selecting possible patterns from the passes table. I did a quick & dirty test (and I am not suggesting this to be implemented, it was just to check), taking out two of the 'random' entries in the table. I then ran GIT shred, and my modified shred. This is what I get: hg...@xango2:/tmp $ time shred --verbose test1.data shred: test1.data: pass 1/3 (random)... shred: test1.data: pass 2/3 (random)... shred: test1.data: pass 3/3 (random)... real 0m5.761s user 0m0.016s sys 0m5.480s hg...@xango2:/tmp $ time /usr/src/buildd/coreutils-git/src/shred --verbose test1.data /usr/src/buildd/coreutils-git/src/shred: test1.data: pass 1/3 (random)... /usr/src/buildd/coreutils-git/src/shred: test1.data: pass 2/3 (000000)... /usr/src/buildd/coreutils-git/src/shred: test1.data: pass 3/3 (ffffff)... real 0m2.430s user 0m0.020s sys 0m2.020s hg...@xango2:/tmp $ ls -l test1.data -rw-r--r-- 1 hggdh hggdh 4239360 2009-01-25 21:15 test1.data hg...@xango2:/tmp $ This is the change I did for the test: hg...@xango2:/usr/src/buildd/coreutils-git $ git diff diff --git a/src/shred.c b/src/shred.c index 6ed4daa..d087c67 100644 --- a/src/shred.c +++ b/src/shred.c @@ -623,10 +623,10 @@ dopass (int fd, char const *qname, off_t *sizep, int type, static int const patterns[] = { - -2, /* 2 random passes */ + /* -2, */ /* 2 random passes */ 2, 0x000, 0xFFF, /* 1-bit */ 2, 0x555, 0xAAA, /* 2-bit */ - -1, /* 1 random pass */ + /* -1, */ /* 1 random pass */ 6, 0x249, 0x492, 0x6DB, 0x924, 0xB6D, 0xDB6, /* 3-bit */ 12, 0x111, 0x222, 0x333, 0x444, 0x666, 0x777, 0x888, 0x999, 0xBBB, 0xCCC, 0xDDD, 0xEEE, /* 4-bit */ hg...@xango2:/usr/src/buildd/coreutils-git $ May I suggest this to be revisited? If we do not care what type of passes we do, then we could just pick three out of all possible passes, and not force-feed random at least three times. This would make shred usable on extremely large files, or on a whole disk. Cheers, ..hggdh..
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Bug-coreutils mailing list Bug-coreutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-coreutils