卡在 initramfs 和 btrfs 根阵列中

卡在 initramfs 和 btrfs 根阵列中

我正在尝试使用 btrfs raid1 设置一个包含三个驱动器的系统,但是如果我的 btrfs 根目录中有多个驱动器,我就会卡在 initramfs 中。

我的三个分区:/dev/mapper/sda3_crypt | sdb3_crypt| sdc3 crypt

我确信所有三个驱动器都已解锁和映射,并且看起来 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

有什么想法可以解释是什么问题导致我的阵列无法安装和启动多个驱动器?

答案1

事实证明,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

相关内容