2つの暗号化されたデバイスで作成されたRAID1 btrfsから起動するDebian仮想マシンを設定しました。仮想マシンをこのように設定しました。
/etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_ENABLE_CRYPTODISK=y
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="cryptdevice=UUID=b5259968-2f96-4a45-87bf-c658f6d0f55d:luksvda4 cryptdevice=UUID=6aae0722-1fc0-49d1-85d7-ca5668b06683:luksvdb4 rootflags=degraded"
GRUB_TERMINAL="console"
これは/etc/fstabです
LABEL=ROOT / btrfs defaults,degraded 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=SWAP none swap sw 0 0
これは/etc/crypttabです
# <target name> <source device> <key file> <options>
luksvda4 UUID=b5259968-2f96-4a45-87bf-c658f6d0f55d none luks
luksvdb4 UUID=6aae0722-1fc0-49d1-85d7-ca5668b06683 none luks
最後にディスク構成です。
fdisk -l /dev/vda
/dev/vda1 48 65583 65536 32M BIOS boot
/dev/vda2 65584 2162735 2097152 1G Linux RAID
/dev/vda3 2162736 8454191 6291456 3G Linux swap
/dev/vda4 8454192 62914526 54460335 26G Linux filesystem
fdisk -l /dev/vdb
/dev/vdb1 48 65583 65536 32M BIOS boot
/dev/vdb2 65584 2162735 2097152 1G Linux RAID
/dev/vdb3 2162736 8454191 6291456 3G Linux swap
/dev/vdb4 8454192 62914526 54460335 26G Linux filesystem
私は古典的なmdadm ext4を使用していますが、ブートパーティションのbtrfs(もちろん暗号化されていません)は正常に動作します。システムが起動し、両方のLuksデバイスの2つのパスワードを要求した後、問題はありません。ただし、最初のディスクを削除(失敗シミュレーション)するときにinitramfsコンソールに移動すると、ディスクを手動でマウントする必要があります(sic!)。これは、Slackwareの同じ構成では発生しません。問題は:両方のディスクのいずれかが利用できないときにDebianを強制的に起動することは可能ですか?
答え1
簡単すぎる:/etc/fstabにnofailオプションを設定しましたが、ディスクを1つ使って起動しても問題はありませんでした。
LABEL=ROOT / btrfs defaults,degraded,nofail 0 1
LABEL=BOOT /boot ext4 defaults,nofail 0 2
LABEL=SWAP none swap sw 0 0