/lib/modules/linux version/kernel/fs/에는 ext2/ext3/ext4 디렉토리가 없습니다.

/lib/modules/linux version/kernel/fs/에는 ext2/ext3/ext4 디렉토리가 없습니다.

Linux 3.5 커널을 설치하고 e2fsprogs를 컴파일했습니다. 나는 내 자신의 ext3 파일 시스템 버전을 가지고 있습니다. 이것이 myfs라고 가정해 보겠습니다. 나는 또한 myfs를 컴파일했습니다. 이제 몇 가지 질문이 있습니다.

  1. 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

나는 내 디렉토리인 /home/myname/soft/myfs에서 myfs를 컴파일하고 있습니다.

또한 /lib/modules/linuxversion/kernel/fs/에 ext2/ext3/ext4 디렉토리가 표시되지 않습니다. 이것이 맞는지 틀린지 확실하지 않습니다.

  1. 설치가 잘 작동합니다. 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) 다시 시작

2단계: myfs(내 ext3 버전)를 컴파일하고 myfs 커널 모듈 --> cd myfs/ --> make --> insmod myfs.ko를 삽입합니다.

3단계: mye2fs를 mkfs로 컴파일

4단계: mye2fs를 사용하여 장치에 myfilesystem 생성 --> 마운트 --> myfs 모듈 아래에 있는 printk 문 테스트

관련 정보