6

我为 linux 内核编写了一个虚拟(ram 磁盘)块设备驱动程序。加载驱动程序后,我可以将其视为 /dev/mybd。

我可以使用 dd 命令成功地将数据传输到其上,成功比较复制的数据。

问题是当我在其上创建 ext2/3 文件系统时,我必须在 mount 命令中使用 -o 循环选项。否则挂载失败,结果如下:

mount:fs 类型错误、选项错误、mybd 上的超级块错误、缺少代码页或帮助程序或其他错误

可能是什么问题呢?请帮忙。

谢谢。

4

4 回答 4

3

嗯,如果它可以工作-o loop并且没有它不能工作,那么我要告诉你一个坏消息:你的“设备”实际上只是 /dev 中的一个普通文件。显示什么ls -l /dev/mybd?如果它的文件大小不为零,则它是一个常规文件,与您的驱动程序无关。

如果需要,可以使用mknod自己创建设备文件。

于 2010-06-07T05:07:10.503 回答
1

我看你又要重新开始了。作为关于您之前尝试的快速说明,您是否确保您的设备在 /dev 中显示为设备而不是字符设备?

于 2010-04-26T16:31:07.407 回答
0

循环设备用于在 linux 文件系统上挂载块特殊文件,将它们模拟为块设备。因此,安装会引发错误。

于 2010-04-20T11:23:02.040 回答
0

在安装之前在设备上创建一个文件系统:

mkfs -t ext2 /dev/mybd

或者

mke2fs /dev/mybd
于 2010-03-17T12:23:13.970 回答