操作系统的启动流程内核

Posted skyzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统的启动流程内核相关的知识,希望对你有一定的参考价值。

操作系统的启动流程: 第1部分:硬件初始化 主板加电---->Bios自检(收集硬件信息,设置启动项)---->HD(本地硬盘)---->MBR(引导扇区) MBR=512字节=【446字节(grub第一阶段的代码)+64字节(分区表信息)+2字节(校验位)】 ---->bootloader(主引导程序)---->grub stage1[存放stage2的指针]---->stage1_5[桥梁]---->stage23 [/|kernel|initramfs存放的物理地址]---->...硬件初始化完毕 第2部分:操作系统初始化 kernel---->/sbin/init---->upstart事件---->/etc/init/rcS.conf---->/etc/rc.d/rc.sysinit[初始化操作系统,网络,selinux,hostname...] /etc/inittab---->/etc/rc.d/rc5.d/xxx(S-开机自启动|K-开机不自启动) /etc/fstab---->挂载相应的设备 /etc/rc.d/rc.local 操作系统启动读取的最后一个脚本文件 ---->login 如下是定义服务是否开机自启动 # chkconfig NetworkManager on # chkconfig --level 5 NetworkManager off grub引导管理: grub是操作系统的引导管理器,它是安装操作系统时由安装向导安装在MBR主引导扇区里的。 作用: 1、grub提供可引导的菜单 2、加载内核(驱动硬件) 3、将启动任务交给下一个引导程序 grub.conf的配置文件: default=0 默认情况下启动第几个菜单;0代表第一个;1代表第2个 timeout=5 默认的等待时间 splashimage=(hd0,0)/grub/splash.xpm.gz grub的背景图 hiddenmenu 是否隐藏菜单;默认隐藏 title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64) 菜单,可以自己定义 root (hd0,0) 指定kernel镜像和虚拟的文件系统在哪个盘上 第1块硬盘的第1个分区 kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_node1-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_node1/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=vg_node1/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-431.el6.x86_64.img 要正确引导操作系统,那么必须告诉grub kernel镜像在哪里,虚拟的文件系统在哪里,需要给kernel传递一些参数(root=/dev/sda3...) 问题1:root密码忘记了,怎么样进入到单用户模式 问题2:grub.conf文件丢失了,怎么办? 问题3:boot目录下所有的文件都丢失了,并且没有备份,怎么办? 思路: grub> 手动引导不起来的 1、利用光盘或者网络进入到修复模式 2、挂载挂盘重新安装kernel和grub 3、创建grub.conf文件在/boot/grub/ 4、重新启动操作系统 问题4:怎么样去阻止进入到单用户模式? vim /etc/grub.conf default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu password=redhat ---->加密 或者 password --md5 $1$fFHJH/$YkGZMqybmaH9xNbg5fdS8/ title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_node1-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_node1/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=vg_node1/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-431.el6.x86_64.img 内核升级: 1、rpm www.kernel.org 2、yum 3、源码包编译升级 步骤: 1、下载内核 linux-4.1.4.tar.xz 2、解压到指定目录里 # tar -xf linux-4.1.4.tar.xz # cd linux-4.1.4 3、根据需求配置编译安装 # make menuconfig 文本图形配置| 先安装:ncurses-devel # make # make modules_install install 安装模块 # make install 安装内核 4、重启系统使用新内核 模块操作相关命令: lsmod 查看系统当前所有激活的模块 lsmod |grep 8139 modprobe -l|grep 8139 查看当前内核所支持的相关模块 modprobe 8139cp 激活相应模块 modprobe 8139too lsmod |grep 8139 depmod -a 模块之间产生依赖关系 modprobe -r 8139too 删除模块(非激活)

以上是关于操作系统的启动流程内核的主要内容,如果未能解决你的问题,请参考以下文章

Tiny4412 Android 启动流程

操作系统的启动流程内核

Linux的系统启动流程

13.1 CentOS系统启动流程介绍

CentOS系统启动流程

CentOS系统启动流程