web-dev-qa-db-ja.com

btrfsルート配列でinitramfsにスタックする

Btrfs raid1を使用して3つのドライブでシステムをセットアップしようとしていますが、btrfsルートに複数のドライブがある場合、initramfsで停止します。

私の3つのパーティション:/ dev/mapper/sda3_crypt | sdb3_crypt | sdc3 crypt

3つのドライブすべてがロック解除およびマップされ、local-premount/btrfsが正しくセットアップされているように見える(btrfsデバイススキャンを実行している)と確信しています。

#!/bin/sh

set -e

PREREQ=""

prereqs()
{
    echo "${PREREQ}"
}

case "${1}" in
    prereqs)
        prereqs
        exit 0
        ;;
esac

if [ -x /bin/btrfs ]
then
    modprobe btrfs
    /bin/btrfs device scan 2> /dev/null
fi

そして、btrfsのUUIDを使用して/ etc/fstabを持っています:

# <file system>                        <mount point>     <type>  <options>       <dump> <pass>
#/dev/mapper/sda3_crypt /               btrfs   defaults,subvol=@ 0       1
UUID=50758399-2529-470f-bc9d-fbac00a41913 /       btrfs   defaults,subvol=@ 0     1
UUID=aed887b8-8354-4aa8-8d10-2ec20e8478b5 /boot           btrfs   defaults          0     2
/dev/mapper/md0_crypt                     none            swap    sw                0     0

アレイが複数のドライブでマウントおよび起動されないようにするために、何が問題になる可能性があるかについてのアイデアはありますか?

2
BinaryShrub

結局、dropbear/busyboxには/ dev/btrfs-controlデバイスノードがありません。これは通常、udevによって設定されます。

dropbear(initramfs)にログインするときに自分で作成する必要があります。

# mknod /dev/btrfs-control c 10 234

https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_get_the_message_.22failed_to_open_.2Fdev.2Fbtrfs-control_skipping_device_registration.22_from_.22btrfs_dev_scan.22

1
BinaryShrub