码迷,mamicode.com
首页 > 系统相关 > 详细

linux系统引导流程

时间:2015-07-07 22:40:28      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:

系统引导流程
********************************************************************
固件 firmware(CMOS/BIOS)--->POST加电自检

自举程序BootLoader(GRUB)--->载入内核

载入内核Kernel  ----->驱动硬件

启动进程init PID=1(恒为一)

读取执行配置文件/etc/inittab

同步软硬件时钟
date软件时钟 hwclock硬件时钟
更改软件时钟 # date 070519022015.10
更改硬件时钟 # hwclock --set --date="9/22/96 16:45:05"
软硬件时钟同步
--set             set the rtc to the time given with --date
--hctosys     set the system time from the hardware clock
--systohc     set the hardware clock to the current system time

Linux运行级别
********************************************************************
# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

inittab文件剖析
********************************************************************
在inittab中,所有条目采取以下格式:
    id:run-levers:action:process
    id:标识符,一般为两位字母或数字
    run-levers:指定运行级别,可以指定多个
    action:指定运行状态
    process:指定要运行的脚本/命令

action常用取值:
    initdefault:指定系统缺省启动的运行级别
    sysinit:系统启动执行process中指定的命令
    wait:执行process中指定的命令,并等其结束再运行其他命令
    once:执行process中指定的命令,不等待其结果
    ctrlaltdel:按下Ctrl+Alt+Del时执行process指定的命令
    powerfail:当出现电源错误时执行process指定的命令,不等待其结果
    powerokwait:当当电源恢复时执行process指定的命令
    respawn:一旦process指定的命令终止,便重新运行该命令

id:3:initdefault:    
    指定系统默认运行级别3,运行X Window,则改为5
si::sysinit:/etc/rc.d/rc.sysinit
    启动脚本/etc/rc.d/rc.sysinit,完成系统服务程序启动

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
    判断默认运行级别,调用/etc/rc.d/rc脚本,执行相应运行级别目录中的
服务程序,完成相应运行级别的初始化设置

/etc/rc.d/rc[0123456].d
    分别存放对应于运行级别的服务程序脚本的符号链接,链接到init.d目录中的相应脚本

/etc/rc.d/rc3.d
    文件--> S12syslog、K01dnsmasq
    S-start    启动时执行
    K-kill    注销时执行
    数字    启动的顺序 越小越优先启动
    脚本名称

例:取消某些无需启动的服务
mv S03vmware-tools    s03vmware-tools(小写s系统不会自启)

1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
    6个不同的终端,按ctrl+alt+F1-F6,F7回到X-Window

/etc/rc.d/init.d
    该目录下包含各个运行级别的服务程序脚本
手动启动/关闭服务
    /etc/init.d=====>/etc/rc.d/init.d
    # /etc/rc.d/init.d/sshd start

设置自启动程序
*********************************************************************
ln -s
    ln -s /etc/rc.d/init.d/msg.script  /etc/rc.d/rc3.d/S100msg.script
chkconfig
    chkconfig --list sshd
    chkconfig --level 3 sshd on
ntsysv
    ntsysv --level 3

运行dmesg检查引导期间的错误
    #dmesg | grep eth0

GRUB
********************************************************************
GRUB的配置文件默认为
    /boot/gurb/grub.conf
    软连接文件 /etc/grub.conf
default 定义缺省启动系统
timeout 定义缺省等待时间
splashimage 定义GRUB界面图片
    (hd0,0)------- /boot 所在分区
hiddenmenu 隐藏菜单
title 定义菜单项名称
root 设置GRUB的根设备即内核所在的分区
kernel 定义内核文件所在位置
initrd 命令加载镜像文件

GRUB命令
功能键:
e:编辑当前的启动菜单项
c:进入GRUB的命令行方式
b:启动当前的菜单项
d:删除当前行
ESC:返回GRUB启动菜单界面,取消对当前单项所做的任何修改

单用户模式应用
案例:root密码忘记
进入单用户重设root密码,方法如下:开机进入GRUB界面,按e进入
编辑模式,选择kernel行,再次按e,在新的界面最后一行输入1或s,即可
进入单用户模式。
修改密码:sh-3.2# passwd root

设置Grub密码
1.使用GRUB自带的grub-md5-crypt命令
#grub-md5-crypt
Password:
2.在GRUB交互命令行界面中使用md5crypt命令
# grub
grub> md5crypt
Password:
$1$9vWzJ$wrG0fHdlSCXt7E1x4AWod.
在GRUB配置文件,加入下行:
password --md5 $1$9vWzJ$wrG0fHdlSCXt7E1x4AWod.
--md5参数表示口令是MD5加密的。

GRUB修复
当开机进入grub界面但没有菜单,只剩下一个grub>提示符,解决方法:
grub> cat /boot/grub/grub.conf(为查看参数)
grub>root  (hd0,0)
grub>kernel  /vmlinuz-2.4.18-14 ro root=LABEL=/
gurb>initrd  /initrd-2.4.18-14.img
grub>boot

GRUB修复模式
解决过程
1.把安装盘放入光驱,然后重新启动机器,在bios中把系统用光驱来引导
2.等安装界面出来后,按F5键,也就是linux rescue模式
然后在boot下输入
linux rescue
然后就是回车一下。
sh# chroot /mnt/sysimage


linux系统引导流程

标签:

原文地址:http://www.cnblogs.com/gimin/p/4628635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!