一、簡述linux操做系統啓動流程
- post→boot sequence(bios)→boot loader(mbr)→kernel(ramdisk)→rootfs→switchroot→/sbin/init→/etc/inittab,/etc/init/*.conf→設定默認運行級別→系統初始化腳本→關閉或啓動對應級別的服務→啓動終端
二、簡述grub啓動引導程序配置及命令行接口詳解
命令行接口
- help
- help COMMAND
- root (hd0,0)設定根分區爲第一塊磁盤的第一個分區
- find (hd0,0)/PATH 查找文件
- kernel /PATH init=/sbin/init selinux=0 ro root=/dev/DEVICE 設定內核文件
- initrd /PATH 設定ramdisk
- boot 啓動
配置文件
- /etc/grub.conf 是/boot/grub/grub.conf的軟連接
- 配置項:
- hiddenmenu:隱藏菜單
- timeout:超時時間
- default:默認啓動菜單項,從0開始
- splashing:圖片
- title:標題
- password --md5 STRING:編輯內核時要按p輸入密碼(使用grub-md5-crypt生成)
三、實現kickstart文件製做與光盤鏡像製做
kickstart文件
命令段
- 必備:
- 認證方式:authconfig --enableshadow --passalgo=sha512
- bootloader位置:bootloader --location=mbr --dirverorder=sda --append="crashkernel=auto rhgb quiet"
- 鍵盤:keyboard us 美式
- 語言:lang en_US.UTF-8
- 清空mbr:zerombr
- 清除分區:clearpart --all
- boot分區:part /boot --fstype=ext4 --size=500
- pv分區:part pv.008002 --size=51200
- 卷組:volgroup myvg --pesize=4096 pv.008002
- lv:logvol / --fstype=ext4 --size=10240 myvg
- 密碼:rootpw --iscrypted (使用openssl passwd -1 -salt `openssl rand -hex 4`生成)
- 時區:timezone Asiz/Shanghai
- 可選:
- install:或upgrade 安裝或升級
- img文件:url url=http://PATH 或cdrom
- 文本:text,默認gui
- 網絡:network --onboot yes --device eth0 --bootproto dhcp --noipv6
- 防火牆:firewall --disabled
- selinux:selinux --disabled
- 安裝後命令:halt poweroff reboot
- repo源:repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
程序包段
%package
@group_name
package
-package
%end
腳本段
製做kickstart文件
- 使用system-config-kickstart 圖形工具生成ks.cfg
- 使用ksvalidator驗證ks文件的有效性
製做啓動iso
- 將源系統的isolinux文件夾和ks文件拷貝到myboot
- 修改配置文件 isolinux.cfg timeout=3 ks=cdrom:/ks.cfg
- 使用mkisofs製做iso
[root@centos6-mould myboot]# cat ks.cfg
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install
text
url --url=http://mirrors.aliyun.com/centos/6.9/os/x86_64/
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6
rootpw --iscrypted $6$7Qqmg6dcGcdJctX3$1pOxPQQaczPgnVS2DxM9OX728VAqtg4Nq5NbXbKDlcyVJClmPMbLMBxhWYJfz9WsSym3toubAEpFI5k8ifjzP0
firewall --disabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
zerombr
clearpart --all
part /boot --fstype=ext4 --asprimary --size=500
part swap --asprimary --size=1024
part / --fstype=ext4 --grow --asprimary --size=200
repo --name="CentOS" --baseurl=http://mirrors.aliyun.com/centos/6.9/os/x86_64/ --cost=100
%packages
@core
@server-policy
@workstation-policy
@Base
@Development tools
%end
[root@centos6-mould myboot]# chmod u+w isolinux/ -R
[root@centos6-mould myboot]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "centos 6 boot x86_64" -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso myboot