CentOS系統安裝

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 (教室網絡環境)依次如下設置 CentOS系統安裝 CentOS系統安裝 CentOS系統安裝 CentOS系統安裝 CentOS系統安裝 CentOS系統安裝 CentOS系統安裝 CentOS系統安裝 CentOS系統安裝 CentOS系統安裝 CentOS系統安裝 CentOS系統安裝

最后點擊左上角保存至家目錄,保存完之后運行ksvalidator ks.cfg檢查腳本是否有語法錯誤。

3)創建一個新的虛擬機,要求虛擬機橋接網絡模式,光盤啟動

CentOS系統安裝

4)敲ESC,在boot命令行鍵入以下內容,敲回車即開始安裝 此處為一個虛擬機ftp服務地址

CentOS系統安裝

示例:制作光盤引導鏡像

1)首先需要個kickstart文件,我這里先下載一個kickstart文件。注意下載的文件檢查其網絡安裝url是否正確

CentOS系統安裝

2)創建一個新目錄

]# mkdir myboot

3)將已經掛載好的光盤中的isolinux整個目錄復制到新目錄中

]# cp -r /mnt/isolinux/ ./

CentOS系統安裝

4)由于此文件是從光盤復制過來是只讀的,所以需要先改可寫。

CentOS系統安裝

改了之后所有的文件都可以根據自己的需要進行修改了,這里修改isolinux.cfg leabel一項

CentOS系統安裝

5)復制剛才下載的kickstart文件到myboot目錄

CentOS系統安裝

6)創建ISO文件系統,執行mkisofs命令,需要退出myboot目錄

CentOS系統安裝CentOS系統安裝

在當前目錄可看到生成一個名為boot.iso的文件

CentOS系統安裝

7)將boot.iso鏡像拷貝到物理機上,然后創建一個新的虛擬機,使用boot.iso做光盤啟動,指定kickstart文件,kickstart文件中是指定通網絡安裝,因為此時內核還沒有啟動網絡功能,并不會自己配置網絡,所以要自己配置一個ip地址。敲回車開始安裝

CentOS系統安裝

注意:如果需要在安裝菜單界面無需指明kickstart文件的話,需要在有dhcp服務的網絡環境下安裝的時候在上面第四步驟更改如下參數

CentOS系統安裝

而且需要kickstart文件指明網絡配置如下參數

CentOS系統安裝

原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/48722

(1)
M20-1馬星M20-1馬星
上一篇 2016-09-23
下一篇 2016-09-23

相關推薦

  • free命令的介紹及參數的詳細分析

           通過對free命令的深入學習,我覺得有必要整理一個文檔,供自己和小伙伴們今后的復習使用。   free 命令的詳細剖析      參數有:-b/k/m/g    分別以bytes/kilobytes/megabyte…

    2017-07-17
  •         linux 文件顏色的含義:         藍色代表目錄         綠色代表可執行文件 &nbs…

    Linux干貨 2016-12-05
  • N22-第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。     首先用who命令查看所有已登錄用戶信息,然后用cut命令取出用戶名,再用sort -u對用戶名排序并刪除重復的用戶名      2、取出最后登錄到當前系統的用戶的相關信息。  &n…

    Linux干貨 2016-09-05
  • Linux基礎知識(六)

    本問主要講述Linux的基礎知識,具體包一下內容: 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; cp /etc/rc.d/rc.sysinit /tmp sed "s/^[[:space:]]\?/#/g" /tmp/rc.sysini…

    Linux干貨 2016-10-30
  • LVM應用概要

    LVM — 即Logical Volume ?Manager(邏輯卷管理管理),是Linux的一種磁盤管理機制。 LVM可以將物理磁盤以PV(Physical Volume)為單位抽象成VG(Volume Group)。在VG中,最小存儲單元是一個PE(Physical Extent)。在VG的基礎上再抽象一層,劃分出LV(Logical Vol…

    2017-11-28
  • shell腳本編程之運算

    一、數學運算   1、expr命令     此命令可以在命令行執行數學運算操作。     由于此命令使用時過于麻煩,所以不推薦使用。   2、方括號和雙圓括號      $[ EXPRESSION ]      $((&…

    Linux干貨 2015-12-31
欧美性久久久久