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.www58058.com/91125

(0)
逆神陽逆神陽
上一篇 2018-01-15
下一篇 2018-01-15

相關推薦

  • 操作系統—Systemd

    Systemd 概述:       CentOS 6和之前版本采用SysVinit的系統啟動進程管理體系,一般用戶都可通過在/etc/inittab文件的配置,來個性化自己的系統啟動序列。但也經常會由于特殊環境的硬件等關系問題,造成其串行的啟動進程控制流,因為可能任務的阻塞而影響啟動過程。     &nbsp…

    Linux干貨 2016-09-24
  • Python內置數據結構——集合set

    集合 定義 set翻譯為集合 collection翻譯為集合類型,是一個較大的概念 set是一個可變的、無序的、不重復的元素組成的集合 set的元素要求必須可以hash,目前已學的不可hash的類型只有list、set 元素不可以索引 set可以迭代 set的初始化 set_1 =set() #表示定義一個空集合set_1 set_1 =set(iterab…

    Linux干貨 2017-10-03
  • rpm包管理

    前言    RPM(簡稱RPM,全稱為The RPM Package Manager)是在Linux下廣泛使用的軟件包管理器。RPM此名詞可能是指.rpm的文件格式的軟件包,也可能是指其本身的軟件包管理器(RPM Package Manager)。最早由Red Hat研制,現在也由開源社區開發。RPM通常隨附于Linux發行版,…

    Linux干貨 2015-05-13
  • Puppet基于Master/Agent模式實現LNMP平臺部署

    前言 隨著IT行業的迅猛發展,傳統的運維方式靠大量人力比較吃力,運維人員面對日益增長的服務器和運維工作,不得不把很多重復的、繁瑣的工作利用自動化處理。前期我們介紹了運維自動化工具ansible的簡單應用,本期帶來的是運維自動化神器puppet基于Master/Agent模式實現LNMP平臺部署。 Puppet 簡介 Puppet是基于ruby語言開發的一種L…

    Linux干貨 2015-07-13
  • Linux運維學習歷程-第二天-虛擬機的配置

    學習Linux我自己的感覺是可以按Linus的哲學思想來學習 比如一切皆文件,那我們首先可以記住一些重要的常見的路徑和文件,并知道有什么作用,這樣在初期學習時,我們要干什么時,知道在哪里找;   而命令我們可以每天記憶并練習一些,本身Linux的基本命令都是一下短小精悍的而且有些命令名本身就是英文單詞,像date命令就是和系統時間有關的命令用來顯示…

    Linux干貨 2016-08-03
  • N22-妙手-第七周課程練習

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; [root@localhost ~]# mke2fs -t ext4 -m 2 -L MY…

    Linux干貨 2016-10-09

評論列表(1條)

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

    總結的蠻不錯的,最后一題重在實戰,如果能體現出遇到的問題及解決思路,會更好一點。加油~

欧美性久久久久