POST (加電自檢):自檢主要硬件設備如:CPU、內存、硬盤是否正常,以及輸入輸出設備是否存在問題等。
BootSequence(BIOS):BIOS(基本的輸入輸出系統)裝載在硬件芯片CMOS之上,自檢時會啓動這個程序,並根據CMOS上的配置信息去讀取其餘的硬件信息,檢測正常以後進行硬件設備的初始化。linux
Bootloader(MBR):引導加載程序,在MBR(主引導記錄)中,主要功能是識別,加載系統的核心文件,並提交到內存中運行來啓動對應的系統。c#
Kernel(ramdisk):Kernel會自身初始化,探測可識別的硬件設備,Kernel是存在硬盤之中的,可是在內核啓動時尚未加載硬盤,爲了解決這個問題Kernel內核經過ramdisk(虛擬文件系統)來加載硬件程序,爲防止根文件系統加載時出現bug等問題沒法挽回的狀況,以只讀方式來掛載根文件系統,來完成跟文件系統的初始化。centos
rootfs (switch_root):啓動真正的根文件系統,而後虛擬的根文件系統與真正的根文件系統進行交換。網絡
/sbin/init(/etc/inittab, /etc/init/*.conf, /usr/lib/system/system/):
在內核、硬件及驅動信息加載完畢後,內核會運行用戶空間的第一個應用程序:/sbin/init.包括系統的主機名、網絡管理、文件系統格式等其餘服務。app
運行級別:爲了系統的運行或維護等目的而設定的機制;
0-6:7個級別;
0、關機, shutdown
一、單用戶模式(single user),root用戶,無須認證;維護模式;
二、多用戶模式(multi user),會啓動網絡功能,但不會啓動NFS;維護模式;
三、多用戶模式(mutli user),徹底功能模式;文本界面;
四、預留級別:目前無特別使用目的,但習慣以同3級別功能使用;
五、多用戶模式(multi user), 徹底功能模式,圖形界面;
六、重啓,rebootide
默認級別:3, 5工具
級別切換:init #ui
級別查看:
who -r
runlevelthis
系統初始化腳本:/etc/rc.d/rc.sysinit
(1) 設置主機名;
(2) 設置歡迎信息;
(3) 激活udev和selinux;
(4) 掛載/etc/fstab文件中定義的全部文件系統;
(5) 檢測根文件系統,並以讀寫方式從新掛載根文件系統;
(6) 設置系統時鐘;
(7) 根據/etc/sysctl.conf文件來設置內核參數;
(8) 激活lvm及軟raid設備;
(9) 激活swap設備;
(10) 加載額外設備的驅動程序;
(11) 清理操做;加密
grub的版本分爲grub 0.X(grub legacy)、grub 1.X(grub 2),目前centos 5 和centos 6使用的是grub legacy版本,centos 7使用的是grub 2版本的啓動引導程序。
其中grub legacy中有三個階段;
stage1: bootloader(MBR);
stage2:MBR以後的扇區,讓stage1的bootloader能識別stage2所在的分區上的文件系統;
stage3:磁盤分區(/boot/grub/)
[root@localhost ~]# cat /boot/grub/grub.conf # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-431.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=VolGroup/lv_swap crashkernel=auto LANG=zh_CN.UTF-8 rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-431.el6.x86_64.img
配置項:
default=#: 設定默認啓動的菜單項;落單項(title)編號從0開始;
timeout=#:指定菜單項等待選項選擇的時長;
splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜單背景圖片文件路徑;
hiddenmenu:隱藏菜單;
password [--md5] STRING: 菜單編輯認證;
title TITLE:定義菜單項「標題」, 可出現屢次;
root (hd#,#):grub查找stage2及kernel文件所在設備分區;爲grub的「根」;
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:啓動的內核
initrd /PATH/TO/INITRAMFS_FILE: 內核匹配的ramfs文件;
password [--md5] STRING: 啓動選定的內核或操做系統時進行認證;
grub的界面支持命令行接口,在界面中輸入c進入命令行模式
手動在grub命令行接口啓動系統:
grub> root (hd#,#) grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE grub> initrd /initramfs-VERSION-RELEASE.img grub> boot
爲防止他人隨意進入grub對系統形成破壞,所以能夠加入密碼來防止
用grub-md5-crypt命令來生成加密的密碼
[root@localhost ~]# grub-md5-crypt Password: Retype password: $1$cIGK30$KFB088vQiBOJMCKsb48IU/
定製kickstart 文件
首先:
[root@localhost ~]# yum install system-config-kickstart
檢查語法錯誤:
[root@localhost ~]# ksvalidator anaconda-ks.cfg
準備目錄,複製光盤內容到該目錄中:
[root@localhost ~]# mkdir /tmp/cdrom [root@localhost ~]# mkdir /media/cdrom [root@localhost ~]# mount -r -t iso9660 /dev/cdrom /media/cdrom [root@localhost ~]# cp -r /media/cdrom/ /tmp/cdrom/ [root@localhost ~]# cd /tmp/cdrom/ [root@localhost cdrom]# cd cdrom/ [root@localhost ~]# chmod u+w isolinux/*
將ks.cfg文件拷貝到/tmp/cdrom中
[root@localhost cdrom]# cp /root/ks.cfg /tmp/cdrom
建立iso鏡像
[root@localhost cdrom]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6 x86_64 boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso cdrom/
查看iso 鏡像
[root@localhost ~]# ls anaconda-ks.cfg boot.iso install.log install.log.syslog myboot
利用xftp工具將boot.iso傳到本身物理機上
以後經過虛擬機自動引導安裝