美文网首页
linux启动、grub配置以及kickstart简介

linux启动、grub配置以及kickstart简介

作者: 沉默的xz | 来源:发表于2018-08-14 16:35 被阅读0次

    Linux启动流程简述:


    前言:

            本文主要针对CenOS6系统的启动流程作简介。

             Linux的系统启动分为几个阶段,由于运行中的系统分为用户空间层面和内核空间层面,所以一个完整的系统启动也是先启动内核文件,然后在启动用户层面的各种应用程序。Linux系统的设计属于单内核设计,但是各功能模块却支持动态的装载和卸载,极大的压缩了内核的体积,让内核的启动也更加快捷和迅速。

    启动阶段1:内核的启动

    内核启动流程图

    过程简述:

    1.POST(加电自检):主要负责检测系统外围关键设备(如:CPU、内存、显卡、I/O、键盘鼠标等)是否正常。

    2.boot sequence(选择启动设备):按次序查找各引导设备,第一个有引导程序的设备即为本次启动要用到的设备;

    上述两个功能都由BIOS来完成,BIOS(Basic Input / Output System),又称基本输入输出系统,是一个固化在ROM中的软件,是操作系统输入输出管理系统的一部分。

    3.bootloader(引导加载器):

    Linux下的引导加载器有grub leancy和grub2两种,Cenos6中使用的是前者。

    MBR(主引导记录):

    MBR的共由512字节组成,前446字节存放的即是bootloader。所以在选定启动设备后,收件是读取MBR中的bootloader,打开grub菜单。

    grub:

    功能:提供一个菜单,允许用户选择要启动的系统或不同的内核版本; 把用户选定的内核装载到RAM中的特定空间中,解压、展开,而后把系统控制权移交给内核;

    grub界面

    gurb的实现共有3个阶段:

    1st stage:位于MBR的BootLoader中,用来加载2nd stage到内存中。

    1.5  stage:1和2的桥梁,用来驱动文件系统来使1阶段过渡到2阶段。

    2nd stage:grub核心,/boot/grub,存放在磁盘分上,用于加载内核文件。

    4.加载内核

    分四个步骤:

    探测可识别到的所有硬件设备;

    加载硬件驱动程序;(有可能会借助于ramdisk加载驱动)

    以只读方式挂载根文件系统;即rootfs

    运行用户空间的第一个应用程序:/sbin/init。

    内核文件:/boot//vmlinuz-VERSION-release,ramdisk文件/boot/initramfs-VERSION-release.img。

    启动阶段2:启动用户空间

            在上述的内核启动后,后续的操作都交给init程序来完成。/sbin/init程序是用户空间的第一个程序,主要完成系统初始化,步骤如下:

    设置默认运行级别:

             运行级别的配置文件为/etc/inittab,共0-6七个运行级别,可以在该文件中自主定义,下次启动默认进入指定的运行级别。

     运行系统初始化脚本:

            /etc/rc.d/rc.sysinit即为系统的初始化脚本,系统通过自动执行该脚本,从而完成对系统的设置和信息的初始化。

    关闭对应级别下需要停止的服务,启动对应级别下需要开启的服务:

            这里主要是指通过chkconfig所配置的开机自动启动或者关闭的各类服务。

    设置登录终端:

     启动图形终端:级别5需要启动

    grub简介

    GRand Unified Bootloader,系统启动后会首先打开一个grub菜单,上图所示,可以自主选择内核、定制内核参数。grub由三个阶段组成,1st stage,1_5stage以及stage2,stage2和内核文件等通常放置于一个基本磁盘分区。

    grub主要实现以下功能:

    (1) 提供菜单、并提供交互式接口

    e: 编辑模式,用于编辑菜单;

    c: 命令模式,交互式接口;

    a:修改内核参数

    (2) 加载用户选择的内核或操作系统

    允许传递参数给内核,可隐藏此菜单

    (3) 为菜单提供了保护机制

    为编辑菜单进行认证,为启用内核或操作系统进行认证

    进入grub的编辑模式

    grub有自己的命令行接口:

    help: 获取帮助列表 

    find (hd#,#)/PATH/TO/SOMEFILE:查找某个文件

    root (hd#,#)设置grub的根设备,即stage2阶段所在的分区设备;

    initrd /PATH/TO/INITRAMFS_FILE: 设定为选定的内核提供额外文件的ramdisk所在的路径;ramdisk版本必须与内核完全匹配。

    boot: 引导启动选定的内核;

    通过grub命令行接口设置启动参数

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

    按行说明:

    1:在grub菜单页默认启动的选项,0表示默认启动第一个内核

    2:设置超时时长,不操作的话5秒后默认选择第一项

    3:加载的背景图片的路径

    4:隐藏菜单

    5:定义菜单项标题,下面的root,kernel,initrd即自己指定的启动参数,也可以通过命令行自己指定。

    Kickstart文件制作

    kickstart是什么

            许多系统管理员愿意使用自动化的安装方法来安装linux系统。为了满足这种需要,红帽公司建立了kickstart安装方法。使用kickstart自动化安装,系统管理员可以创建一个ks文件,该文件包含了在典型的安装过程中所遇到的问题的答案。

            Kickstart文件可以存放在一个固定的位置上,在安装过程中被独立的机器所读取。这个安装方法可以支持使用单一kickstart文件在多台机器上安装Linux系统,这对于网络和系统管理员来说是个理想的选择。

    如何执行kickstart安装

            kickstart 安装可以使用本地光盘,本地硬盘驱动器,或通过 NFS、FTP、HTTP 来执行。

            要使用 kickstart,必须:

                    1.创建一个正确的kickstart文件。

                    2.创建有kickstart文件的引导介质或者让主机可以通过网络访问该文件。

                    3.筹备安装过程。

                    4.开始kickstart安装。

    Kickstart文件部分内容格式说明:

    install   (可选)     明确指定系统次次进行的是全新安装系统;是默认项;

    cdrom  (可选)     以本地CD-ROM为源安装系统;

    harddrive  (可选)     以硬盘分区中包含的镜像为源安装新系统;当以该种方式安装系统时,即使指定clearpart --all项,源所在分区也不会被重新抹去;  

    nfs   (可选)     指定从NFS服务器上获取安装源;   

     url   (可选)     指定通过FTP或HTTP从网络获取安装源;

    bootloader (必需)    设定boot loader安装选项;     

    -append=        可以指定内核参数    --driveorder=    设定设备BIOS中的开机设备启动顺序     --location=        设定引导记录的位置; mbr:默认值;partition:将boot loader安装于包含kernel的分区超级快中;none:不安装boot loder。    

    clearpart (可选)     在建立新分区前清空系统上原有的分区表,默认不删除分区;     --all      擦除系统上原有所有分区;     --drives    删除指定驱动器上的分区     --initlabel    初始化磁盘卷标为系统架构的默认卷标     --linux        擦除所有的linux分区     --none(default)不移除任何分区

    zerombr  (可选)     清除mbr信息,会同时清空系统用原有分区表

    firewall (可选)     配置系统防火墙选项;  

    selinux (可选)     设置系统selinux状态;默认为启用并处于enforcing模式;     

    reboot (可选)     在系统成功安装完成后默认自动重启系统(kickstart方法时);

    halt  (可选)     在系统成功安装完成后关机;默认为reboot;     其他选项还有shutdown、poweroff

    graphical (可选)   默认值,在图形模式下进行kickstart方式安装; 

    text (可选)     以文本方式进行kickstart安装;默认为图形界面

    keyboard (必需)     设置键盘类型;一般设置为us;

    lang (必需)     设置安装过程使用的语言及系统的缺省语言;

    timezone (可选)    设置系统的时区;    

    auth/authconfig  (必需)     设置系统的认证方式;默认为加密但不隐藏(shadow);     --enablemd5    使用MD5加密方式     --useshadow或—enableshadow    使用隐藏密码;     --enablenis=     使用NIS认证方式     --nisdomain=    NIS域   

    rootpw (必需)    设置系统root账号的密码;    

    network (可选)     配置网络信息;在网络安装(NFS/HTTP/FTP)时必须指定;     --bootproto=dhcp|bootp|static    指定ip获取方式,默认为dhcp/bootp;     --device=    设置安装时激活来进行系统安装的网卡设备;该参数只在kickstart文件为本地文件时有效;若kickstart配置文件在网络上,安装程序会先初始化网卡然后去寻找kickstart文件;     --ip=    ip设置     --gateway=   网关     --nameserver=  DNS设置     --nodns         不设置DNS     --netmask=   掩码     --hostname= 设置安装后主机名称     --onboot=    设置是否在系统启动时激活网卡     --class=        设置DHCP的class值     --noipv4        禁用该设备的ipv4功能     --noipv6        禁用该设备的ipv6功能     如将网络模式设置为静态模式,则必须在一行内写上ip,netmask、dns、gateway等信息;   

    part/partition  (install模式必须)     建立新分区; 

    创建kickstart配置文件的方式:

       1.  文本编辑器编辑生成:vim

       2. 用图形化界面配置:system-config-kickstat(需要安装system-config-kickstart.noarch包)

    用vim编辑生成ks文件 通过界面配置ks文件

    创建光盘镜像

    步骤:

    创建光盘根目录

    复制光盘下的isolinux目录到根目录下

    赋予isolinux里的所有文件和目录写权限(这样就可以自定义isolinux.cfg文件)

    复制修改好的ks文件到myboot目录下(这里myboot目录相当于光盘的根目录)

    建立镜像

    创建过程1 创建过程2 挂载刚刚创建的镜像,测试可用

    相关文章

      网友评论

          本文标题:linux启动、grub配置以及kickstart简介

          本文链接:https://www.haomeiwen.com/subject/wwymbftx.html