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

linux操作系统启动流程和光盘镜像制作

时间:2018-11-24 18:55:26      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:disk   lin   内核   post   相关   复制   loader   光盘   yum   

1、简述linux操作系统启动流程

POST (加电自检):自检主要硬件设备如:CPU、内存、硬盘是否正常,以及输入输出设备是否存在问题等。
BIOS(Boot Sequence):BIOS(基本的输入输出系统)装载在硬件芯片CMOS之上,自检时会启动这个程序,并根据CMOS上的配置信息去读取其他的硬件信息,检测正常之后进行硬件设备的初始化。
读取MBR:引导加载程序,在MBR(主引导记录)中,主要功能是识别,加载系统的核心文件,并提交到内存中运行来启动对应的系统。
Kernel运行:Kernel会自身初始化,探测可识别的硬件设备,Kernel是存在硬盘之中的,但是在内核启动时还没有加载硬盘,为了解决这个问题Kernel内核通过ramdisk(虚拟文件系统)来加载硬件程序,为防止根文件系统加载时出现bug等问题无法挽回的情况,以只读方式来挂载根文件系统,来完成跟文件系统的初始化。
init运行:在内核、硬件及驱动信息加载完毕后,内核会运行用户空间的第一个应用程序:/sbin/init.包括系统的主机名、网络管理、文件系统格式等其他服务。
默认运行级别、系统初始化、关闭及启动服务、启动终端(图形终端):
    运行级别:为了系统的运行或维护等目的而设定的机制;
        0-6:7个级别;
        0、关机, shutdown
        1、单用户模式(single user),root用户,无须认证;维护模式;
        2、多用户模式(multi user),会启动网络功能,但不会启动NFS;维护模式;
        3、多用户模式(mutli user),完全功能模式;文本界面;
        4、预留级别:目前无特别使用目的,但习惯以同3级别功能使用;
        5、多用户模式(multi user), 完全功能模式,图形界面;
        6、重启,reboot

    默认级别:3, 5
    级别切换:init #

    级别查看:
        who -r
        runlevel

    系统初始化脚本:/etc/rc.d/rc.sysinit
        (1) 设置主机名;
        (2) 设置欢迎信息;
        (3) 激活udev和selinux;
        (4) 挂载/etc/fstab文件中定义的所有文件系统; 
        (5) 检测根文件系统,并以读写方式重新挂载根文件系统; 
        (6) 设置系统时钟; 
        (7) 根据/etc/sysctl.conf文件来设置内核参数;
        (8) 激活lvm及软raid设备;
        (9) 激活swap设备;
        (10) 加载额外设备的驱动程序;
        (11) 清理操作;
    系统初始化时运行的脚本在/etc/rc.d/rc.sysinit配置文件中;关闭及启动服务意味着启动或关闭/etc/rc.d/rc#.d/目录下的服务脚本所控制的服务,最后就是启动终端(图形终端)了

2、简述grub启动引导程序配置及命令行接口详解

grub的三个阶段:

        stage 1:运行bootloader主程序,这个程序必须要被安装在MBR中
        stage 1_5:在MBR随后的扇区中存放,主要用于与stage2所在分区的文件系统进行交互
        stage 2:读取 grub.conf 配置文件,并实现引导功能的扩展

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

        defaule: 表示有多个grub引导菜单时,选择哪一个作为默认启动引导菜单;
        defaule=0:表示默认选择第一个选项进行配置 ;
        timeout: 表示选择菜单的时间,如果过了这个时间没有选择则表示使用默认选项 ;
        splashimage: 指定引导菜单中的背景图片的路径 ;
        titile: 指定选项的名称 ;
        root: 表示kernel和initrd文件所在的分区路径,而不是”根分区”;其格式为;
        kernel: 通常是用于指定要运行的内核文件路径,如:/vmlinuz-2.6.32-642.el6.x86_64;另外也可在其后设置相关的内核参数,如:ro表示只读,root表示指定根分区所在路径,关闭selinux等等; 
        initrd: 为内核运行指定其可用的ramdisk文件,其版本须和内核版本一致;

grub常用的指令:

        help:查看命令帮助;
        root (DEVICE):指定系统和内核文件所在的分区,如root(hd0,0)。
        find (hd0,0) /path/to/file:用于查找对应分区下的文件。常用于当不确认内核文件在哪个分区时,可使用此命令确认文件所在路径;支持tab补全;
        kernel /path/to/kernel_file:用于指定要运行的内核文件。
        initrd /path/to/kernel_file:指定initrd文件;
        boot:以当前配置好的grub配置启动系统;

技术分享图片


3、实现kickstart文件制作与光盘镜像制作
定制kickstart 文件:

        [root@silasszl ~]# yum install  system-config-kickstart

检查语法错误:

        [root@silasszl ~]# ksvalidator anaconda-ks.cfg

准备目录,复制光盘内容到该目录中:

        [root@silasszl ~]# mkdir /tmp/cdrom
        [root@silasszl ~]# mkdir /media/cdrom
        [root@silasszl ~]# mount -r -t iso9660 /dev/cdrom /media/cdrom
        [root@silasszl ~]# cp -r /media/cdrom/ /tmp/cdrom/
        [root@silasszl ~]# cd /tmp/cdrom/
        [root@silasszl cdrom]# cd cdrom/
        [root@silasszl ~]# chmod u+w isolinux/*

将ks.cfg文件拷贝到/tmp/cdrom中

        [root@silasszl cdrom]# cp /root/ks.cfg /tmp/cdrom

创建iso镜像

        [root@silasszl cdrom]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6 x86_64 boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o  /root/boot.iso   cdrom/

linux操作系统启动流程和光盘镜像制作

标签:disk   lin   内核   post   相关   复制   loader   光盘   yum   

原文地址:http://blog.51cto.com/13984342/2321528

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