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
下一篇 2018-01-15

相关推荐

  • 常用大数据词汇中英文对照表

    A 聚合(Aggregation) – 搜索、合并、显示数据的过程 算法(Algorithms) – 可以完成某种数据分析的数学公式 分析法(Analytics) – 用于发现数据的内在涵义 异 常检测(Anomaly detection) – 在数据集中搜索与预期模式或行为不匹配的数据项。除了“Anomalies”,用来表示异常的词有以下几种:outlie…

    Linux干货 2015-03-10
  • 有关磁盘管理与文件系统

    硬盘物理结构      扇区  磁头  磁道   柱面   磁道数      扇区*一个磁道上的扇区个数*磁头数=柱面      柱面*磁道数=硬盘大小      一个扇区512字节   &…

    2017-08-19
  • Docker 之初次体验

    一、Docker 简介  lxc linux container,openvz  容器中各虚拟机只有一个内核,而是多个用户空间  在库中完成虚拟化,比如wine 或者在windows中运行bash  在应用程序的运行级别提供虚拟化,比如jvm   pstree , pid 为1 的进程  …

    Linux干货 2017-02-24
  • 马哥教育21期网络班—第一周课程+练习

    计算机的组成及功能 根据冯·诺依曼原理 现在计算机有五部分组成 分别是:运算器、控制器、存储器、输入设备和输出设备 现在把运算器和控制器做到一块就是所谓的CPU CPU = 运算器+控制器 存储器:memory 用于存储信息的记忆设备,存储器分为ROM和RAM 编址存储设备 ROM:只读存储器,寻址地址空间的组成部分 RAM:随机存储器 输入和输出设备: 输…

    Linux干货 2016-06-26
  • 使用Openssl构建私有CA

    使用Openssl构建私有CA Openssl是SSL的开源实现,是一种安全机密程序,主要用于提高远程登录访问的安全性。也是目前加密算法所使用的工具之一,功能很强大。     Openssl为网络通信提供安全及数据完整性的一种安全协议,包括了主要的密码算法、常用的密钥和证书封装管理功能(CA)以及SSL协议,并提供了丰…

    Linux干货 2015-10-07
  • Linux LVM介绍及管理

    什么是LVM? LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,用来提高磁盘分区管理的灵活性。系统管理员可以通过LVM轻松的管理磁盘分区,如:将若干个磁盘分区或物理磁盘连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以…

    Linux干货 2016-08-30

评论列表(1条)

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

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