Skip to contentSkip to conversation

BUG in 2.4.0: dd if=/dev/random of=out.txt bs=10000 count=100

DISCUSSION Rob Landley 4 participants 5 messages Jan 13, 2001

lore
Share & tools
lore
#0 lore raw

If I do the dd line in the title under 2.4.0 I get an out.txt file of 591 bytes.

If I do the same thing from /dev/zero, I get the expected 1,000,000 byte file.

I've shoehorned 2.4.0 into a fresh red hat 7.0 install which could quite easily be a bad thing, yes ripped out their strange gcc and symlinked kgcc->gcc to do the compile. But other than this it seems to be working. (So far...)

dd says it completes happily even when copying from random. 0+100 records in, 0+100 records out. It takes about thirty seconds to finish on the dual gigahertz processor intel box I'm using to test it, which implies it's actually performing the truly impressive waste of CPU cycles I'm requesting from it.
I'm just not getting the data in my file.

Am I doing something wrong?

My dd is from fileutils-4.0x-3. (Straight Red Hat 7.0, I think...) Didn't see anything about that in Documentation/Changes...

I'll be happy to try one of the prepatches if anybody thinks they've addressed this problem already.

Anybody? Need more debugging info? Want me to wave a dead chicken at something specific? Stick printk's into the kernel?...

Rob

__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail.
http://personal.mail.yahoo.com/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#1 lore raw
Quoted 2 lines · Rob Landley

If I do the dd line in the title under 2.4.0 I get an out.txt file of 591 bytes.

It isn't broken, you have no more entropy. You must have some system activity of various sorts before you regain some entropy. Moving the mouse around, hitting keys, etc, will slowly add more entropy.

-d

-- ---NOTICE

-- fwd: fwd: fwd: type emails will be deleted automatically.
"There is a natural aristocracy among men. The grounds of this are virtue and talents", Thomas Jefferson [1742-1826], 3rd US President

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#2 lore raw
In reply to Rob Landley
Quoted 2 lines

dd says it completes happily even when copying from random. 0+100 records in, 0+100 records out. It

This means that dd completed 100 reads, and none of them were of the requested length (10000 bytes).

Quoted 5 lines

takes about thirty seconds to finish on the dual gigahertz processor intel box I'm using to test it, which implies it's actually performing the truly impressive waste of CPU cycles I'm requesting from it.
I'm just not getting the data in my file.

/dev/random generates (hopefully) truly random values, and relies on receiving interrupts. It doesn't spend very many CPU cycles. For most purposes, /dev/urandom is adequate, and will be much faster for such large quantities of data.

-John

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#3 lore raw
In reply to Rob Landley
Quoted 2 lines · Rob Landley

If I do the dd line in the title under 2.4.0 I get an out.txt file of 591 bytes.

And it's the same under 2.2.x, too.

Quoted 2 lines

dd says it completes happily even when copying from random. 0+100 records in, 0+100 records out. It

It's not a fault of dd, or of the read() system call, either. It's just the way /dev/random works - you can't read more bytes than those available in the entropy pool. And if you try, you'll just fail with no error.

Cheers,
David
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#4 lore raw
In reply to Rob Landley
Quoted 10 lines · David Santinoli
Quoted 2 lines · Rob Landley

If I do the dd line in the title under 2.4.0 I get an out.txt file of 591 bytes.

And it's the same under 2.2.x, too.

Quoted 2 lines

dd says it completes happily even when copying from random. 0+100 records in, 0+100 records out. It

It's not a fault of dd, or of the read() system call, either. It's just the way /dev/random works - you can't read more bytes than those available in the entropy pool. And if you try, you'll just fail with no error.

It won't fail, it will block, then continue reading when more bytes are available. The application may time out however.

-d

-- ---NOTICE

-- fwd: fwd: fwd: type emails will be deleted automatically.
"There is a natural aristocracy among men. The grounds of this are virtue and talents", Thomas Jefferson [1742-1826], 3rd US President

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/