“/proc/filesystems“中的rootfs消失之谜

2024-04-26 03:38

本文主要是介绍“/proc/filesystems“中的rootfs消失之谜,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分析一个文件系统的问题的时候遇到一个很奇怪的现象,在tina中查看 /proc/filesystems节点时,可以发现系统中注册的文件系统类型是包括rootfs的.

但当我无意间在ubuntu中做同样测试时, 却找不到rootfs.

找了另一台ubuntu主机做测试,发现rootfs又出现了

本着刨根问底的精神,想找出这个诡异现象的原因,如果是文件系统设计逻辑上的改动引起的,那工作中肯定会遇到,找到原因,有备无患.

在控制台中 cat /proc/filesystems显示的逻辑在内核代码中是这样的,你会发现关键的变量是file_systems变量.

 系统初始化阶段,所有支持的文件系统类型都要在file_systems对象中登记.

基于以上信息,我们查一下rootfs失而复得的原因, 首先我们看一下tina上的内核4.9.191

Linux 4.9.191

Linux5.3.4

所以,我们可以看到,v5.3.1版本的没有通过调用register_filesystem将rootfs_fs_type注册进 file_system链表,那是怎么使用的呢?原来是声明后,直接通过全局变量的方式引用进行挂载.

而v4.4则完全不同 ,它首先通过register_filesystem注册进系统,然后使用的时候再通过get_fs_type获取rootfs_fs_type的引用,最终完成rootfs挂载.

由于新的版本bypass掉了注册这个环节,所以当然无法从cat /prov/filesystems节点中得到rootfs信息.

这种变化是何时发生的呢?经过一番查找,找到了针对这个问题的变更提交fd3e007f6c6a0

另外,根据git describe的信息,这个变更发生在v5.2-rc1版本之后的第61个提交上.

至此,知道了整件事情的来龙去脉.


结束! 

这篇关于“/proc/filesystems“中的rootfs消失之谜的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/936616

相关文章

C#下设置TextBox默认显示文字,点击后消失

TextBox的ID为account和password //用户输入account.Attributes.Add("Value", "请输入用户名");account.Attributes.Add("OnFocus", "if(this.value=='请输入用户名') {this.value=''}");account.Attributes.Add("OnBlur", "if

zm-tree-org 数据量过大时,全部展开后,根节点点击收缩,树形消失

zm-tree-org 数据量过大时,全部展开后,根节点点击收缩,树形消失 <zm-tree-orgref="tree"@on-expand="onExpand"</zm-tree-org>export default {methods: {onExpand(e, data) {<!-- 当为根节点,且根节点为闭合时 -->if (data.root === true && data.expa

【Get深一度】对消失矩的理解

Topic: 【原创】对消失矩的理解   1.【原创】对消失矩的理解Posted by: chuntian Posted on: 2005-09-14 10:13 我们通常用的函数dbn中的n就是这个小波函数的消失矩; 消失矩越大,它的支撑长度就越大,通常是支撑长度不少于2*n-1的; 消失矩越大,对应的滤波器越平坦,而且小波函数的振荡很强. 光滑函数在利用小波展开后的零点越多,

【Get深一度】小波分析概念2——消失矩阶数是什么意思,通俗解释

实际应用中,基本小波不仅要满足容许条件,还要施加所谓的消失矩(Vanishing Moments)条件原因:使 尽量多的小波系数为 零 或者产生 尽量少 的非零小波系数目的:有利于数据压缩和消除噪声。 小波的消失矩的定义:若

自定义Toast工具类ToastUtil防止多次点击时Toast不消失

有时候我们点击一个按钮出现toast但是当不小心多次点击时,toast会重复出现,这时候通过下面的ToastUtil类可以实现不小心多次点击的问题。 public class ToastUtil {/* private Context context;public ToastUtil(Context context) {this.context=context;}*/private stati

idea的maven project消失解决方案

方案一:点击菜单栏View->Tool Windows->Maven projects 方案二:File -> Settings -> Plugins -> Installed ->找到下面两个并勾选->然后重启 1,Maven Integration 2,Maven Integration Extension

vue路由Router设置父路由默认选中第一个子路由,切换子路由让父路由激活高亮效果不会消失

import Vue from 'vue';import VueRouter from 'vue-router';// 导入组件import Home from '../views/Home.vue';import Parent from '../views/Parent.vue';import Child1 from '../views/Child1.vue';import Child

Linux C 内核编程 /proc 编程例子

直接上代码 proc_demo.c内核版本: 5.4.0-150-generic #include <linux/module.h>#include <linux/sched.h>#include <linux/proc_fs.h>#include <linux/seq_file.h>#include <linux/uaccess.h>#include <linux/slab.h>s

算法-- 找到所有数组中消失的数字(Java)

题目: 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。示例 1:输入:nums = [4,3,2,7,8,2,3,1]输出:[5,6]示例 2:输入:nums = [1,1]输出:[2]提示:n == nums.length1 <= n <= 105

基因组学的未解之谜

基因组学的未解之谜     随着DNA测序技术的发展和广泛应用,揭开了诸多令人困惑的“科学谜团”,同时也遇到了更复杂、更深刻、更具有挑战性的新问题。   遗传学和物种进化理论是生物学的几大基石之一。DNA测序技术从根本上解决了发现遗传变化的手段,使我们几乎可以肆无忌惮地获取任何物种和其群体的遗传信息。我们同时也要思考:生物学,尤其是基因组学,还有那些未解之谜?这里我们不妨先探讨其中的三个。