I'm not sure if it's a bug but it's not reasonable to me. On Solaris 11 (SunOS 5.11 snv_174, i86pc): $ uname -a SunOS sollab-242.cn.oracle.com 5.11 snv_174 i86pc i386 i86pc $ pkg list gnu-coreutils NAME (PUBLISHER) VERSION IFO file/gnu-coreutils 8.5-0.174.0.0.0.0.504 i-- $ /usr/gnu/bin/dd if=/dev/urandom of=file bs=1024k count=1 0+1 records in 0+1 records out 133120 bytes (133 kB) copied, 0.00290536 s, 45.8 MB/s $ ls -l file -rw-r--r-- 1 root root 133120 2011-10-12 16:12 file $ I'm new to Solaris but I've never seen this problem whe I use Linux so it really suprises me. I found this in the man page of /dev/urandom on Solaris: "The limitation per read for /dev/random is 1040 bytes. The limit for /dev/urandom is (128 * 1040 = 133120)." That seems to be the reason but I think dd should handle that and check the return value of the read() system call and make sure 1024k bytes have really been read from /dev/urandom. Any idea? Thanks. -Clark