天天看點

全自動化安裝linux

系統:centos 6.5

工具:system-config-kickstart

環境:Vmware

參考文檔:http://liaoph.com/linux-kickstart/

 https://fedoraproject.org/wiki/Anaconda/Kickstart/zh-cn

 http://lovelace.blog.51cto.com/1028430/1217195/

1.原理:

參考:http://liaoph.com/linux-kickstart/ 這裡摘抄重要的片段

#從系統安裝說起

在 RHEL,CentOS,Fedora 等系統中,安裝系統使用的程式名叫 anaconda,它屬于 FedoraProject,由 Python 開發,能夠提供圖形或者文本界面用于系統安裝。

在安裝系統之前,計算機的硬體上可能是沒有作業系統的,是以為了能夠運作安裝程式,需要一個臨時的作業系統,引導開機,啟動安裝程式,在使用CD光牒安裝操作 linux 系統(這裡特指 RHEL 系列的系統)時,一共有兩個階段,分别為引導和安裝。

#Stage 1

使用CD光牒引導時,系統啟動過程為 POST(加電自檢) —> BIOS 進行硬體檢測并載入CD光牒的 MBR —> CD光牒的引導程式為 isolinux.bin,它根據 isolinux.cfg 生成一個菜單。當使用者選擇安裝作業系統後,引導程式加載核心(vmlinuz)和 initrd.img 檔案,initrd.img 會在記憶體中生成一個臨時的作業系統,為安裝過程提供一個安裝環境。當系統切換至 initrd 檔案系統後,initrd.img 中的 init 程序調用 /sbin/loader 程式,loader 探測安裝媒體,加載CD光牒 /img/in-post/stage2.img (在 RHEL6 中叫 install.img ),切換到 stage2,stage2.img 的檔案系統類型是 suqashfs,安裝系統的程式 anaconda 就包含其中。

#Stage 2

stage2.img 是 SquashFS 類型檔案系統,其中包含了安裝程式 anaconda 和它的配置檔案。anaconda 提供了安裝過程的配置界面,它可以提供文本、圖形等安裝管理方式,并支援 kickstart 等腳本提供自動安裝的功能。在安裝系統之後會自動生成 /root/anaconda-ks.cfg 的配置資訊,其中記錄了安裝系統所選取選項自動生成的,友善以後自動安裝。

#Kickstart

在正常系統安裝中的需要手動標明系統安裝的各種選項,kickstart 檔案定義了這些系統安裝需要選擇的選項,anaconda 讀取 kickstart 檔案後,就可以根據檔案的設定來進行系統安裝,而不需要人為的選擇安裝配置了。

Kickstart 分為三個段:(具體參考:  https://fedoraproject.org/wiki/Anaconda/Kickstart/zh-cn)

指令段:

必選指令:keyboard  lang  auth 等

可選指令:autopart autostep等

軟體包選擇段:%packages表示以下是軟體包選擇段,@開頭的表示包組,也可以指定單個包名,如:

%packages

@Base

@Core

@base

@basic-desktop

@chinese-support

腳本段:

%pre 表示安裝前腳本,此時的 Linux 系統環境為微縮版環境,腳本應盡可能簡單

%post 表示安裝後腳本,此時的 Linux 系統環境為已經安裝完成的系統。

2.安裝system-config-kickstart

yum install system-config-kickstart-2.8.6.6-1.el6.noarch 即可

注意:在windows下用xshell使用system-config-kickstart需要安裝Xmanager軟體,啟動system-config-kickstart可能還需要安裝額外的桌面環境,具體操作沒記錄,這裡不再重複此情景

3.建立kickstart配置檔案,(利用圖形界面或者手動編輯皆可),如下:

[root@cqhdtest tmp]# cat  iso/ks.cfg 

#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Firewall configuration

firewall --enabled --ssh

# Install OS instead of upgrade

install

# Use network installation

url --url="ftp://192.168.2.221/pub/iso"

# Root password

rootpw --iscrypted $1$/IK2ojw3$l5MudyE13/w3txJD1poG7.

# System authorization information

auth  --useshadow  --passalgo=sha512

# Use graphical install

graphical

# System keyboard

keyboard us

# System language

lang en_US

# SELinux configuration

selinux --enforcing

# Do not configure the X Window System

skipx

# Installation logging level

logging --level=info

# System timezone

timezone  Africa/Abidjan

# Network information

network  --bootproto=static --device=eth0 --gateway=192.168.2.1 --ip=192.168.2.212 --nameserver=8.8.8.8 --netmask=255.255.255.0 --onboot=on

# System bootloader configuration

bootloader --location=mbr

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all  

# Disk partitioning information

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

part / --fstype="ext4" --size=8000

reboot  --eject

4.配置vsftp和修改isolinux.cfg (用vsftp的原因是我本地的鏡像一直沒制作成功,一直提示centos disc沒在cdrom中,具體原因有待深究,理論上本地的linux安裝樹可以和anaconda做在一起)

vsftp的配置:略(以後會專門寫一篇,參考:http://www.ha97.com/4113.html)

挂載安裝鏡像:mount  /dev/sr0   /tmp/source (cdrom 都是被識别為sr0,可以ls -a /dev 看到cdrom其實指向sr0)

複制鏡像内容到ftp:

mkdir  /var/ftp/pub/iso

cp  -drp  /tmp/source/*  /var/ftp/pub/iso  (在配置kickstart的時候記得ftp目錄是/pub/iso,不是/var/ftp/pub/iso,因為我的ftp根目錄為/var/ftp )

制作新的鏡像:

mkdir  /tmp/iso

cp   -drp /tmp/source/*  /tmp/iso 

vi  /tmp/iso/isolinux/isolinux.cfg  (在append ,添加ks=cdrom:/ks.cfg 這行)片段如下:

label linux

menu label ^Install or upgrade an existing system

menu default

kernel vmlinuz

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

(還可以修改isolinux.cfg的timeout時間,可以減少開機界面stage1那個選擇等待時間)

mkisofs   -R -J -T -v -no-emul-boot -boot-load-size 4 -boot-info-table -V "centos install" -b  isolinux/isolinux.bin -c isolinux/boot.cat -o  install.iso   /tmp/iso/

5.安裝測試:直接拿install.iso 挂載安裝即可

本文轉自biao007h51CTO部落格,原文連結:http://blog.51cto.com/linzb/1851956 ,如需轉載請自行聯系原作者