搜尋
首頁運維linux運維Linux基於pxe+dhcp+nfs+tftp+kickstart的系統網路安裝方法
Linux基於pxe+dhcp+nfs+tftp+kickstart的系統網路安裝方法Jun 23, 2017 pm 02:35 PM
linux基於安裝系統網路

原文發表於:2010-09-05

轉載至cu於:2012-07-21

一.原理簡介

PXE(preboot execute environment)工作於Client/Server的網路模式,支援工作站透過網路從遠端伺服器下載鏡像,並由此支援來自網路的作業系統的啟動。啟動過程中,終端由DHCP伺服器指派IP位址,再用TFTPtrivial file transfer protocol)等協定下載存在於伺服器(NFS,FTP,HTTP# )Liunx內核和根檔案系統等到本機記憶體中並執行,由此完成終端基本軟體設置,從而引導預先安裝在伺服器中的終端作業系統。

Kickstart 是一種無人職守安裝方式。它透過記錄典型的安裝過程中所需人工幹預填寫的各種參數,並產生一個ks.cfg檔案;在其後的安裝過程中單出現要求填寫參數的時候,安裝程式會找kickstart文件,在能找到合適的參數情況下就不需要人工幹預。

二.環境說明

os

##    CentOS 5.4 i386

soft

#    dhcp, nfs, tftp, kickstart (gnome x-window)

##yum#安裝: 

yum –y install dhcp*
yum –y install nfs*
yum –y install tftp*
yum –y install system-config-kickstart*

ip

    eth0 : 192.168.1.254

三.安裝設定流程簡介

#1. 設定DHCP

more /etc/dhcpd.conf

# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
#
# Location: Zhangjiang IDC
# Date: 2010-08-01
 
ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
 
subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers 192.168.1.254;
        option subnet-mask 255.255.255.0;
        option domain-name-servers 192.168.1.254;
        option time-offset -18000; # Eastern Standard Time
        range dynamic-bootp 192.168.1.10 192.168.1.250;
        default-lease-time 21600;
        max-lease-time 43200;

# Group the PXE bootable hosts
# PXE-server configuration direction
        next-server 192.168.1.254; #指向nfs服务器
        filename "/pxelinux.0"; #/tftp根目录下的启动引导文件
 
        # we want the nameserver to appear at a fixed address
        host ns {
                hardware ethernet 00:1C:25:80:F4:58; #张江机房的笔记本网卡mac
                fixed-address 192.168.1.2;
        }
}

重啟dhcp

##
/etc/init.d/dhcpd restart
 

##2. 設定#TFTP

more /etc/xinetd.d/tftp 

# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type          = dgram
        protocol                = udp
        wait                      = yes
        user                      = root
        server                   = /usr/sbin/in.tftpd
        server_args          = -u nobody -s /tftpboot  #-s指定tftp根目录
        disable                  = no        #默认yes,关闭
        per_source            = 11
        cps                        = 100 2
        flags                      = IPv4
}
 

重啟tftp

##
/etc/init.d/xinetd.restart
 

##查看tftp服務是否已啟動:

chkconfig –list | grep tftp
 

#3. 配置NFS

#######NFS#####需要需要向#### ##RPC######註冊才能被客戶端調用,一般做連接埠映射的######portmap######是預設安裝的,沒有的話可以使用######yum ######安裝:#########
yum –y install portmap*
#####

 

可以直接使用挂载的镜像,这里是拷到服务器上为了建立一个专门存放常用的镜像文件建的目录。

 

