我为 linux 内核编写了一个虚拟(ram 磁盘)块设备驱动程序。加载驱动程序后,我可以将其视为 /dev/mybd。
我可以使用 dd 命令成功地将数据传输到其上,成功比较复制的数据。
问题是当我在其上创建 ext2/3 文件系统时,我必须在 mount 命令中使用 -o 循环选项。否则挂载失败,结果如下:
mount:fs 类型错误、选项错误、mybd 上的超级块错误、缺少代码页或帮助程序或其他错误
可能是什么问题呢?请帮忙。
谢谢。
我为 linux 内核编写了一个虚拟(ram 磁盘)块设备驱动程序。加载驱动程序后,我可以将其视为 /dev/mybd。
我可以使用 dd 命令成功地将数据传输到其上,成功比较复制的数据。
问题是当我在其上创建 ext2/3 文件系统时,我必须在 mount 命令中使用 -o 循环选项。否则挂载失败,结果如下:
mount:fs 类型错误、选项错误、mybd 上的超级块错误、缺少代码页或帮助程序或其他错误
可能是什么问题呢?请帮忙。
谢谢。
嗯,如果它可以工作-o loop
并且没有它不能工作,那么我要告诉你一个坏消息:你的“设备”实际上只是 /dev 中的一个普通文件。显示什么ls -l /dev/mybd
?如果它的文件大小不为零,则它是一个常规文件,与您的驱动程序无关。
如果需要,可以使用mknod
自己创建设备文件。
我看你又要重新开始了。作为关于您之前尝试的快速说明,您是否确保您的设备在 /dev 中显示为块设备而不是字符设备?
循环设备用于在 linux 文件系统上挂载块特殊文件,将它们模拟为块设备。因此,安装会引发错误。
在安装之前在设备上创建一个文件系统:
mkfs -t ext2 /dev/mybd
或者
mke2fs /dev/mybd