OpenBSD CRYPTOデバイスの最初のMByteをクリアする必要があるのはなぜですか?

OpenBSD CRYPTOデバイスの最初のMByteをクリアする必要があるのはなぜですか?

から:http://www.openbsd.org/cgi-bin/man.cgi?query=bioctl

The following command, executed from the command line, would configure
     the device softraid0 with one special device (/dev/sd2e) and an
     encrypting volume:

    # bioctl -c C -l /dev/sd2e softraid0

     bioctl will ask for a passphrase, which will be needed to unlock the
     encrypted disk.  After creating a newly encrypted disk, the first
     megabyte of it should be zeroed, so tools like fdisk(8) or disklabel(8)
     don't get confused by the random data that appears on the new disk.  This
     can be done with the following command (assuming the new disk is sd3):

    # dd if=/dev/zero of=/dev/rsd3c bs=1m count=1

私の質問:ところで、なぜCRYPTOデバイスの最初のMByteを消去するのですか?これを見逃すと欠点はありますか?

答え1

その理由を一文で表現してみてください。

so tools like fdisk(8) or disklabel(8) don't get confused by the 
random data that appears on the new disk

暗号化されたデバイスを作成した後、データはランダムになります(説明されているように、ディスクが最初にゼロでいっぱいになった場合でも同じです)。データが(ほぼ)有効なパーティションテーブル情報に似ていると、混乱する可能性がfdiskあります。disklabel

だからゼロ化する必要があります。暗号化による続行する前に、ランダムではないデータを作成してください。

答え2

すでに答えを引用しています。

したがって、fdisk(8) や disklabel(8) などのツールは、新しいディスクに表示されるデータにはまったく属しません。

ディスクを分割するために使用されるツール(例:fdiskおよびparted)またはディスクを表示するために使用されるツール(例disklabel:)は、既存のMBRを読み取ろうとします。 MBRが0の場合は空のものとして扱われます。ゼロでなければ内容を理解しようとします。ただし、お客様の場合、コンテンツは完全にランダムです。これはこれらのツールを混乱させ、最悪の場合、偽の値を読み取る準備ができていないとクラッシュする可能性があります。

答え3

OpenBSDギターメーリングリストでNick Hollandの回答を見つけました。

So...today, you take a couple disks, zero the first 10MB, put a 1G boot
partition and make the rest RAID, then build a mirrored set, do your
testing, and call it done.

Tomorrow, you take the same disk, zero the first 10MB, put a 1GB boot
partition on it, and make the rest RAID, and intend to build a crypto
RAID partition on it.  Except...Poof! your RAID1 chunk is baaack!  Why?
 Because you didn't touch the softraid data which is 1GB up the disk.

関連情報