mount /dev/cdrom /mnt
mkdir /ios/CentOS_5.4
cp –a /mnt/* /ios/CentOS_5.4

 

#共享tftp的根目录,192.168.1.0/24网段的用户有只读权限
echo "/tftpboot 192.168.1.0/24(ro,sync)" > /etc/exports

#共享存放镜像文件的目录,所有用户有只读权限
echo "/ios/CentOS_5.4 *(ro,sync)" >> /etc/exports

 

#不重启nfs服务器情况下配置生效
exportfs –arv 

#重启服务
/etc/init.d/portmap restart
/etc/init.d/nfs resart

 

查看共享目录是否生效:

showmount –e localhost

 

4. 配置PXE启动需要的文件

cp /usr/lib/syslinux/pxelinux.0 /tftpboot

# pxelinux.0依赖于syslinux,没有安装使用yumyum –y install syslinux*

# pxelinux.0PXE启动引导文件

 

cp /ios/CentOS_5.4/ioslinux/vmlinuz /tftpboot
cp /ios/CentOS_5.4/ioslinux/initrd.img /tftpboot

# vmlinuzinitrd.img是不同版本的系统内核和系统引导文件,安装不同版本系统时请使用各版本的vmlinuzinitrd.img

 

mkdir /tftpboot/pxelinux.cfg
cp /ios/CentOS_5.4/ioslinux.cfg /tftpboot/pxelinux.cfg/default

 

到目前已经可以从网络安装系统了。测试如下:

启动服务器,一般F12进入PXE网络启动,向DHCP请求IPDHCP响应包含IP地址和pxelinux启动程序位置;PXE客户端收到响应后,向服务器请求传送文件(pxelinux.0pxelinux.cfg/defaultvmlinuzinitrd.img);客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。(由于PXE获取的是安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二进制包以及配置文件,它们需要的内容不同造成PXE模块和安装程序是相对独立的,PXE的网络配置并不能传递给安装程序,从而进行两次获取IP地址过程)。

 

5. 配置ks.cfg文件

ks.cfg文件可以由以下方法生成:

1. 每次装好一台CentOS(RedHat),安装程序都会自动创建一个kickstart文件,文件记录了真实的安装配置,位置在/root/anaconda-ks.cfg,可以根据此配置来生成自己需要的ks.cfg文件;

2. 使用图形化的kickstart配置工具,命令:system-config-kickstart;

3. 使用文本编辑器编辑。

 以下是已经写好的ks.cfg文件,仅供参考: 

more /ios/ks.cfg

# Kickstart file automatically generated by anaconda.

install
nfs --server=192.168.1.254 --dir=/ios/CentOS_5.4
#指出NFS的路径和安装文件的位置

lang en_US.UTF-8
keyboard us

network --device eth0 --onboot yes --bootproto dhcp --hostname test
#network --device eth0 --onboot yes –bootproto static --ip 192.168.1.10 --netmask 255.255.255.0 --gateway 192.168.1.1 --nameserver 8.8.8.8 --hostname test
#一个网卡获得地址的方式
network --device eth1 --onboot no --bootproto dhcp --hostname test

rootpw --iscrypted $1$V26J9f5V$A7k9alSJs1GzG.qNBef6f/
#加密root密码

firewall --disabled #--port=22:tcp
authconfig --enableshadow --enablemd5
#使用md5认证

selinux --disabled

timezone --utc Asia/Shanghai

bootloader --location=mbr --driveorder=sda

# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work

clearpart --linux
part /boot --fstype ext3 --size=100 --ondisk=sda
part swap --size=2048 --ondisk=sda
part / --fstype ext3 --size=100 –grow --ondisk=sda

#分区和选包是机房最头疼的事,在这里可以修改
#clearpart --linux --drives=sda
#part /boot --fstype ext3 --size=200
#part pv.2 --size=0 --grow --ondisk=sda
#volgroup VolGroup00 --pesize=32768 pv.2
#logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
#logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=1000 --grow --maxsize=6144
#以上是一个LVM分区的示范

reboot #安装完毕后重启 

%packages
@development-libs
@development-tools
@admin-tools
@editors
#选包

 

将配置好的ks.cfg文件放在共享目录内,这里放到/ios下

echo "/ios 192.168.1.0/24(ro,sync)" >> /etc/exports
exportfs –arv

 

 修改/tftpboot/pxelinux.cfg/default配置: 

more /tftpboot/pxelinux.cfg/default

default ks    #默认从标签ks启动
prompt 1     #显示"boot:"提示符
timeout 30  #等待超时时间

display boot.msg #/tftpboot/boot.msg默认显示boot.msg,可以根据实际情况编辑,
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg 

label linux #在boot:提示符后输入linux(只是一个标签),从下面指出的内核启动
  kernel vmlinuz
  append initrd=initrd.img

label text #在boot:提示符后输入text,这里是文字界面安装
  kernel vmlinuz
  append initrd=initrd.img text

label ks #default默认,从ks.cfg读取安装信息,无需人工干预
  kernel vmlinuz
  append ks=nfs:192.168.1.254:/ios/ks.cfg initrd=initrd.img ksdevice=link
  #ksdevice=link,从连接的网卡读取安装文件

label local
  localboot 1

label mem
  kernel memtest
  append -

 

6. 进阶

由于机房目前常安装的系统是RHEL4.7, RHEL4.7 x86_64, CentOS5.4, CentOS5.4 x86_64。可以将四种镜像放在专门的目录内。例如:

RHEL4.7/ios/rhel4.7

RHEL4.7 x86_64: /ios/rhel4.7-x86_64

CentOS5.4: /ios/centos5.4

CentOS5.4 x86_64: /ios/centos5.4- x86_64

 

/tftp根目录(这里是/tftpboot下,各版本的内核和引导文件也需要改变位置:

RHEL4.7/ios/rhel4.7/vmlinuz

              /ios/rhel4.7/initrd.img

RHEL4.7 x86_64: /ios/ rhel4.7-x86_64/vmlinuz

                            /ios/ rhel4.7-x86_64/initrd.img

CentOS5.4: /ios/centos5.4/vmlinuz

                  /ios/centos5.4/initrd.img

CentOS5.4 x86_64: /ios/centos5.4- x86_64/vmlinuz

                                /ios/centos5.4- x86_64/ initrd.img

 

PXE引导文件(这里是/tftpboot/pxelinux.cfg/default)修改:

default 3
prompt 1
timeout 300

display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg

 
label 1
  kernel rhel4.7/vmlinuz
  append initrd=rhel4.7/initrd.img

label 2
  kernel rhel4.7-x86_64/vmlinuz
  append initrd=rhel4.7-x86_64/initrd.img

label 3
  kernel centos5.4/vmlinuz
  append initrd=centos5.4/initrd.img

label 4
  kernel centos5.4-x86_64/vmlinuz
  append initrd=centos5.4-x86_64/initrd.img

label 1-ks_**
  kernel rhel4.7/vmlinuz
  append ks=nfs:192.168.1.254:/ios/rhel4.7ks_**.cfg initrd=rhel4.7/initrd.img ksdevice=link

label 2-ks_**
  kernel rhel4.7-x86_64/vmlinuz
  append ks=nfs:192.168.1.254:/ios/rhel4.7-x86_64ks_**.cfg initrd=rhel4.7-x86_64/initrd.img ksdevice=link

label 3-ks_**
  kernel centos5.4/vmlinuz
  append ks=nfs:192.168.1.254:/ios/centos5.4ks_**.cfg initrd=centos5.4/initrd.img ksdevice=link

label 4-ks_**
  kernel centos5.4-x86_64/vmlinuz
  append ks=nfs:192.168.1.254:/ios/centos5.4-x86_64ks_**.cfg initrd=centos5.4-x86_64/initrd.img ksdevice=link

label local
  localboot 0

label mem
  kernel memtest
  append –

 

这里由于选项太多,可以在tftp根目录下启用boot.msgoptions.msg文件来说明安装什么样的操作系统和怎样安装操作系统。如:

boot.msgInstall RHEL4.7: 1
Install RHEL4.7 x86_64: 2
Install CentOS5.4: 3
Install CentOS5.4 x86_64: 4

Default: Graph mode.
If you want to use text mode, type: [number] text

F1: boot.msg F2: options.msg

 

options.msgInstall RHEL4.7: 1
Install RHEL4.7 x86_64: 2
Install CentOS5.4: 3
Install CentOS5.4 x86_64: 4

Default: Graph mode.
If you want to use text mode, type: [number] text

If you want to use kickstart, the flowing list the different OS ks.cfg:
1-ks_**: RHEL4.7
2-ks_**: RHEL4.7 x86_64
3-ks_**: CentOS5.4
4-ks_**: CentOS5.4 x86_64

F1: boot.msg F2: options.msg

 

7. 小结

只要注意各操作系统的内核和引导文件的对应关系,就能扩展到多套系统。

kickstart文件能在原来的基础上修改的就在原来的基础上修改,稍加时日,就可以形成针对各业务不同的kickstart文件,这样就方便IDC人员实现Linux操作系统的自动化安装。

以上是Linux基於pxe+dhcp+nfs+tftp+kickstart的系統網路安裝方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
什么是linux设备节点什么是linux设备节点Apr 18, 2022 pm 08:10 PM

linux设备节点是应用程序和设备驱动程序沟通的一个桥梁;设备节点被创建在“/dev”,是连接内核与用户层的枢纽,相当于硬盘的inode一样的东西,记录了硬件设备的位置和信息。设备节点使用户可以与内核进行硬件的沟通,读写设备以及其他的操作。

Linux中open和fopen的区别有哪些Linux中open和fopen的区别有哪些Apr 29, 2022 pm 06:57 PM

区别:1、open是UNIX系统调用函数,而fopen是ANSIC标准中的C语言库函数;2、open的移植性没fopen好;3、fopen只能操纵普通正规文件,而open可以操作普通文件、网络套接字等;4、open无缓冲,fopen有缓冲。

linux中什么叫端口映射linux中什么叫端口映射May 09, 2022 pm 01:49 PM

端口映射又称端口转发,是指将外部主机的IP地址的端口映射到Intranet中的一台计算机,当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上;可以通过使用动态或固定的公共网络IP路由ADSL宽带路由器来实现。

什么是linux交叉编译什么是linux交叉编译Apr 29, 2022 pm 06:47 PM

在linux中,交叉编译是指在一个平台上生成另一个平台上的可执行代码,即编译源代码的平台和执行源代码编译后程序的平台是两个不同的平台。使用交叉编译的原因:1、目标系统没有能力在其上进行本地编译;2、有能力进行源代码编译的平台与目标平台不同。

linux中eof是什么linux中eof是什么May 07, 2022 pm 04:26 PM

在linux中,eof是自定义终止符,是“END Of File”的缩写;因为是自定义的终止符,所以eof就不是固定的,可以随意的设置别名,linux中按“ctrl+d”就代表eof,eof一般会配合cat命令用于多行文本输出,指文件末尾。

linux怎么判断pcre是否安装linux怎么判断pcre是否安装May 09, 2022 pm 04:14 PM

在linux中,可以利用“rpm -qa pcre”命令判断pcre是否安装;rpm命令专门用于管理各项套件,使用该命令后,若结果中出现pcre的版本信息,则表示pcre已经安装,若没有出现版本信息,则表示没有安装pcre。

linux怎么查询mac地址linux怎么查询mac地址Apr 24, 2022 pm 08:01 PM

linux查询mac地址的方法:1、打开系统,在桌面中点击鼠标右键,选择“打开终端”;2、在终端中,执行“ifconfig”命令,查看输出结果,在输出信息第四行中紧跟“ether”单词后的字符串就是mac地址。

linux中rpc是什么意思linux中rpc是什么意思May 07, 2022 pm 04:48 PM

在linux中,rpc是远程过程调用的意思,是Reomote Procedure Call的缩写,特指一种隐藏了过程调用时实际通信细节的IPC方法;linux中通过RPC可以充分利用非共享内存的多处理器环境,提高系统资源的利用率。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版