Linux 系统引导流程

系统引导流程

固件 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运行级别

//文件位置 /etc/inittab
# 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:5:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0

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

 

posted on 2017-06-28 15:49  gimin  阅读(212)  评论(0)    收藏  举报