#27 Linux系統安裝:centos系

Linux系統安裝:centos系

  

  post --> bootsequence(BIOS)--> bootLoader(grub -->1.5 stage --> 2nd stage) --> kernel(devtmpfs) --> [ ramdisk (dev,proc,sys) -->] rootfs --> /sbin/init(sysV init,upstart init,systemd)  


對於所安裝的centos操作系統來說,其一級子目錄中,有一些絕對不能單獨分區,有一些可以單獨分區;


  絕對不能分區:bin,sbin,lib,lib64

  建立單獨分區:boot,home,var,usr


安裝Linux系統:

  /boot

  swap

  /

  /home

  /var

  /usr


磁盤分區規劃:

  啓動分區

  根分區

  swap


規劃文件系統:

  /sbin/init,/sbin/systemd

  所有的應用程序存放的路徑                                                                                       應用程序所依賴的庫文件存放的路徑

  應用程序所依賴的配置文件存放的路徑


centos系/RHEL系操作系統的安裝程序:anaconda


在安裝操作系統的過程中,系統的啓動流程:

  post --> BootLoader --> kernel --> initrd --> rootfs --> anaconda


  anaconda給我們提供了兩種操作界面:

    TUI:基於curses的文件配置窗口;

    GUI:圖形界面;

    CLI:命令行界面;


  以光盤爲例,centos系統的安裝啓動流程:

    1.post

    2.讀取MBR,boot.cat,就是光盤的BootLoader;/isolinux/boot.cat

    3.stage2:/isolinux/isoinux.bin 

      配置文件:/isolinux/isolinux.cfg

        label linux

          標籤名稱,可以用來引用下述所有命令的通用名稱;

        menu label ^Install or upgrade an existing system

          菜單選項的具體內容及對應的熱鍵;

        menu default

          將此菜單項作爲默認菜單項;

        kernel vmlinuz

          指定內核文件名稱

        append initrd=initrd.img

          向內核傳遞附加參數,常用的參數有:

            initrd=initrd.img

            text:從文本界面啓動

            method:手動選擇安裝方式

            ip=ADDRESS

            netmask=MASK

            gateway=GW

            dns=DNS_SERVER

            rescue:啓動緊急救援模式

            dd:使用kickstart啓動無人值守安裝,指明kickstart配置文件的所在位置:

              光盤上:ks=cdrom:/path/to/kickstart_file

              本地硬盤:ks=h:/device/path/to/kickstart_file

              某個遠程web站點:ks=http://host[:port]/path/to/kickstart_file

              某個遠程FTP站點:ks=http://[username@]host[:port]/path/to/kickstart_file

              某個遠程安全web站點:ks=http://host[:port]/path/to/kickstart_file


    4.裝載rootfs,並啓動anaconda

      注意:如果內存不夠512M,則anaconda是以文本界面啓動的;如果內存大於512M,anaconda默認以圖形界面啓動;


      “ECS”鍵 --> boot:Linux text


    注意:上述的所有內容一般位於引導設備,而後續的anaconda及其他安裝時所用的程序包或程序包組等可來源於yum倉庫,yum倉庫的位置:

      本地光盤

      本地硬盤

      FTP服務器

      HTTP服務器

      NFS服務器


      如果想手動指定程序包安裝源:


      “ECS”鍵 --> boot:Linux method


anaconda的工作過程:

  安裝前的準備配置階段:

  1.安裝過程中使用的語言:簡體中文;

  2.鍵盤佈局類型:美國英語式;

  3.系統安裝的目標存儲設備;

    basic storage,本地磁盤;

    special storage,網絡存儲,iscsi,NAS,SAN,...;

  4.設置主機名稱;

  5.配置網絡接口;

  6.選擇時區;

  7.管理員密碼;

  8.設定分區方式及MBR安裝的位置;

  9.選擇要安裝的程序包或程序包組;

  

  安裝階段:

    1.有可能運行某些預安裝腳本,完成初始化工作;

    2.根據準備階段規劃的分區格式進行分區創建並執行格式化安裝文件系統並掛載所有文件系統至指定掛載點;

    3.將選定的程序包或程序包組安裝至目標位置;

    4.安裝BootLoader至MBR及boot分區中;

    5.製作ramdisk文件;

    6.如果有必要,可能會運行安裝後腳本;


  首次啓動:

    1.選擇許可證信息;

    2.創建普通用戶;

    3.配置內核核心轉儲(kdump,core dump),如果內存小於2GB,kdump不開啓;

      當某一時刻,內核核心崩潰時,kdump會將內核崩潰時內存中的所有數據創建成一個映像文件保存到磁盤上;通過分析此文件的內容,查找出內核崩潰的直接或間接原因;


       1.是否配置iptables防火牆;初學者建議關閉;

       2.是否配置selinux安全機制的啓動,初學者建議關閉;


