最近尝试了一个好东西,今天给大家分享一下。主要实现在Ubantu10.10系统上编写一个sbull驱动,将一段ram空间模拟为disk使用。并在这个disk上建立文件系统。
1、 将文件夹blkdev-2.6.35复制到linux环境中,如:/home/linux/workdir/test
2、 编译
linux@ubuntu:~/workdir/test/blkdev-2.6.35$ make
3、通过insmod命令将模块加入内核
linux@ubuntu:~/workdir/test/blkdev-2.6.35$sudo insmod ./blkdev.ko
4、#sudo fdisk /dev/blkdeva
出现磁盘分区界面,选择m出现帮助信息
<img id="aimg_Cn8Ws" class="zoom" file="http://files.chinaaet.com/images/blog/2015/03/13/1550311882869.png" lazyloadthumb="1" border="0" alt="" />
选择n添加新的分区
<img id="aimg_q9o9F" class="zoom" file="http://files.chinaaet.com/images/blog/2015/03/13/1550777548719.png" lazyloadthumb="1" border="0" alt="" />
选择p建立一个新的主分区
选择w,保存分区信息
<img id="aimg_xsSf6" class="zoom" file="http://files.chinaaet.com/images/blog/2015/03/13/1553501017809.png" lazyloadthumb="1" border="0" alt="" />
5、格式化disk
#mkfs.ext2 /dev/blkdeva1
6、挂载文件系统
#mkdir mnt
#sudo mount –t ext2 /dev/blkdeva1 mnt
7、思考:如果分区后没有及时挂载文件系统(>30s),设备为何会失效。
8、修改模式为RM_NOQUEUE测试,同样可以同样的功能(因为是ram,所以可以不
需要quque)
enum {
RM_SIMPLE = 0, /* The extra-simple request function */
RM_FULL = 1, /* The full-blown version */
RM_NOQUEUE = 2, /* Use make_request */
};
9、修改模式为RM_FUL、RM_NOQUEUE 测试,同样可以正常运行
春天真的来了,万物复苏,一切都会好起来!
—————————————————————————————————————— |