Linux 文件系统启动记录

Linux 文件系统启动记录

1. 两个脚本

1.1 inittab

该脚本路径:/etc/inittab

在这里插入图片描述

基本inittab就是上述这张图这个形式,inittab是/sbin/init进程的配置文件;

语法形式:label:runlevel:action:process

1.1.1 label

id: 用来定义缺省的init运行的级别

si: 是系统初始化的进程

ln: 其中的n从1~6,指明该进程可以使用的runlevel的级别

ud:是升级进程

ca: 指明当按下Ctrl+Alt+Del时运行的进程

pf: 指当UPS表明断电时运行的进程

pr: 是在系统真正关闭之前,UPS发出电源恢复的信号时需要运行的进程

x: 是将系统转入X终端时需要运行的进程

上述例子中有使用:

  1. id
  2. si
1.1.2 运行级别

0: 关机 half

1: 单用户模式 singel user

2: 多用户模式 multi user , 不提供nfs服务 without nfs

3: 完全多用户字符模式 full multiuser text mod

4: 系统预留 officially undefined

5: 图形登录界面 graphical login

6: 重启 reboot

根据上述的runlevel情况来看,默认我们服务器都是采用level3,即支持多用户模式,且为命令行,而非图形界面;

1.1.3 action

boot: 在系统启动时运行,忽略runlevel
bootwait: 在系统启动时运行,等待init进程完成。忽略runlevel
ctrlaltdel: 当Ctrl+Alt+Del三个键同时按下时运行,把SIGINT信号发送给init。忽略runlevel
initdefault: 不要执行这个进程,它用于设置默认runlevel
kbrequest: 当init从键盘中收到信号时运行。这里要求键盘组合符合KeyBoardSigral(参见/usr/share/doc/kbd-*关于键盘组合的文档)
off: 禁止进入,因此该进程不运行
once: 每一个runlevel级别运行一次
ondemand: 当系统指定特定的运行级别A、B、C时运行
powerfail: 当init收到SIGPWR信号时运行
powerokwait: 当收到SIGPWD信号且/etc/文件中的电源状态包含OK时运行
powerwait: 当收到SIGPWD信号,并且init等待进程结束时运行
respawn: 不管何时终止都重新启动进程
sysinit: 在运行boot或bootwait进程之前运行
wait: 运行进程等待输入运行模式

我们有使用的就是sysinit和wait,也就是按照顺序执行;

1.2 fstab

该文件目录:/etc/fstab
在这里插入图片描述
这里的参数解析是咋玩的呢?option记录相关参数,在mount.c中被描述
pass代表不会被fsck检查,即不会做坏块查看操作;
proc和sysfs,是虚拟文件系统,可以将kernel内核中(内存)的操作状态以文件的形式提供给到用户查看

2. 挂载过程

理解完上述两个脚本后,基本建立如下认知过程:

  1. 系统在初始化加载内核过程中首先会将根文件系统挂载为只读形式;
  2. 执行/sbin/init进程执行上述inittab脚本时首先初始化根节点;
  3. 进行mount -a操作解析fstab脚本进行再次挂载操作

2.1 mount

mount -a 自动挂载 /etc/fstab中的内容

  1. 如果mount -a执行过,且fstab没有改动,则不会重新挂载
  2. 如果标记了noauto参数,则该条命令不会执行

查看mount实现源码:
在这里插入图片描述

3. 问题记录

  1. 将inittab中的根目录mount操作去除,放在fstab中是否可行?
    答:可行,实际测试确认,在inittab中去除后,添加到fstab中可以正常mount,且权限符合预期;
  2. 在post-build脚本中将inittab拷贝到target目录中,升级后没有用户登录程序出现
    答:说明在post-build拷贝进去的与正常编译生成的有差异,没有执行getty操作,code中搜索确认:在这里插入图片描述
    拷贝到对应目录后向程序内部添加了用户登录程序部分:在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值