Okay, this is basic crypto.
If you do:
Code:# dd if=/dev/zero of=/dev/da0 <now create encrypted filesystem on da0>
then even a newbie can tell that a certain amount of space is or has been used on the encrypted filesystem: you count the number of blocks that still contain all zeroes. This is an information leak, a major crypto no-no.
However, if you do
Code:<create encrypted filesystem> # dd if=/dev/zero of=/mnt/my-encrypted-fs/file
and let it fill the filesystem, the data actually written to da0 is an encrypted stream of zeroes; each block is different from the next, and you need the decryption key to figure out that they're all actually zero.
Now, from a security point of view, that's still not really all that great, because someone who is attacking the system to recover data, and is able to obtain the encryption key, may be given clues as to which blocks are irrelevant to analyze.
So the ideal method is to fill the disks with /dev/random. However, the point I'm making is that if the process of filling your disks with noise takes so much time that it doesn't complete successfully or in a reasonable amount of time... well, filling with /dev/zero on the encrypted filesystem at least eliminates the first case.
Aah, I understand what you are saying. I was thinking only about removing the current data that is on the drive and not potential future attacks on the disks.
I think there's two different thoughts here.
If you're wiping a drive purely so data is not recoverable, then a /dev/zero wipe should be sufficient. The drive is empty, and nothing retrievable. (I think the jury's still out on whether, with advanced analysis, you could still get to the original data when it's been overwritten with zero's. I don't think so.)
Then there's wiping a drive with the intent of using it to store encrypted data. This has to be wiped with random data so that further encrypted data can't be told apart from the non-used random data. 'Used' encrypted data should be indistinguishable from 'old' random data.
I don't think I'd use the gui for wiping drives that are going to be used in encryption. I'd startup dd's on the console, and monitor them from there. Depending on the cpu, there may be little point to starting all the drives at once. I assume /dev/random is single threaded, so with a quad core cpu, there may be no point in writing random data to more than 4 drives at a time.
After the dd random wipe, which may take quite a while, I'd use the gui to make the pool, and NOT check the option to initialize with random.
^^^ This is exactly what I was thinking next. Sure, it requires you to manually ensure that they are all wiped, but its not that hard to do.