Linux發行版CentOS系列系統的安裝過程
內核空間的引導啟動過程:
POST(加電自檢) --> BootSequence(BIOS) 【MBR引導,順序啟動階段BootSequence】--> BootLoader(GRUB(stage1--stage1_5--stage2))【順序引導】 --> kernel [initramfs|initrd] (devtmpfs,dev,proc,sys)【內核引導,設備加載】 -- switched-root(ro) 【執行根切換,虛根切換為實根,將設備文件存儲在ro中】--> /sbin/init (centos5中是SysV init,centos6中是 Upstart init,centos7中是 systemd)【開啟用戶空間的引導 】-->圖形界面系統安裝界面
CentOS系統中根文件系統中的一級子目錄下可以分兩類:
根文件系統的普通一級子目錄:
絕對不能分區:bin, dev, lib, lib64, sbin, usr(這裏是CentOS 7根文件系統示例)
其他文件系統的掛載點:
可以成為掛載點的目錄:boot, media, mnt, proc, sys, tmp, home, var
在安裝CentOS發行版Linux系統中自行設定目錄中可以自行定義掛載點,可以自定義選擇存儲類型:
/boot:基本磁盤分區;
/:LVM或RAID
swap:基本磁盤分區或大文件;
/home:LVM或RAID
/var:LVM或RAID
/usr:LVM或RAID
在系統安裝界面需要規劃文件系統各種文件的存放路徑:
所有應用程序所依賴的運行庫文件存放的路徑;
所有應用程序所使用的配置文件的存放路徑;
/sbin/init, /sbin/systemd
RHEL系或CentOS系操作系統的系統安裝程序界面程序:anaconda
anaconda的工作方式:
1.交互式
TUI:基於curses的文本操作界面;(主機內存 < 512MB)
GUI:圖形用戶界面;(主機內存 >= 512MB)
2.無人值守
借助於ks配置文件實現;
ks全稱為kickstart;
在安裝操作系統的過程中,系統的啟動流程:
POST(加電自檢) --> Bootloader(boot.cat--> isolinux.bin[isolinux.cfg])【引導加載硬盤的內核文件】 --> vmlinuz(initrd.img)【虛擬根】 --> rootfs 【根切換】--> anaconda
以光盤啟動安裝系統為例,CentOS系統的安裝流程:
1.POST
2.讀取光盤的MBR:isoliunux/boot.cat; isolinux/isolinux.bin,其配置文件為:isolinux/isolinux.cfg,其主要內容為:
default vesamenu.c32 ---使用什麽樣的C程序構建菜單;
menu title Welcome to CentOS 6.7!------設置啟動菜單中的標題的名稱;
label linux--------標簽名稱,此名稱可以用來引用其下所有命令;
menu label ^Install or upgrade an existing system-----啟動菜單中被顯示的內容,以及對應的熱鍵;
menu default----------將此標簽作為菜單中的默認選中項目;在整個文件中,此行必須唯一;
kernel vmlinuz-------------為本次引導指定內核文件名稱;
append initrd=initrd.img------------向kernel命令傳遞的附加參數;常用的參數有:
initrd=initrd.img
text:從文本界面啟動安裝程序;
askmethod:手動選擇安裝程序包和程序包組的方法:
本地光盤、本地硬盤
網絡服務器:FTP,HTTP,NFS,CIFS...
ip=IP_ADDRESS
netmask=NETMASK
gateway=GATEWAY
dns=DNS_SRV_IP_ADDRESS
rescue:啟用緊急救援模式;
dd:device drivers,裝載額外的指定設備的驅動程序;ks:使用kickstart啟動無人值守安裝,通過ks參數指定ks配置文件的所在位置:
本地光盤:ks=cdrom:/PATH/TO/KICKSTART_FILE
本地硬盤:ks=hd:/DEVICE_NAME/PATH/TO/KICKSTART_FILE
遠程的某個web站點:ks=http://{HOST|IP}[:PORT]/PATH/TO/KICKSTART_FILE
遠程的某個FTP站點:ks=ftp://[username@]{HOSR|IP}[:PORT]/PATH/TO/KICKSTART_FILE
br/>ks:使用kickstart啟動無人值守安裝,通過ks參數指定ks配置文件的所在位置:
本地光盤:ks=cdrom:/PATH/TO/KICKSTART_FILE
本地硬盤:ks=hd:/DEVICE_NAME/PATH/TO/KICKSTART_FILE
遠程的某個web站點:ks=http://{HOST|IP}[:PORT]/PATH/TO/KICKSTART_FILE
遠程的某個FTP站點:ks=ftp://[username@]{HOSR|IP}[:PORT]/PATH/TO/KICKSTART_FILE
3.裝載rootfs,並且啟動anaconda;
anaconda也提供了一個命令行接口,其模式標識符:
boot: linux text ip=1.1.1.1 netmas=255.255.255.0 gateway=1.1.1.127
在anaconda提供的菜單界面下,按"ESC"鍵,即可進入命令行接口;
註意:在上述的所有過程中,都是在引導設備上完成的操作;而後續的anaconda及其他需要安裝的程序包和程序包組都是通過yum插件完成安裝的,因此需要有一個可以被正常訪問的yum倉庫,yum倉庫的位置可以在:本地光盤、本地硬盤、FTP服務器、HTTP服務器、NFS服務器、CIFS服務器
在anaconda界面按"ESC"鍵以進行手動選擇安裝方式:
boot: linux askmethod
anaconda的工作過程:
安裝前的準備階段:安裝環境和計劃的配置
1.安裝過程中使用的語言類型;
2.鍵盤布局類型;
3.系統安裝的目標存儲設備:
Basic Storage:本地磁盤
Special Storage:網絡存儲,iSCSI,NAS,...
4.設置主機名:localhost.localdomain
5.配置網絡接口;
6.選擇時區;Asia/Shanghai
7.超級用戶密碼;
8.設定磁盤的使用方式及MBR的安裝位置;
9.選擇要安裝的程序包和程序包組;
安裝階段:
1.有可能運行一些安裝前腳本,以完成初始化工作;
2.根據準備階段規劃的磁盤使用格式,進行分區或其他磁盤管理類的操作,而後執行格式化並安裝指定的文件系統,然後再掛載所有的文件系統到指定的掛載點;
3.將選定的程序包或程序包組安裝至指定的目錄中;
4.安裝bootloader(GRUB)至啟動分區;
5.安裝內核及initramfs;
6.有必要的話,可能會執行安裝後腳本;
首次啟動:
1.選擇許可證信息;
2.創建普通用戶賬戶;
3.配置內核的核心轉儲(Kdump, Kernel-Core dump),如果內存小於2GB,Kdump不開啟;
Kdump的作用:
如果某一時刻,內核核心崩潰,Kdump會將內核崩潰那一時刻內存中所有數據創建為一個映像文件並保存到磁盤上;事後通過分析此映像文件查找出內核崩潰的原因;
4.是否配置iptables防火墻和Selinux安全機制;建議初學者將此功能關閉;
此上為大致的CentOS系列系統的安裝步驟。
Linux發行版CentOS系列系統的安裝過程