天天看點

Linux自動引導配置CD光牒的制作

     我們安裝Linux系統,需要用到系統安裝CD光牒,它會顯示一個互動的界面,讓我們進行設定,等設定完成後實作自動安裝。這個過程是怎麼實作的?我們可不可以自定義一個CD光牒,來實作自動安裝,不進行互動呢?答案是肯定的

    Redhat Linux系統的安裝有兩個階段:

    1,ananconda

    它是一個開源的軟體,是linux安裝前的配置程式,它依賴于CD光牒中的isolinux目錄中的小linux系統來啟動。當我們插入系統安裝CD光牒後,出現的那個互動的讓使用者來選擇系統設定,選擇要安裝軟體包等,都是通過這個程式來實作的,可見isolinux這個目錄是非常重要的。

    2,installation

    這一步是真正的安裝,根據我們的選擇,實作系統安裝。

    ananconda有兩種模式:

    1,圖形或指令行模式進行交換的配置

    2,把系統配置寫到一個檔案中,用ks指定,ananconda會自動讀取

    而我們怎麼實作自動配置呢?

    我們可以自己定義一個配置檔案,自定義我們要安裝的軟體包,自定義系統的設定,讓ananconda來讀取,這樣就不用實作互動了。

    那麼什麼是ks檔案呢?

    ks即kickstart,它主要用于系統的自動安裝。ananconda會讀取它指向的配置好的檔案,實作自動安裝。

    kickstart檔案主要有三部分:

    1,指令段

    主要是配置作業系統,例如時區,鍵盤類型,網絡的配置等。

    2,軟體包段

    在安裝的過程中,預設要安裝的軟體包

    package_name  指定要安裝的單個軟體包

    @groupname    指定要安裝的包組

    -package_name 安裝包組的時候可以不安裝此軟體包

    3,腳本段

    這個是可選的

    %pre 指定預安裝腳本,系統安裝前要運作的腳本,并且腳本中用到的指令,isolinux目錄中的小linux系統必須支援

    %post 指定後安裝腳本,系統安裝後要運作的腳本,這些腳本中可以執行很多指令了

一,我們來寫一個kickstart檔案,這個檔案的字尾必須為.cfg

mkdir /myboot

cd /myboot

vi jia.cfg

install     

安裝方式為安裝,而不是更新系統

test

表示安裝界面為文本

cdrom

指定系統安裝檔案的位置,CD光牒

key --skip

跳過輸入序列号

lang en_US

系統安裝後預設要使用的語言

keyboard us

指定鍵盤類型

xconfig --startxonboot --resolution 1024x768 --depth 16

系統安裝後,系統啟動後啟用圖形界面,指定分辨率和色深

network --device eth0 --bootproto static --ip=172.16.100.8 --netmask=255.255.0.0 --gateway=172.16.0.1 --nameserver=192.168.0.254

配置系統安裝後的網絡,配置靜态ip,位址,掩碼,網關,DNS,系統安裝成

rootpw redhat

設定root的密碼是redhat

firewall --disabled

預設關閉防火牆

authconfig --useshadow --enablemd5

使用shadow檔案存放使用者密碼,并且用md5加密密碼存放

selinux --disabled

不啟用selinux

timezone --utc Asia/Shanghai

設定時區

zerombr yes

清空mbr重新安裝

bootloader --location=mbr --driveorder=sda

把bootloader安裝在mbr中

clearpart --all --initlabel

删除磁盤所有分區,如果磁盤沒有初始化,直接初始化

part /boot --fstype ext3 --size=100

建立一個100M的分區,挂載到/boot目錄,檔案系統為ext3

part pv.01 --size=40960

建立實體卷

volgroup vol0 --pesize=8192 pv.01

在pv.01實體卷中建立卷組

logvol swap --fstype swap --name=swap --vgname=vol0 --size=1024

在vol0上建立邏輯卷,并為其建立swap檔案系統,邏輯卷名稱為swap

logvol /home --fstype ext3 --name=home --vgname=vol0 --size=2048

在vol0上建立邏輯卷,建立ext3檔案系統,邏輯卷名稱為home,挂載至/home

logvol / --fstype ext3 --name=root --vgname=vol0 --size=29984

在vol0上建立邏輯卷,建立ext3檔案系統,邏輯卷名稱為root,挂載至/

reboot   

安裝完成後自動重新開機系統

%packages

下面定義的是要系統安裝的軟體包組和單個軟體包,這個可以根據我們的需要,實作自定義的安裝

@GNOME Desktop Environment

@X Window System

@Printing Support

@Development Tools

elinks

openssh

openssh-server

openssh-clients

vim-enhanced

samba-common

samba-client

gimp

gimp-data-extras

enscript

libcap

ntp

coreutils

elfutils

elfutils-libelf

gimp-print-plugin

gnome-icon-theme

gstreamer

gstreamer-tools

libgnomeprint22

libgnomeprintui22

libgsf

libIDL

libraw1394

nautilus-cd-burner

openmotif

pyorbit

startup-notification

ttmkfdir

firefox

mutt

screen

%post

下面定義的是系統安裝之後所要執行的指令

id fedora &> /dev/null || useradd fedora

echo fedora | passwd --stdin fedora

sed -i 's@^id:5:@id:3:@' /etc/inittab

這個jia.cfg檔案寫好了,這樣是不是很麻煩呀,呵呵!

我們也可以用一個圖形化的工具,來建立kickstart檔案:

mount /dev/cdrom /media

cd /media/Server

rpm -ivh system-config-kickstart--2.6.19.8-2.el5.noarch.rpm

要安裝這個軟體包後,才能使用這個工具,不同系統軟體包的版本不同

有于我們Linux系統安裝之後,會有一個檔案存放我們的安裝時的配置,這個檔案就是/root/anaconda-ks.cfg,我們可以以這個檔案為模闆進行修改

system-config-kickstart

然後導入這個檔案,進行修改,最後儲存退出即可

二,插入CD光牒,我們把CD光牒目錄中的isolinux目錄複制到我們的/myboot目錄

cp -pr /media/isolinux ./

cd isolinux

vi isolinux.cfg

把第一行“default”改為:

default linux ks=cdrom:/jia.cfg

表示預設情況下,這個小linux讀取CD光牒中的ks檔案

把第三行“timeout 600”改為:

timeout 5

即那個等待使用者輸入的界面等待5秒之後,會執行預設選項,即ananconda會依據上面定義的ks檔案jia.cfg進行配置

三,做CD光牒

cd /

mkisofs -o boot.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T myboot/

會生成一個boot.iso檔案,在/下,這就是我們制作的自動引導CD光牒

    到這裡我們自定義的配置CD光牒已經做好了,可以把boot.iso檔案做成CD光牒,然後導入光驅運作,運作一段時間會出現一個界面"The redhat enterprise linux server is not found...",其實這時候ananconda已經從jia.cfg中讀取了系統的配置資訊,我們再把CD光牒換成redhat的安裝CD光牒即可實作根據我們jia.cfg檔案中的定義實作自動安裝

注意:由于我們在jia.cfg檔案中定義了多個分區,所有你的磁盤大小要比我們建立的分區的容量之和大,即要大于45G(如果不想要這麼大的分區,在jia.cfg檔案中更改一下即可)

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

繼續閱讀