から: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.