N28: 启动流程、grub、kickstart

第七周

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

 

  • POST加电自检: CPU自举,加载固定地址空间中的固定指令,起动BIOS完成硬件探测
  • Boot Sequence:按启动顺序找出第一个有bootloader设备,为此次启动的设备
    • bootloader
      • Windows: ntloader
      • Linux:
        • LILO: linux loader,多用于手机
        • GRUB:
          • grub1: 0.x: CentOS 5,6
          • grub2: 1.x: CentOS 7: 完全重写
    • 功能:提供可选菜单
    • 用户选择内核后,bootloader将内核和ramdisk加载到内存中
  • 内核空间:自解压展开,获得控制权,并初始化
    • 看看朕的花花世界
    • 控制权,利用驱动。ro加载根
    • 派遣一个使者:init,替朕去管理这个世界
  • 用户空间:使者init进程
    • centos5: init,进程串行启动;/sbin/init
    • centos6: upstart, Ubuntu实现,dbus通信并行创建进程 /sbin/init
    • centos7: systemd,redhat程序员参考mac启动逻辑,一个进程完成启动系统 /sbin/systemd
    • 根据/etc/inittab文件可知
      • 设定默认运行级别
      • 初始化
        • 设定主机名
        • 打印欢迎信息
        • 激活selinuxudev
        • 挂载/etc/fstab中定义的文件系统
        • 检测 根 文件系统,ro挂载 rootfs
        • 设置系统时钟
        • 根据/etc/sysctl.conf设定内核参数
        • 激活lvmraid
        • 激活swap设备
        • 加载额外驱动程序
        • 清理初始化过程中的生成临时文件的程序所生成的临时文件
      • 给rc脚本传递级别参数,停止要停止的服务,启动要启动的服务
      • 设置登陆终端,打印登陆提示符

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

grub工作阶段:

  • 1st: mbr, bootloader加载到mbr
  • 1.5st: 驱动,mbr之后的扇区,提供stage2在的分区的文件系统驱动;
  • 2st: boot目录所在分区

功能:

1. 显示菜单

