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