系统启动和内核管理

系统启动和内核管理

   1)Centos6启动步骤概述

    1、上电POST自检,加载BIOS的硬件信息,获取第一个启动设备

    2、读取第一个启动设备MBR里的引导加载程序(grub)的启动信息

    3、加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备

    4、核心执行init程序,并获取默认的运行信息

    5、init程序执行/etc/rc.d/rc.sysinit文件

    6、启动核心的外挂模块

    7、init执行运行的各个批处理文件(scripts)

    8、init执行/etc/rc.d/rc.local

    9、执行/bin/login程序,等待一会登录

    10、登录之后开始以shell控制主机

      /sbin/init  CentOS6之前 

      运行级别:为系统运行或维护等目的而设定;0-6:7个级别 

           0:关机  1:单用户模式(root自动登录), single, 维护模式  2: 多用户模式,启动网络功能,但不会启动NFS;维护模式  3:多用户模式,正常模式;文本界面  4:预留级别;可同3级别  5:多用户模式,正常模式;图形界面  6:重启 

      默认级别:3, 5 切换级别:init # 查看级别:runlevel ;  who -r

   2)既简单流程

      POST(Power On Self Test,加电自检) ----> Boot Sequesce(BIOS,找到第一启动设备) ----> Boot Loader(加载引导程序到内存中)  ----> Kernel(ramdisk,加载内核和虚拟磁盘映像文件)   ----> rootfs(挂载临时根)  ----> switchroot(切换临时根为系统根目录) ----> /sbin/init(开机后第一个 读取的文件)  ----> (/etc/inittab,/etc/init/*.conf)  ----> 设定默认运行级别 ----> 系统初始化 脚本rc.sysinit ----> 关闭或启动对应级别的服务 ----> 启动终端

  3)MBR

    MBR(Master Boot Recorder),我们称之为主引导记录。BIOS是怎样寻找可启动设备的呢?我们知道在分区时, 硬盘的第一块扇区512个字节就是存放的MBR,如果该设备是可启动设备,那么该扇区的后两个字节肯定是 55/AA,所以此时在寻找可启动设备时,如果发现该设备的后两个字节是这个,那么该设备就是可启动设备。 BIOS在找到可启动设备以后就会执行其引导代码,因为MBR占据了第一块扇区的512字节,分区表占用了 16*4 =64字节,再加上后两个标志字节,所以MBR的引导代码就是MBR的前446个字节,当然这446个字节太小了,并不 能完成整个操作系统的引导程序,所以这446个字节里面可能存放的就是启动引导程序的一些代码。

  4)GRUB

     GRUB是引导加载程序,将引导操作系统,启动引导器是计算机启动过程中运行的第一个真正的软件,计算机启动 时在通过BISO自检后读取并运行引导介质上前面的扇区即硬盘主引导扇区(MBR)中的启动引导器程序, 这里的 扇区中:MBR占据了第一块扇区的512字节,但其实际只占用了其中的446个字节,另外的64个字节交给了 DPT(Disk Partition Table硬盘分区表),后两个字节“55,AA”是分区的结束标志。启动引导器在负责加载 启动硬盘分区中的操作系统。如果启动引导器不能正常工作,将导致操作系统不能正常启动,从而整个计算机瘫 痪。通常,每个操作系统在安装过程中都要将自带的启动器写在硬盘(MBR),以便能过进行自身的引导。

  5)Linux组成

    Linux: kernel+rootfs 

      kernel: 进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能                                                 rootfs:程序和glibc 

      库:函数集合, function, 调用接口(头文件负责描述) 

      程序:二进制执行文件 

    内核设计流派: 

      单内核(monolithic kernel):Linux把所有功能集成于同一个程序,分层实现不同功能,系统庞大复杂 

      微内核(micro kernel):Windows, Solaris   每种功能使一个单独子系统实现,将内核功能移到用户空间,性能差
   6)内核

    Linux内核特点:支持模块化:.ko(内核对象)   如:文件系统,硬件驱动,网络协议等  支持内核模块的动态装载和卸载

  7)系统启动流程

    系统初始化:  POST --> BootSequence (BIOS) --> Bootloader(MBR) --> kernel(ramdisk) --> rootfs(只读) --> init(systemd)

  8)实验:进入单用户破解centos6的root密码

      启动时,出现下图时,快速按方向键上下即可中止启动。

          

      进⼊菜单输⼊a,进⼊启动时指定内核参数界面。

          

      此时,在命令⾏中输⼊空格后,再输⼊⼀个数⼦,该数⼦表⽰的就是运⾏级别,即0代表关机、1代表单⽤户模式、2代表 没网络的多⽤户模式、3代表完整的多⽤户模式、4⾃定义模式、5表⽰有图形化的完整的多⽤户模式、6代表重启。此处, 输⼊的是1,启动单⽤户模式。

      <c KEYTABLE=us rd_NO_DM rhgb quiet 1

          

      直接键⼊回车即可启动单⽤户模式了,这种模式可⽤于当忘记管理员root的密码时,可进⼊单⽤户模式进⾏修改。因为在 此模式下,root可直接使⽤passwd命令设置新密码,⽽⽆需任何限制。

    9)实验:删除/boot所有文件恢复

       删除boot所有文件:rm -rf /boot/*  重启:reboot

       在启动刚开始界面,迅速按F2,进⼊BIOS设置界⾯

          

       方向右键移动到Boot选中CD-ROM

           

      按F10,保存退出即可。

           

      启动后,直接选择进⼊救援模式

          

            

          

          

          

          

           

           

        查看磁盘分区:df

        切换跟:chroot /mnt/sysimage/

        安装grub:cd /boot   grub-install /dev/sda

         挂载:mount  /dev/cdrom  /media

        安装内核:yum install kernel-2.6.32-754.el6.x86_64

        创建编写grub.conf文件:vim /boot/grub/grub.conf

                    default=0

                     timeout=5

                    title minilinux

                    kernel /vmlinuz-2.6.32-754.el6.x86_64  root=/dev/sda2
                    initrd /initramfs-2.6.32-754.el6.x86_64.img

        退出重启:exit  reboot

        再次进入Boot,启动Hard Drive即可

        

    

          

      

 

原文地址:https://www.cnblogs.com/dengkui/p/11061315.html