admin管理员组

文章数量:1590507

目录

1 linux启动过程linux启动流程:

2 GRUB使用

3内核初始化

一、BIOS初始化和自检

POST(加电--加载ROM芯片中的BIOS启动代码--BIOS执行自检程序(初始化硬件并检测硬件是否工作正常)

BIOS:存在于ROM中,保存基本的输入输出程序,系统该信息设置,自检程序,系统启动自举程序

CMOS:存在于RAM中,保存实时时钟和 硬件配置信息和参数的设定按DEL可进入BIOS设置,CMOS保存这些设置

二、装载引导程序MBR(BIOS会读取CMOS的信息获得硬件配置和启动顺序)

BIOS会根据启动顺序 读取某硬件(HD CD-ROM USB等)的MBR启动引导程序(512b)并把控制权交给boot loader也就是交给了GRUB

MBR分3部分(如硬盘HD 的0磁盘0分区1扇区 512b)

主引导程序 boot loader  446b(GRUB程序安装在bootloader)

分区表partition tables    64b

校验位magic muber 55AA   2b

boot loader分类:GRUB是bootloader一种

LILO ARM用

GRUB PC和服务器用

三、GRUB启动引导阶段

找到BMR的boot loader也就找到了GRUB

GRUB引导过程:

加载stage1,stage1通常位于MBR中,用于装载stage2

加载stage1.5,用于识别文件系统

加载stage2,grub的核心程序

注意:stage1.5和stage2文件位于/boot/grub目录下

使用/boot/grub/grub.conf配置文件来加载linux内核

四、内核引导(加载内核)

1自动识别文件系统

2加载linux内核vmlinuz到内存

内核取得控制权,放到/boot (vmlinuz是一个gzip压缩文件,加载时需要使用gzip解压)

3加载initrd*.img镜像到内存(通常是加载USB,LVM,RAID,SCSI等设备模块和磁盘接口的驱动程序)

临时构建只读的/文件系统,在这个文件系统各种执行临时的init进程

临时init进程作用:

把硬件驱动运行起来,磁盘、声卡、网卡等关键驱动的加载

4 有了驱动,内核再去挂载真正的跟文件系统,内核吧控制权交给 /sbin/init进程

五、系统初始化和引导login

1系统初始化:

运行/sbin/init程序进行初始化(使用配置文件/etc/inittab和/etc/init目录下的文件),/etc/inittab设置系统的默认级别

*运行/etc/rc.sysinit

@获取网络环境

@初始化硬件

@设置主机名

@设备映射器及相关初始化

@初始化LVM

@文件系统检测

@启用磁盘配额和更新配额

@挂载设备(根据/etc/fstab配置文件进行挂载)

@清除开机过程中所产生垃圾文件

@启用交换分区

@将信息写入/var/log/dmesg文件

*运行/etc/rc.local

*按照设定的级别启动相关的服务,使用/etc/rc.d/rc*.d目录下的程序启动服务;*表示0-6的7个级别。

/etc/rc.d/rc*.d目录下的文件由启动状态(S 表示启动,K 表示不启动)、启动顺序、和启动服务程序三部分组成。

2引导用户登录login

*运行/sbin/mingetty登录程序

用户登录(输入用户名和密码)-->使用/etc/passwd和/etc/shadow检测正确性-->运行/etc/profile、~/.bash_profile、

~/.bashrc、/etc/bashrc

进入用户桌面,运行相应的桌面程序(gdm gnome桌面,kde kde桌面,xdm 启动X Windows)

练习:(1)在系统开机时自动设置别名rm='rm -fr',并检验是否生效

vim ~/.bashrc

(2)如果忘记密码怎么办?要求进入单用户模式将root用户密码删除

(3)将系统的默认级别设置为3

vim /etc/inittab

(4)将/boot所在的分区挂载从/etc/fstab文件里面删除,然后重启机器进行恢复。

GRUB的使用:

/boot/grub/grub.conf配置文件

-------------------------------

default=0    #设定默认启动的title的编号,从0开始

timeout=5    #等待时间 秒

splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz #背景图片

hiddenmenu   #隐藏菜单

#passwordlitao_59   #grub的密码

#password--md5密文  #grub的密码

titleCentOS (2.6.32-279.el6.x86_64)   #内核标题 或操作系统的名称。可改。

root (hd0,0)   #内核文件所在的设备 (hd磁盘,分区)

kernel /vmlinuz-2.6.32-279.el6.x86_64 roroot=UUID=46eb83e8-17fc-4de6-9d39-50a47216881a rd_NO_LUKS  KEYBOARDTYPE=pcKEYTABLE=us rd_NO_MD crashkernel=auto.UTF-8 rd_NO_LVM rd_NO_DM rhgbquiet  #内核路径和参数

initrd /initramfs-2.6.32-279.el6.x86_64.img #initrd路径(小根)

-------------------------------

------------------------------------------------------------------

启动流程2 GRUB界面init

------------------------------------------------------------------

如何生成MD5密文:

grub-md5-crypt

查看运行级别命令:

1:runlevel

2:who -r

查看内核版本号:

uname -r

1安装修复GRUB:

#grub

grub> root (hd0,0)指定ROOT(磁盘,分区)

grub> setup (hd0)安装grub(磁盘)

2安装修复GRUB:

#grub-install --root-directory=/ boot的父目录 /dev/sda1

3grub损坏时启动内核:

grub> find (hd0,0)查找内核所在分区

grub> root (hd0,0)

grub> kernel /路径

grub> initrd /路径

grub> boot启动

Kernel初始化过程:

1设备探测

2驱动初始化(可能从initrd(initramfs)文件装在驱动模块)

3以只读方式挂载根

4装在第一个进程init (PID:1)

/sbin/init:(/etc/inittab)

5.5 init传统 串行

6.3 upstart:ububtu开发 并行启动

7.0 systemd:并行启动

标识符:运行级别:什么情况下执行此行:要运行的程序

什么情况下:

initdefault默认

sysinit初始化

wait等待级别切换到此级别是执行

respawn程序终止时重新执行

/etc/rc.d/rc.sysinit

初始化流程 配置文件

/etc/rc.d/rc3

启动系统服务配置文件

------------------------------------------------------------------

启动流程脚本SysV服务脚本

------------------------------------------------------------------

SysV: /etc/rc.d/init.d

start | stop | restart | status

chkconfig:运行级别 ss kk

当chkconfig来为此脚本在rc#.d目录穿件链接时,运行级别表示默认

创建为S*开头的链接,除此之外的级别默认创建为K*开头的链接。

chkconfig命令:

查看独立进程:    chkconfig --list 进程名

加入进程 chkconfig --add 进程名

删除进程 chkconfig --del 进程名

设定服务开机启动或关闭:

chkconfig {--level指定级别} 服务名称 (ON|OFF)

默认2345

/etc/rc.d/tc.local

系统最后一个服务,可用于用户自定义开机启动的程序

/etc/inittab的任务

1设定默认级别

2运行系统初始化脚本

3运行指定运行级别对应的目录下的脚本

4设置重启组合键

5定义UPS电源

6启动虚拟终端(2345)

7启动图形界面)(5)

守护进程:

独立进程(httpd vsftp)  需要关联到运行级别

超级守护进程 xinetd (NFS) 不需要关联到运行级别

启动NFS:先启动xinetd  然后启动NFS

关闭NFS:先关闭NFS     然后关闭xinetd

开机启动NFS : chkconfig 进程名 (ON |OFF)

本文标签: 流程Linux