do-kern-mount
2015-09-19 10:04:10 5 举报
do-kern-mount是一个用于挂载内核镜像的命令行工具。它通常在Linux系统中使用,用于将内核映像文件(如vmlinuz)和初始化ramdisk映像文件(如initrd.img)挂载到特定的目录,以便在启动过程中访问这些文件。这对于自定义内核或在系统启动时执行特定操作非常有用。使用do-kern-mount,您可以选择不同的挂载选项,如只读、可写等,以满足您的需求。总之,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 条评论
下一页