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.www58058.com/91125
總結的蠻不錯的,最后一題重在實戰,如果能體現出遇到的問題及解決思路,會更好一點。加油~