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文件可知
      • 设定默认运行级别
      • 初始化:
        • 设定主机名
        • 打印欢迎信息
        • 激活selinux和udev
        • 挂载/etc/fstab中定义的文件系统
        • 检测 根 文件系统,ro挂载 rootfs
        • 设置系统时钟
        • 根据/etc/sysctl.conf设定内核参数
        • 激活lvm及软raid
        • 激活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

相关推荐

  • Linux系统的终端类型

    Linux系统的终端类型    Linux系统的终端主要包括控制台终端、控制终端、串口终端、伪终端、虚拟终端。 1.  控制台终端(/dev/console)。    在Unix系统中,计算机显示器通常被称为控制台终端。Console与虚拟终端相关联,内核将信息送到控制台终端上(/dev/conso…

    Linux干货 2015-09-14
  • Haproxy的基础应用!

            本篇博客主要是和大家共同了解一下Haproxy的功能与基础应用,目的是更加熟练的掌握Haproxy的工作原理,为将来的工种中做好铺垫!       本篇博客共分为两个部分:      …

    2017-05-16
  • N28-第四周:正则表达式练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2017-12-24
  • /etc/fstab及/boot分区文件恢复

    以centos6为例,/boot目录下有最为关键的开机启动所必须的内核文件、根文件系统驱动文件已经引导加载程序(bootloader)grub。当我们清空此文件夹之后关机,机器就不能正常启动了,这种情况下,可以借助光盘启动进入救援模式解决。具体步骤如下: 1. 开机进入救援模式 这里不像正常情况下,显示根文件系统挂载在/mnt/sysimage目录,而是提示…

    2017-07-09
  • 08.04 笔记总结

    1.ps axo  user,ruser,group,rgroup,cmd  //  ruser  表示程序发起的用户,一般是指系统当前的用户  //  user  表示程序的所有者。在大数情况下,两个用户都是系统当前的用户, 之后当程序被赋予suid的时候,可能user会发生变化。 2.…

    Linux干货 2016-08-08
  • 合并 CentOS 6.8 的两个iso镜像

    合并 CentOS 6.8 的两个iso镜像 合并 CentOS 6.8 的两个DVD镜像 1、创建相关目录:                              &nbsp…

    Linux干货 2017-04-24

评论列表(1条)

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

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