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

2018-08-14  本文已影响0人  沉默的xz

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 挂载刚刚创建的镜像,测试可用
上一篇下一篇

猜你喜欢

热点阅读