我已经安装了Linux 3.5内核并编译了e2fsprogs。我有自己的 ext3 文件系统版本 - 可以说它是 myfs。我也编译了myfs。现在我有几个问题:
- 如何插入myfs模块以及在哪里?当我执行 modprobe myfs (.ko 文件)时,它说找不到模块。当我简单地执行 insmod myfs.ko 时,它可以工作,但我不确定它把 .ko 文件放在哪里。当我尝试在已安装的文件夹中创建目录时,我添加的显示(在 mkdir 调用上)也没有显示(内核调试级别也设置为 8)。
myfs 目录中的 Makefile 如下所示:
KERNEL_TREE ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
obj-m := iext3.o
iext3-objs := balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o \
ioctl.o namei.o super.o symlink.o hash.o resize.o ext3_jbd.o \
xattr.o xattr_user.o xattr_trusted.o acl.o xattr_security.o icefs.o \
transaction.o commit.o recovery.o checkpoint.o revoke.o journal.o
all:
make -C $(KERNEL_TREE) M=$(PWD) modules
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions *.markers *.order *.symvers
我正在从我自己的目录编译 myfs:/home/myname/soft/myfs。
另外,我在 /lib/modules/linuxversion/kernel/fs/ 中没有看到任何 ext2/ext3/ext4 目录——不确定这是对还是错。
- 安装工作正常。我可以通过执行 df -a 看到 myfs 已安装在 /dev/sda3 上。当我卸载时,它说 - umount: /home/..../mnt: not Mounted 然后如果我执行 df -a 文件系统将被卸载。这很奇怪,因为它卸载了但仍然抛出错误。
一些背景: 我拥有一切的目录:/home/soft myfs/ mye2fs/ Linux-3.5/ mnt/
步骤1:cd Linux-3.5 --> 1) make 2) make module 3) make module_install 4) make install 5) 重启
Step2:编译myfs(我的ext3版本)并插入myfs内核模块 --> cd myfs/ --> make --> insmod myfs.ko
Step3:编译mye2fs为mkfs
第四步:使用 mye2fs 在设备上创建 myfilesystem --> mount --> 测试放在 myfs 模块下的 printk 语句