command line:

  • > help 获取帮助
  • > find (hd#,#)/PATH/TO/SOMEFILE; 查看文件;第几个磁盘的第几个分区,都从0开始编号
  • > root (hd#,#) 指明stage1_5驱动指向的boot分区位置;grub将其当作根;grub安装的分区;
  • > kernel /PATH/TO/VMLINUZ_FILE: grub识别的根下的内核文件;本次启动所用的内核
    • kernel后可以接受一些参数,如下:
      • root=/dev/DEVICE kernel启动后挂载的根文件系统
      • init=/sbin/init 默认,内核启动用户空间的init程序
      • selinux=0;禁用selinux功能;
      • ro 只读
      • quiet 静默模式
  • > initrd /PATH/TO/INITRAMDISK_FILE;grub识别的根下的initramfs文件;提供本次挂载根文件系统的驱动
  • > boot 启动

2. 隐藏菜单
3. 保护机制

 

配置文件:

/boot/grub[2]/grub.conf

  • default=#: timeout时间内用户没有做出任何选择,默认启动的内核。title从上至下,从0开始编号。
  • timeout=#:等待用户选择的时长;
  • splashimage=(hd#,#)/PATH/TO/PIC_FILE.xpm.gz:菜单背景图片;
  • hiddenmenu: 隐藏菜单
  • password –md5 STRING: 菜单编辑认证:可省,表示不认证
  • title TITLE: 定义菜单标题,有空格时不用加引号;可出现多次,表示多个菜单;注意:其下必须缩进
    • root (hd#,#):指明grub的根,即stage1_5驱动指向的分区位置;stage2位置;
    • kernel /PATH/TO/VMLINUZ_FILE: grub识别的根下的内核文件;
    • initrd /PATH/TO/INITRAMDISK_FILE:grub识别的根下的initramfs文件;设定提供根文件系统驱动的路径;
    • password –md5 STRING: 启用内核或操作系统认证;可省,表示不认证

 

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

 

kickstart文件制作:

复制以下配置注意:

安装源的位置,需要修改;
url –url=”http://172.16.0.68/centos/7/x86_64″
分区大小

# vim /var/ftp/pub/centos7.cfg

#version=RHEL7
# System authorization information
auth –enableshadow –passalgo=sha512

# 安装源
url –url=”http://172.16.0.68/centos/7/x86_64″

# 安装过程是graphical还是文本
text

# Run the Setup Agent on first boot
firstboot –enable
ignoredisk –only-use=sda

# 键盘
keyboard –vckeymap=us –xlayouts=’us’

# 安装后语言
lang en_US.UTF-8

# 安装后操作
reboot

# 网络怎么配置
network –bootproto=dhcp

#root密码设定为什么

rootpw –iscrypted                                     $6$jnX/i6Ab$eT4cXMEFYrFLmPPT1CwymlAYbHfYK1ifH7DXLNdfMQV6Nu4T2E/8da8aSqIEHNakVQvCtAlEuVln4.wvUyF0z.

# 系统时区
timezone Asia/Shanghai

# X Window System configuration information
xconfig –startxonboot

# System bootloader configuration
bootloader –append=” crashkernel=auto” –location=mbr –boot-drive=sda

# Partition clearing information
clearpart –none –initlabel

# 清空mbr
zerombr

# 分区
part swap –fstype=”swap” –ondisk=sda –size=2048
part /boot –fstype=”xfs” –ondisk=sda –size=512

# 创建Pv
part pv.008002 –size=102400

# 创建vg
volgroup myvg –pesize=8192 pv.008002
logvol / –fstype=xfs –name=lv_root –vgname=myvg –size=40960
logvol /home –fstype=xfs –name=lv_home –vgname=myvg –size=4096
logvol /usr –fstype=xfs –name=lv_usr –vgname=myvg –size=20480
logvol /var –fstype=xfs –name=lv_var –vgname=myvg –size=20480

 

# 安装哪些程序包
%packages
@base
@core
wget
lftp
tree
screen
%end

# 安装后脚本
%post

# 以多用户模式为默认模式
systemctl set-default multi-user.target

 

#禁用防火墙
systemctl stop firewalld.service
systemctl mask firewalld.service

#将xshell的公钥导入

[ ! -d /root/.ssh ] && mkdir /root/.ssh && chmod go=— /root/.ssh
cat >> /root/.ssh/authorized_keys << EOF
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAGEA05mLktn19BzxlfpSmn2MRt6WD3Yr15rZwjKdC/bRy8fABkNIvh1NZDBFQodlvwUhlVvxdyFR90NxJ/Ykhbs/GxUlYyqY3JFqw/YUw2Ba8i4jSzwLi+6tkPQA4RYl2IED
EOF

#将主机名反解功能取消
echo “UseDNS no” >> /etc/ssh/sshd_config

#登陆提示符添加
echo -e “Mage Education Learning Services\nhttp://www.magedu.com\n” >> /etc/issue
%end

定制光盘

 # mkdir -v /root/myboot
 # cp -r /media/cdrom/isolinux /root/myboot
 ~]# vim /root/myboot/isolinux/isolinux.cfg
 label linux
 menu label ^Install CentOS 7 auto
 kernel vmlinuz
 append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet    inst.repo=http://172.16.0.9/centos/7/x86_64 ks=cdrom:/ks.cfg
 # cp /path/to/ks.cfg /root/myboot/ks.cfg
 # cd /root
 ~]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 7 x86_64 boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso myboot/

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91125

(0)
上一篇 2018-01-15 09:01
下一篇 2018-01-15 15:52

相关推荐

  • grep、egrep正则表达式之初窥门径

    何谓正则表达式 正则表达式,又称正规表示法、常规表示法(Regular Expression,在代码中常简写为regex、regexp或RE),是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的…

    2015-03-19
  • MySQL优化大全

     1. 优化SQL   1)通过show status了解各种sql的执行频率         show status like 'Com_%'        了解 Com_select,Com_in…

    Linux干货 2015-04-13
  • 第十五周作业

    1、总结sed和awk的详细用法; sed:     模式空间:sed是一种在线编辑器、行编辑器,一次处理一行内容,在处理时,把当前处理的行存储在临时缓冲区当中,并在该缓冲区中完成后续的处理,该缓冲区被称为”模式空间”。     保持空间:在模式空间中处理完一行内容后会继续处理下一行,但是对于处…

    Linux干货 2017-04-18
  • 08RPM的简单实用

    rpm命令,安装(-i,–install)、卸载、升级(-U,-F)、查询(-q,–query)、校验(-V,–verify)、数据库维护 安装:rpm {-i|–install} [install-options] PACKAGE_FILE… v:可视化 h:以#显示进度 rpm -ivh package_f…

    Linux干货 2016-11-03
  • vim编辑器

                在Linux的学习中,无论是编写脚本还是修改文件内容,我们最经常用的就是vim编辑器.vim编辑器功能十分强大,如今不仅仅只应用在Linux中.今天就来介绍一下vim编辑器的功能 进入和退出vim     进入:   在终端输入vim 文件名 ,…

    Linux干货 2017-08-05
  • Linux下编译安装httpd

    本章学习内容         ———介绍httpd         ———-rpm和yum不同   &nbs…

    Linux干货 2016-08-25

评论列表(1条)

  • 马哥教育
    马哥教育 2018-01-15 23:21

    总结的蛮不错的,最后一题重在实战,如果能体现出遇到的问题及解决思路,会更好一点。加油~