kickstart文件的格式:

  命令段:指明各種安裝前的配置;

    必備命令:

      authconfig:認證方式的配置

        authconfig --useshadow --passalgo=sha512

      bootloader:定義bootloader的安裝位置和相關配置選項

        bootloader --loaction=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"

      keyboard:設置鍵盤的類型

        keyboard us

      lang:安裝過程中的語言類型

        lang zh_CN.UTF-8

      part:分區佈局及分區使用方式

        part /boot --fstype=ext4 --size=200

        part swap --size=2048

        part pv_name --size=51200 --grow

      clearpart:清除分區

        clearpart --none --drives=sda

      volgroup:創建卷組的命令

        vo了group vg_name --pesize= 8192 pv_name

      logvol:穿件邏輯卷的命令

        logvol /home --fstype=ext4 --name=lv_home --vgname=vg_name --size=10240

        logvol /var --fstype=ext4 --name=lv_home --vgname=vg_name --size=10240

        logvol /usr --fstype=ext4 --name=lv_home --vgname=vg_name --size=10240

      rootpw:指明超級用戶root的密碼

        rootpw --iscrypted $6$salt$encrypted_pass

      timezone:時區

        timezone Asia/shanghai

    可選擇命令:    

      install:全新安裝操作系統

      upgrade:升級安裝操作系統

      text:使用文本界面安裝操作系統,默認是GUI;

      network:配置網絡接口

        network --onboot yes --device eth0 --bootproto static --ip 172.16.72.1 --netmask 255.255.0.0 --noipv6 --hostname a.link.com

      firewall:防火牆設置

        firewall:--disabled

        firewall:--service=ssh

      selinux:selinux的設置

        selinux --disabled

        selinux --enforcing


        題外話:

          如果計劃在已經開啓防火牆和selinux的強制模式時,可以通過這樣的幾十種方式將其關閉:

          防火牆;

            centos 6:

              # service iptables stop

              #chkconfig iptables off

            centos 7:

              # systemctl stop firewalld.service

              # systemctl disable firewalld.service


            如果想要防火牆臨時不生效;

              # iptables -F 適用於所有的centos系統版本;


            selinux:

              1.編輯selinux的配置文件/etc/sysconfig/selinux(/etc/selinux/config),在配置文件中,有一行語句爲:SELINUX={disabled|enforce|permissive}


              2.編輯grub的啓動配置文件/boot/grub/grub.conf

                kernel /vmlinuz-version-release ARGS selinux=0


              如果想要selinux臨時不限制用戶行爲:

                # setenforce 0 == enforcing --> permissive

                # setenforce 1 == permissive --> enforcing

                # getenforce

        repo:安裝系統隨使用的repository

          repo --name="centos" --baseurl=cdrom:sr0 --cost=100

          repo --name="centos" --baseurl=http://host[:port]/path --cost=100   

        reboot:安裝完成之後重新啓動

        halt/poweroff:安裝完成之後關閉系統

        url:指明安裝時使用的repository,但必須使用url格式;

          url --url=http://host[:port]/path

        firstboot --disable:首次啓動關閉

    腳本段:

      %per:安裝前腳本的開始部分

        運行環境:運行於安裝戒指上的微信Linux系統環境;

      %end


      %post:安裝後腳本的開始部分

        運行環境:安裝以後的操作系統

      %end


    程序包/程序包組段:指明要安裝的程序包或程序包組以及不安裝程序包;

      %packages

        @pack_group_name:安裝一個程序包組;

        pack_name:安裝單個指定的程序包;

        -pack_name:明確指出不安裝的程序包;有時即便明確指出該項,被指定的程序包也可能會被安裝上(被其他程序包裏被安裝或被其他程序被依賴);

      %end


如何創建kickstart文件:

  1.直接以anaconda-ks.cfg爲模板,複製之後修改即可;

  2.可以使用工具來創建;

    如果命令不存在,則yum install system-config-kickstart安裝即可;

    # system-config-kickstart &


    可以全新創建,也可以依據其他的ks文件(如anaconda-ks.cfg)來修改生成新的配置文件;


  3.檢測ks文件的語法是否存在錯誤:

    ksvalidator


    如果該命令不存在,可以安裝pykickstart-1.74.20-1.el6.noarch


http://172.16.72.1/ks.cfg


