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

定制光盘

 

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

发表评论

登录后才能评论

评论列表(1条)

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

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

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达招商QQ  万达娱乐直属QQ  guoqibee.com  万达娱乐开户  guoqibee.com  万达娱乐招商QQ  万达直属  万达娱乐注册  万达主管QQ  万达娱乐主管