• 幕客老师召集小伙伴
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

系统引导流程

系统启动
========================================================

一、引导过程简图

二、引导过程
第一阶段:BIOS
检查并初始化硬件(POST)
确定引导的设备,访问系统中的硬盘或CD-ROM的第一个扇区硬盘上第0磁道第一个扇区,这就是MBR,也就是Master Boot Record,即主引导记录,加载Boot Loader.

第二阶段:GRUB (Boot Loader)
作用: 加载Kernel和Initial RAM Disk   /boot/grub/grub.conf
Kernel /boot/vmlinuz-3.12.7
Initial RAM Disk /boot/initramfs-3.12.7.img 提供虚拟根文件系统

第三阶段:Kernel
作用: Kernel检查并驱动硬件,启动进程/sbin/init
提示: Kernel为了加载驱动(/lib/modules/`uname -r`),需要挂载/分区(根据grub.conf中内核参数)
kernel /vmlinuz-3.12.7-tianyun ro root=UUID=9d1ea0fb-1bc2-49fe-b39a-6a92b8649a3a

第四阶段:init
==on “startup”==
/etc/init/rcS.conf
/etc/rc.d/rc.sysinit 系统初始化,如加载网络,LVM,RAID,QUOTA…
/etc/inittab 设置初始的运行级别
==on “runlevel”==
/etc/init/rc.conf
/etc/rc.d/rc $RUNLEVEL
/etc/rc.d/rc[0-6].d/
==on “rc”==
/etc/init/start-ttys.conf
/etc/init/prefdm.conf
========================================================
# init [0-6] 切换运行级别
# who -r 查看当前运行级别
# runlevel 查看当前运行级别
# chkconfig –list 查看所有进程在各个运行级别的运行状态
# chkconfig sshd –list
# chkconfig sshd off 
# chkconfig sshd on 设置sshd进程在各个运行级别默认启动
# chkconfig –level 45 sshd on 
========================================================
作业1: 将系统启动默认的启动级别设置为3
作业2: 将进程smartd和bluetooth设置为在所有级别不启动
作业3: 将当前级别切换到级别5
作业4: 开机挂载iso文件(/etc/rc.d/rc.local)
修改rc.local文件
/bin/mount -t iso9660 -o loop /opt/download/rhel-server-6.4-x86_64-boot.iso /opt/iso

三、Boot Loader: GRUB
作用:加载内核
Stage1: 主程序,安装在MBR(446Byte)
Stage2:   配置文件,文件系统中/boot/grub/grub.conf
========================================================

[root@jeson ~]# vim /boot/grub/grub.confdefault=1
timeout=5
splashimage=(hd0,1)/grub/splash.xpm.gz
hiddenmenu
title RedHatEnterpriseLinuxServer(3.12.7-tianyun)
        root (hd0,1)
        kernel /vmlinuz-3.12.7-tianyun ro root=UUID=9d1ea0fb-1bc2-49fe-b39a-6a92b8649a3a rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-3.12.7-tianyun.img
title RedHatEnterpriseLinux(2.6.32-358.el6.x86_64)
        root (hd0,1)
        kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=9d1ea0fb-1bc2-49fe-b39a-6a92b8649a3a rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-358.el6.x86_64.img
title WindowsServer2008
rootnoverify	(hd0,0)
   	chainloader +1========================================================
root (hd0,0)//root指令确定引导分区, (hd0,0)第一块硬盘的第一个分区
root=/dev/sda2	//root内核参数,用于指定/分区

方式一:
title Red Hat Enterprise Linux Server (3.12.7-tianyun)
        root (hd0,0)
        kernel /vmlinuz-3.12.7-tianyun ro root=/dev/sda2
        initrd /initramfs-3.12.7-tianyun.img

方式二:
title Red Hat Enterprise Linux Server (3.12.7-tianyun)
        kernel (hd0,0)/vmlinuz-3.12.7-tianyun ro root=/dev/sda2
        initrd (hd0,0)/initramfs-3.12.7-tianyun.img

在整个系统的启动过程中,有三次挂载 /
第一次: 由initramfs提供的虚拟根
第二次: 由kernel以 只读 的方式挂载 / , 为了使用/lib/modules下的驱动模块,从而驱动硬件
第三次: init做系统初始化时(/etc/rc.d/rc.sysinit),/etc/fstab以 读写的式挂载 /

GRUB设置修改口令
1. 生成MD5口令
# grub-md5-crypt
# grub-md5-crypt >>/boot/grub/grub.conf
# grub-md5-crypt |tee -a /boot/grub/grub.conf
2. 配置grub.conf,写入如下内容。
password –md5 $1$r/zbX1$oKJY8oUvQmFtbk5RL15q2. \\注意顺序
========================================================
作业1: 将grub的等待时间设置为1
作业2: 修改title
作业3: 注释掉hiddenmenu和图片背景
作业4: 系统启动时,通过grub传递内核参数 selinux=0
作业5: 为了安全,给grub设置口令

系统引导流程

Pingbacks已打开。

引用地址

暂无评论

发表评论