利用一臺CentOS7構建web server,方法如下:

  臨時清理防火牆規則,並將selinux設置爲permissive模式:

    ~]# iptables -F

    ~]# setenforce 0

  啓動WEB服務

    ~]# systemctl start httpd.service

  查看web服務的運行狀態,只要有綠色文字顯示的active(running),即爲服務正常啓動;

    ~]# systemctl status httpd.service 

  爲CentOS 6提供repository

    ~]# mkdir /var/www/html/centos_6_repo

    ~]# mount /dev/sr0 /mnt/cdrom  

      注意:光驅中放的是CentOS6的安裝光盤的CD1;

    ~]# cp -a /mnt/cdrom/* /var/www/html/centos_6_repo


到此,web服務器的配置完成;


利用一臺已經安裝好的CentOS 6操作系統,創建啓動光盤:

  將下述內容寫入kickstart文件;

  ~]# vim /root/centos6-ks.cfg

#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Firewall configuration

firewall --disabled

# SELinux configuration

selinux --disabled

# Install OS instead of upgrade

install

# Use network installation

network --onboot yes --device eth0 --bootproto dhcp

url --url="http://172.16.72.1/myrepo"

# Root password

rootpw --iscrypted $1$iRHppr42$VMesh73wBqhUTjKp6OYOD.

# System authorization information

auth  --useshadow  --passalgo=sha512

# Use text mode install

text

firstboot --disable

# System keyboard

keyboard us

# System language

lang en_US

# SELinux configuration

selinux --disabled

# Reboot after installation

reboot

# System timezone

timezone  Asia/Shanghai

# System bootloader configuration

bootloader --append="rhgb crashkernel=auto quiet" --location=mbr --driveorder="sda"

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all  

# Disk partitioning information

part /boot --fstype="ext4" --size=200

part pv.008 --size=61440


volgroup myvg --pesize=4096 pv.008

logvol / --fstype=ext4 --name=root --vgname=myvg --size=20480

logvol swap --name=swap --vgname=myvg --size=2048

logvol /usr --fstype=ext4 --name=usr --vgname=myvg --size=10240

logvol /var --fstype=ext4 --name=var --vgname=myvg --size=20480


#repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100


%post

echo -e 'Qhdlink Linux for Learning Services\nhttp://www.linklinux.com\n' >> /etc/issue


sed -i '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g' /etc/inittab


ifconfig eth0 172.16.69.2/16


%end


%packages

@base

@core

@debugging

@basic-desktop

@desktop-debugging

@desktop-platform

@desktop-platform-devel

@development

@directory-client

@fonts

@general-desktop

@graphical-admin-tools

@input-methods

@internet-applications

@internet-browser

@java-platform

@legacy-x

@network-file-system-client

@office-suite

@print-client

@remote-desktop-clients

@server-platform

@server-platform-devel

@server-policy

@workstation-policy

@x11

mtools

pax

python-dmidecode

oddjob

wodim

sgpio

genisoimage

device-mapper-persistent-data

systemtap-client

abrt-gui

desktop-file-utils

jpackage-utils

samba-winbind

certmonger

pam_krb5

krb5-workstation

openmotif

libXmu

libXp

%end


創建引導光盤:

  ~]# mkdir myiso

  ~]# cp -r /mnt/cdrom/isolinux /root/myiso/

    注意:這樣的複製方法是將isolinux目錄直接複製到myiso目錄中,也就是說isolinux是myiso的子目錄;

  ~]# vim /root/myiso/isolinux/isolinux.cfg

label linux

  menu label ^Install or upgrade an existing system

  menu default

  kernel vmlinuz

  append initrd=initrd.img ks=cdrom:/centos6-ks.cfg


  ~]# cp /root/centos6-ks.cfg /root/myiso/

  ~]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso myiso/


創建U盤啓動盤

  方法一:

    ~]# dd if=/dev/sr0 of=/dev/sdb

  方法二:

    ~]# fdisk /dev/sdb (將整個U盤分爲一個分區,並將其分區類型修改爲vfat,即在fdisk交互式模式中使用t --> b命令完成轉換)

    ~]# mkfs.vfat /dev/sdb1

    ~]# mount /dev/sdb1 /mnt/usb

    ~]# mkidr -p /mnt/usb/grub

    ~]# cp /mnt/cdrom/isolinux/{vmlinuz,initrd.img} /mnt/usb

    ~]# vim /mnt/usb/grub/grub.conf

default=0

timeout=5

title the linux boot from usb

  root (hd0,0)

  kernel /vmlinuz

  initrd /initrd.img ks=http://172.16.72.1/ks.cfg (將centos6-ks.cfg文件放置於CentOS7的/var/www/html目錄中,改名爲ks.cfg即可)

  ~]# grub

    grub> root (hd1,0)

    grub> setup (hd1)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章