centos系統安裝
安裝程序:anaconda,Anaconda是RedHat、CentOS、Fedora等Linux的安裝管理程序。它可以提供文本、圖形等安裝管理方式,并支持Kickstart等腳本提供自動安裝的功能。此外,其還支持許多啟動參數,熟悉這些參數可為安裝帶來很多方便。該程序的功能是把位于光盤或其他源上的數據包,根據設置安裝到主機上。為實現該定制安裝,它提供一個定制界面,可以實現交互式界面供用戶選擇配置(如選擇語言,鍵盤,時區等信息)。Anaconda的大部分模塊用Python編寫,有少許的載入模塊用C編寫。anaconda是要運行到內核之上的,因此,我們要啟動安裝過程,假如是用光盤啟動也好還是其他什么也好,都要啟動anaconda才能完成centos和rehl系列系統的安裝,而這個程序是需要基于內核運行的,因此我們在安裝光盤上,在任何地方也罷,要想啟動anaconda得先啟動內核,而要向啟動內核的話,我們說過,內核可能在光盤上也可能在硬盤上,他不可能自己憑空的裝到內存中去并啟動起來的。我們也知道要想啟動內核得先啟動Bootloader,所有說我們真正要啟動安裝過程完成安裝操作的話,第一步就是要去加載anaconda,以提供一個安裝配置界面,但啟動anaconda第一步要加載某一個啟動設備上提供的bootloader 這個Bootloader安裝完成以后,我們要先給其提供一個配置文件,讓其能夠加載指定的內核,這個bootloder有可能在光盤上對linux而言就是一個grub或者是其他專用的安裝時啟動安裝界面的bootlader.(假設安裝介質就是在光盤上的話)于是這個bootloader就去裝載光盤上某個路徑下的kernel這個kernel其實就是vmlinuz,kernel可能要借助與initrd把內存中的一段空間當作磁盤來使用直接運行這個操作系統。(這個initrd(initrd當中有rootfs)也是特質的他有我們操作系統安裝過程當中所需要用到的各種基本工具),就這這樣操作系統啟動完成了,他甚至還給我們提供一個shell界面,這個shell界面是在initrd中提供的,不過呢,肯定他不會讓我們在initrd當中基于命令行的方式來安裝的,然后他去啟動一個叫做anaconda的應用程序(把anaconda就當作/sbin/init了,要啟動運行的第一個程序,)當然anaconda不需要去創建子進程了,我們借助與anaconda就能完成系統安裝,可以把anaconda想象成用戶空間的一個應用程序,但是這個程序并不在我們光盤的某個路徑下,他可以從我們光盤上的某個程序包中加載到并啟動之。因此無論我們基于u盤安裝還是光盤安裝還是網絡安裝,第一步就要先去啟動一個bootloader,這個bootloadr有可能在u盤的第一個扇區中甚至是一個通過網絡加載的一個啟動加載器,而后我們通過這個引導加載器獲取一個內核文件,獲取一個initrd并基于他們再加載到anaconda,從而能啟動安裝程序。所以安裝程序啟動起來以后就剩下安裝過程了 bootkoader –> kernel(initrd(rootfs)) –> anaconda
對與anaconda這個安裝程序來講,他有兩個界面;
第一個界面叫做tui:基于cureses的文本配置窗口
第二個界面叫做gui:圖形界面 因此安裝過程就有了兩種風格,而anaconda本身又把整個安裝過程大體上定義成了兩個階段。階段詳細信息以后再說
centos的安裝過程啟動流程:
第一步讀取mbr:boot.cat 第二階段stage2:isolinux/isolinux.bin 配置文件:isolinunx/isolinux.cfg 配置文件當中每個對應的菜單選項: 加載內核:isolinux/vmlinuz 向內核傳遞參數:append initrd=init.img 所以說整個系統安裝過程只是依賴與isolinux這個目錄中的文件而已,一旦這里啟動完成,接著就進入下一步啟動的安裝界面 裝載根文件系統 ,并啟動anaconda ,然后anconda啟動一個安裝界面 默認界面為圖形界面,前提是內存足夠大:512MB+內存空間; 如需要顯式指定啟動tui接口:向啟動內核傳遞一個參數“text”即可;那么如何向內核傳遞參數呢,如下: ESC, boot:linux text 注意:是上述內容一般位于引導設備,例如可通過光盤、U盤或網絡等;后續的anaconda及其安裝用到的程序包等可以來自于程序包倉庫,此倉庫的位置可以為; 本地光盤 本地硬盤 ftp server http server nfs server 安裝過程當中,如果向手動指定安裝源;敲ESC鍵,在ESC鍵后出現的boot提示符下,鍵入Linux method:這表示提示用戶用什么方式來安裝 ESC boot:linux method
anaconda的工作過程:兩個階段
安裝前配置階段 安裝過程使用的語言; 鍵盤類型 安裝目標存儲設備 Basuc Storage:本地磁盤 Special Storage(特殊存儲):iSCSI 通常是一個網絡硬盤 設定主機名 配置網絡接口 時區 管理員密碼 設定分區方式及MBR的安裝位置; 創建一個普通用戶; 選定要安裝的程序包; (如果有需要的話有可能運行安裝前腳本) 安裝階段 在目標磁盤創建分區并進行格式化; 將選定的程序包安裝至目標位置; 安裝bootloader; (如果有需要的話有可能運行安裝后腳本) 首次啟動(不屬于anaconda):需要配置幾個功能; iptables:是否啟動防火墻,對于剛學習linux的同學請關閉它 selinux:也要求關掉 core dump(核心轉儲):配置核心轉儲功能可以保證在某一時刻,內核崩潰時, 它能夠把內核崩潰那一刻內存中的所有數據給創建成一個映像文件保存在磁盤上。 并被將其數據拿出來在其他系統上分析在上一次內核崩潰的原因,以確定下次配置時繞開這個問題, 而且對內存大小要求不得小于2G。當然前提是有核心轉儲這個映像文件的分析能力。
anaconda的配置方式:有兩種
(1)交互式配置方式; (2)支持通過讀取配置文件中定義好的配置項自動完成配置;這些配置項是按照特點語法給出的;遵循特定的語法格式,此文件即為kickstart
安裝引導選項:
boot:在boot目錄下可以鍵入的選項有; text:文本安裝方式 method:手動指定使用的安裝方法 與網絡相關的引導選項 ip=IPADDR:靜態指明網卡設備的ip地址 netmask=MASK gateway=GW dns=DNS_SERVER_IP 遠程訪問功能相關的引導選項: vnc vncpasswd='PASSWORD' 啟動緊急救援模式: rescue 裝載額外驅動: dd www.redhat.com/docs,《installation guide》 ks:指明kickstart文件的位置,來告訴nanconda程序到哪加載kickstart文件;加載方式如下 ks= 如果kickstart在光盤上就使用 ks=cdrom:/PATH/TO/KICKSTART_FILE 如果kickstart在硬盤上就使用 ks=hd:/DEVICE/PATH/TO/KICKSTART_FILE 如果kickstart在HTTP Service上就使用 ks=httpd://HOST[:PORT]/PATH/TO/KICKSTART_FILE 如果kickstart在FTP Service上就使用 ks=ftp://HOST[:PORT]/PATH/TO/KICKSTART_FILE 如果kickstart在HTTPS Service上就使用 ks=httpds://HOST[:PORT]/PATH/TO/KICKSTART_FILE
注意:在我們系統安裝完成之后,在家目錄中會自動生成一個名為anaconda-ks-cfg文件,這個文件就是kickstarta文件,我們可以把這個文件當模版,借助于它來定義一個我們自己所需要安裝系統所使用的kickstart文件
kickstart文件格式
這個文件大體上由三部分組成;如下 命令段: 指定各種安裝前配置選項,如鍵盤類型等; 必備命令 authconfig:認證方式配置 authconfig --erableshadow --passalgo=sha512 bootloadet:定義bootloader的安裝位置及相關配置 bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" keyboadrd:設置鍵盤類型 keyboard us lang:語言類型 lang en_US.UTF-8 part:分區布局 part /boot --fstype=ext4 --size=200 part pv.008002 --size=61440 rootpw:管理員密碼 rootpw --iscrypted $6$CGsqab6d$Cd.PnnW timezone:指定時區 timezone Asia/shanghai 補充:分區相關的其他命令 clearpart:清除分區 clearpart --all volgroup:創建卷組 volgroup vg0 --pesize=8192 pv.008002 logvol:創建邏輯卷 logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480 可選命令 install OR upgtade:安裝或升級; text:安裝界面類型,text為tui,默認為gui netwotk:配置網絡接口 network --onboot yes --device eth0 --bootproto dhcp --noipv6 firewall:防火墻 firewall --disabled selinux:基于內核的安全訪問加固策略庫 selinux --disabled halt,poweroff或reboot:安裝完成之后的行為; repo:安裝時使用的repository repo --name="CentOS" --baseurl=cdrom:sr0--cost=100 url:指明安裝時使用的repository,但為url格式; url --url==http://10.1.0.1/cobbler/ks_mirror/6/ 系統安裝完成之后禁用防火墻: Centos 6: # service iptables stop # chkconfig iptables off Centos 7: # system stop firewalld.service # system disablr fitrwalld.service 系統安裝完成之后禁用selinux 編輯/etc/sysconfig/selinux或/etc/selinux/sysconfig文件,修改SELINUX參數的值為下面其中之一: permissive disabled 立即生效: # getenforce # setenfore 0 程序包段: 指明要安裝程序包,以及包組,也包括不安裝的程序包 以%packages開頭以%end結尾,中間的都表示程序包 %packages @group_name:前面加一個@:這表示安裝一個程序包 package:沒有@表示單個程序包 -package:表示明確指明不安裝的程序包, 有可能為了解決依賴關系會自動被裝上 %end 腳本段: %pre:安裝前腳本 運行環境:運行安裝介質上的微型linux系統環境,命令有限 %post:安裝后腳本 運行環境:安裝完成的系統
如何定制kickstart文件
# yum install system-config-kickstart # system-config-kickstart 檢查語法錯誤 # ksvalidator KICKSTART_FILE
示例:生成kickstart文件
1)安裝生成工具 yum install system-config-kickstart
2)運行此工具(依賴圖形界面) systrm-config-kickstart (教室網絡環境)依次如下設置
最后點擊左上角保存至家目錄,保存完之后運行ksvalidator ks.cfg檢查腳本是否有語法錯誤。
3)創建一個新的虛擬機,要求虛擬機橋接網絡模式,光盤啟動
4)敲ESC,在boot命令行鍵入以下內容,敲回車即開始安裝 此處為一個虛擬機ftp服務地址
示例:制作光盤引導鏡像
1)首先需要個kickstart文件,我這里先下載一個kickstart文件。注意下載的文件檢查其網絡安裝url是否正確
2)創建一個新目錄
]# mkdir myboot
3)將已經掛載好的光盤中的isolinux整個目錄復制到新目錄中
]# cp -r /mnt/isolinux/ ./
4)由于此文件是從光盤復制過來是只讀的,所以需要先改可寫。
改了之后所有的文件都可以根據自己的需要進行修改了,這里修改isolinux.cfg leabel一項
5)復制剛才下載的kickstart文件到myboot目錄
6)創建ISO文件系統,執行mkisofs命令,需要退出myboot目錄
在當前目錄可看到生成一個名為boot.iso的文件
7)將boot.iso鏡像拷貝到物理機上,然后創建一個新的虛擬機,使用boot.iso做光盤啟動,指定kickstart文件,kickstart文件中是指定通網絡安裝,因為此時內核還沒有啟動網絡功能,并不會自己配置網絡,所以要自己配置一個ip地址。敲回車開始安裝
注意:如果需要在安裝菜單界面無需指明kickstart文件的話,需要在有dhcp服務的網絡環境下安裝的時候在上面第四步驟更改如下參數
而且需要kickstart文件指明網絡配置如下參數
原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/48722