do-kern-mount
2015-09-19 09:57:21 2 举报
do-kern-mount是一个用于挂载内核镜像的命令行工具,它主要用于在Linux系统中加载和卸载内核模块。该工具通过读取内核映像文件(例如vmlinuz)来启动系统,并将所需的内核模块动态加载到内存中。do-kern-mount还支持多种不同的挂载选项,如只读、可写等,以满足不同场景下的需求。此外,该工具还可以与initrd映像文件一起使用,以实现更灵活的系统启动方式。总之,do-kern-mount是Linux系统管理员在管理和维护内核时不可或缺的工具之一。
作者其他创作
大纲/内容
vfsmount结构中的mnt_mountpoint指向文件系统的挂载点,是个dentry目录项结构指针;mnt_parent指向该挂载点所在文件系统(即所谓的”父文件系统“)的vfsmount;mnt_root指向需要挂载的具体文件系统的根目录,也是个dentry目录项结构指针。
为rootfs建立超级块,建立根目录/,将rootfs挂载到/
建立rootfs的超级块,只是wrap函数,不过是指明了ramfs_fill_super(用于填充超级块内容的回调函数)
...................
用刚才的回调函数ram_fill_super来填充超级块
fs/super.c vfs_kern_mount()
fs/namespace.c simple_set_mnt()
把超级块中管理的rootfs根文件系统的根目录\"/\",填充到vfsmount中的mnt_root。
fs/ramfs/inode.c roofs_get_sb()
将超级块关联到vfsmount
fs/super.c get_sb_nodev()
超级块用于描述整个文件系统的信息,从元信息的角度(不考虑文件系统中存放的内容信息,仅就文件系统自身而言),超级块就代表了整个文件系统。为此,在挂载rootfs文件系统时,肯定要创建超级块。对于常规设备文件系统来说,内核需要从存储介质上读取超级块信息。而rootfs是基于缓存的文件系统,没有物理存储介质 ,所以需要模拟出一个超级块来,调用get_sb_nodev()来做这件事。
挂载点所在的文件系统就是rootfs,把自己挂载到自己的根目录”/“上,万物总有开端嘛,起点总是自递归的。
此时mnt-mnt_root中是rootfs根文件系统的根目录。这个根目录也是rootfs的挂载点。
fs/super.c do_kern_mount()
do_kern_mount只是wrap函数
0 条评论
下一页