Linux系统启动流程和grup
①POST -->② Boot Sequence(BIOS) -->③ Boot Loader (MBR) --> ④Kernel(ramdisk) --> ⑤init(/sbin/init) -->⑥系统初始化脚本 -->
⑦ 启动终端
①POST -->
(Power-on self test),运行主板芯片中的代码cpu的寻址重ROM开始 负责检测系统外围关键设备是否正常② Boot Sequence(BIOS)
Boot sequence(引导加载次序)寻找启动设备, 第一个有引导程序的设备即为本次启动用到设备。③ Boot Loader (MBR,GRUB)
MBR(Master Boot Record)的缩写。硬盘的0柱面、0磁头、1扇区称为主引导扇区。它由三个部分组成,主引导程序(Bootloader)、 硬盘分区表DPT(Disk Partition table)和硬盘有效标志(Magic number 55AA)
GRUB:GRand Unified Bootloader
grub引导也分为两个阶段stage1、stage1.5阶段和stage2阶段 stage1是直接被写入到MBR中去的,为了引导stage2 stage1.5 位于boot基本磁盘分区中为识别内核文件所在的文件系统提供文件系统识别扩展 stage2 位于boot基本磁盘分区中GRUB的引导程序 grub的配置文件 /boot未独立分区:/boot/grub/grub.conf /boot独立分区:/grub/grub.conf④Kernel(ramdisk)
stage2被载入内存执行时,它首先会去解析grub的配置文件/boot/grub/grub.conf, 然后加载内核镜像到内存中,并将控制权转交给内核。 而内核会立即初始化系统中各设备并做相关的配置工作,其中包括CPU、I/O、存储设备等⑤init(/sbin/init)
加载各种存储介质相关的设备驱动程序。当所需的驱动程序加载完后,会创建一个根设备,然后 将根文件系统rootfs以只读的方式挂载。这一步结束后,释放未使用的内存,转换到真正的根文件系统上面去,同时运行/sbin/init程序,执行系 统的1号进程。此后系统的控制权就全权交给/sbin/init进程了。⑥系统初始化脚本
初始化系统 /sbin/init进程是系统其他所有进程的父进程,当它接管了系统的控制权先之后, 它首先会去读取/etc/inittab文件来执行相应的脚本进行系统初始化,装载模块,设置网络等。 主要包括以下工作: 1、执行系统初始化脚本(/etc/rc.d/rc.sysinit) 2、对系统进行基本的配置 3、以读写方式挂载根文件系统及其它文件系统 4、到此系统算是基本运行起来了 5、后面需要进行运行级别的确定及相应服务的启动⑦ 启动终端等待用户登录
GRUB运用
Grub的功能: 1.选择要启动的内核或系统 隐藏交互式接口 2.交互式接口 e: 编辑模式 3.基于密码保护 启用内核映像 定义在响应title下 传递参数(进入编辑模式) 在配置文件中 输入 password --md5 密码 定义在全局段中 1、root密码忘记 ①、进入单用户模式; ②、在所登陆单用户模式下用“passwd root“即可以修改root密码; 2:/etc/grub.conf文件损坏 如果/etc/grub.conf文件损坏,导致系统无法启动, 进入GRUB的命令行模式,手工重新引导GRUB即可。 ①、进入GRUB命令行模式; ②、依次手动键入以下命令并回车(cat /etc/grub.conf命令查看配置文件) root 指定启动分区 kernel 指定内核所在位置 initrd 指定镜像文件 (可以用tab补全) 3:/etc/inittab文件丢失 如果/etc/inittab文件丢失,系统将无法启动, 这种故障只能通过linux安装光盘进行修复。 ①、在BIOS程序内设置以光盘启动; ②、键入linux rescure回车进行系统修复 ③、根据提示执行相应操作步骤,然后进入命令提示符, 根据提示改变根分区目录chroot /mnt/sysp_w_picpath; ④、恢复/etc/inittab文件(通过备份恢复); ⑤、exit命令退出,系统自动重新引导,完成修复;摘要 grub.conf配置文件语法: default=#:指定默认启动的内核或os timeout=#:等待用户选择要启动的内核或os的时长,单位为秒钟 splashp_w_picpath= :指定使用的背景图片 hiddenmenu:隐藏菜单 title root(hd0,0) (Device Part) Device(磁盘)表示方式:在grub中,统统以hd开头, 并紧跟一个数字做各磁盘设备的标记,从0开始 part表示方式:代表分区,从0开始编号 kernel 指定内核文件及传递给内核的参数 参数:ro root=设备文件,quiet 静默模式输出 initrd 文件:通常为cpio归档,并使用gzip压缩,通常以.img作为文件后缀名 grub的安装: 第一种方式 #grub grub root(hd0,0) grub setup(hd0) grub quit 第二种方式: # chroot /mnt/sysp_w_picpath # grub-install --root-directory=/ /dev/sda grub接口 title:操作系统或内核的标题 root:设定内核文件所在的分区为grub的根 kernel:定义要使用的文件,后面可以附加传递给内核的启动参数 initrd:指定为内核提供额外驱动等功能的ram disk或ram fs文件
转载于:https://blog.51cto.com/zhongshixun/1691467