无法访问使用 mdadm 创建的设备

无法访问使用 mdadm 创建的设备

/dev我在using下创建了两个块设备mknod,当我尝试使用这两个设备创建两个 RAID 设备时,出现此错误:

mdadm: cannot open /dev/test_dev: No such device or address

我已经创建了设备test_devtest_dev_1如下所示:

mknod /dev/test_dev b 500 1
mknod /dev/test_dev_1 b 400 2

使用的 RAID 命令是:

mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/test_dev /dev/test_dev_1

答案1

文件“设备节点”只是/dev某些内核设备驱动程序的“指针”或“链接”(滥用这个词)。就像符号链接有一个名称并包含打开链接时获得的另一个名称一样,设备节点也有一个名称(*)并包含主设备号和次设备号形式的设备标识符。

因此,当我们说类似/dev/sda代表第一个硬盘驱动器时,我们实际上是指它是具有主次编号 (8, 0) 的设备节点的通用名称,这恰好是硬盘驱动器驱动程序使用的固定编号对于第一个硬盘。

虽然我们可以创建另一个也指向 (8, 0) 的节点,但仅创建一个指向某个随机设备号的节点是行不通的。如果该号码未被使用,则没有驱动程序来处理访问请求;更糟糕的是,如果被完全不相关的东西使用,结果可能很有趣,也可能完全有问题。

鉴于内核文档提到范围 384 到 511 仅作为动态分配给字符设备,您似乎不太可能在那里找到块设备驱动程序。

如果您想创建 RAID 阵列,则必须将其指定为使用某些现有设备。驱动器、分区或类似设备(请参阅 LVM),或者最终由文件备份的循环设备。看:

相关内容