On Tue, 21 May 2002 [EMAIL PROTECTED] wrote:
> Am I right then in thinking there's really no easy solution with Linux? (short of
> leaving the dd running overnight, or mounting the HD in another (faster) machine...)
There are kerjillions of easy ways of doing it with Linux :).
You could write a simple program that uses standard library random
function for generating random data. That should be way faster than
/dev/*random as its should have a rather plainforward implementation.
Then you can direct its output to /dev/hda or use dd if you wish.
More than 5,6 megabytes under 3 seconds with the following:
--------------------------------------------------------
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
int main(int argc, char *argv[]){
int seed;
if (argc != 2){
printf ("Usage: %s [seed], "
"where seed can be any integer.\n", argv[0]);
exit (1);
}
errno=0;
if ((seed = atol(argv[1])) && !errno)
srand(seed);
else {
printf ("Error: %s: %s\n", argv[1],
errno ? "Numerical result out of range." : "Not a number.");
exit (2);
}
while (1) printf("%d",rand());
}
Compile it with
gcc -o rand rand.c
and strip symbols with
strip -s rand
and you'll get a 3kB binary that should fit into tomsrtbt easily.
Usage:
rand 12347 | dd of=/dev/hda
or
rand 12347 > /dev/hda
Drop me a note if you need a smaller or faster version -- printf is
overhead, using library rand() is also overhead. I guess it can be done
under 1 kB and considerably faster than with stdlib rand(), as the latter
uses long integers.
Regards,
m