¶1、linux的启动流程
1 | 加载BIOS的硬件信息与进行自我测试,依据设置取得第一个可启动的设备 |
¶2、BIOS,boot loader,kernel加载
1 | BIOS,MBR:开机时,系统自动加载BIOS,并通过BIOS加载CMOS,取得各个硬件配置,之后BIOS进行开机自检,执行硬件检测初始化,,配置PnP设备,定义启动顺序,进行启动设备数据读取。 |
¶3、第一个进程init及配置文件/etc/inittab与runlevel
1 | run-level:执行等级 |
¶4、init处理系统初始化流程(/etc/rc.d/rc.sysinit)
¶主要工作:
1 | 1、取得网络环境与主机类型 |
¶5、启动系统服务与相关的启动配置文件(/etc/rc.d/rc(n)& /etc/sysconfig)
1 | /etc/rc.d/rc\*:K开头的文件是表示stop,S开头的文件表示start,其后数字表示启动顺序 |
¶6、启动中需要的配置文件
1 | /etc/modprode.conf:指定系统内硬件所使用的模块 |
¶7、内核与内核模块
¶位置:
1 | 内核:/boot/vmlinuz or /boot/vmlinuz-version |
¶内核模块与依赖性:
1 | depmod -Ane:创建modules.dep,记录内核支持的模块的各项依赖性 |
¶查看内核模块
1 | lsmod:模块名称,模块大小,模块是否被其他模块所用 |
¶加载与删除
1 | insmod /lib/modules/$(uname -r) 文件路径 // 加载模块 //不主动分析依赖性 |
¶8、grub
1 | boot loader 的程序代码执行与设置值加载分成两个阶段 |
¶9、Initrd,创建initrd文件
1 | mkinitrd -v --with=模块名称 initrd文件名 内核版本 :重制initrd文件 |
¶10、测试与安装grub
1 | 如果机器没有安装grub,可以尝试安装一个 |
¶安装步骤:
1 | 1、grub-install [--root-dirrctory=DIR](安装实际目录) INSTALL_DEVICE(安装设备) |
¶grub菜单加密:
1 | 1、grub-md5-crypt:产生md5密文; |
¶11、启动过程问题解决
1 | 忘记root密码:重新启动,进入grub,e编辑,进入单用户维护模式,修改passwd。 |