linux征程之kickstart安装操作系统

网络安装系统的原理

当主板bios里选择使用网络安装时,会使用PXE协议来安装操作系统。PXE(Pre-boot Execution Environment)是由Intel设计的一款协议,它可以使计算机通过网络启动。协议分为client和server端,PXE client写入到网卡的ROM中,当电脑开机开始引导时,BIOS根据启动项设置把PXE client调入内存中执行,PXE client通过dhcp客户端向局域网内的dhcp服务器请求IP地址,获取到IP地址之后根据dhcp服务器发送的配置,转到TFTP(Trivial File Transfer Protocol)服务器中下载系统启动引导文件和内核文件,将放置在远端的操作系统通过网络下载到本地运行。也就是说在其启动过程中,客户端请求服务器分配IP地址,在这个过程中需要一台服务器来提供启动文件、安装文件、以及安装过程中的自动应答文件等。全过程如下所示:

第一步:PXE Client向DHCP发送请求

将支持PXE启动的客户端设置为从网络启动,开机后BIOS将PXE client调入内存中执行,client发送一个UDP(简单用户数据报协议)广播请求,向局域网中的DHCP服务器请求IP地址等信息。

第二步:DHCP服务器提供信息

DHCP服务器收到客户端的请求,验证是否来自合法的PXE Client,验证通过后它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。

第三步:PXE客户端请求下载启动文件

客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。

第四步:Boot Server响应客户端请求并传送文件

当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM 由 TFTP 通讯协议从Boot Server下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序和引导位置,加载系统配置文件ks.cfg,启动Linux安装程序的引导内核vmlinuz和initrd.img。

第五步:请求下载自动应答文件

客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序根据default文件里的配置确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并根据default文件里的配置选项inst.repo定位安装源位置。这里会再次向DHCP服务器请求IP地址,原因是因为PXE client获取的是安装用的内核以及引导文件等,而引导成功后安装系统的安装程序要获取的是安装系统所需的二进制包以及配置文件。由于它们需要的内容不同造成PXE client模块和安装程序是相对独立的,PXE的网络配置并不能传递给安装程序。从而进行两次获取IP地址过程。接着会读取该文件(default)中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。

第六步:客户端安装操作系统

将ks.cfg文件下载后,通过该文件中的配置找到OS Server,并按照该文件的配置选项"url --url= "来请求下载安装过程需要的软件包。OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新启动计算机。这个时候注意,在重新启动的过程中一定要将BIOS改回从硬盘启动,不然的话又会重复的自动安装操作系统。

在上面介绍中PXE client是需要安装Linux的计算机,TFTP Server、DHCP Server和NFS Server运行在另外一台Linux Server上。Bootstrap文件、配置文件pxelinux.0和pxelinu.cfg/default、Linux内核vmlinuz和initrd.img都放置在Linux Server上TFTP服务器的根目录下。而Linux根文件系统存放于NFS Server的共享目录中。PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。

一、要实现的功能

远程安装服务器系统,实现无人值守自动安装。

二、配置过程

1. 安装配置dhcp服务器

ddns-update-style    interim;
ignore client-updates;

option routers                  192.168.2.1;
default-lease-time 21600;
max-lease-time 43200;
subnet 192.168.2.0 netmask 255.255.255.0 {
        range dynamic-bootp 192.168.111.100 192.168.111.200;
        filename    "pxelinux.0";                 #pxelinux 启动文件位置;
        next-server 192.168.2.1;                 #TFTP Server 的IP地址;
}

2. 安装配置tftp服务器

yum -y install tftp-server

编辑tftp配置文件/etc/xinetd.d/tftp

将里面的disable        yes改为disable        no,保存退出

重新启动xinetd

systemctl restart xinetd
systemctl enable xinetd

3. 配置启动项和启动文件

首先将iso文件挂在到/media目录下

mount /dev/sr0 /media

(1)复制pxelinux.0 文件至/var/lib/tftpboot/文件夹中

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

如果在/usr/share/目录下没有找到这个文件,说明没有安装syslinux,需要手动安装

yum -y install syslinux

说明:syslinux是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。

(2)复制镜像文件中的/image/pxeboot/initrd.img和vmlinux 至/var/lib/tftpboot/ 文件夹中

cp  /media/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/ 

(3)复制iso 镜像中的/media/isolinux/boot.msg 至/var/lib/tftpboot/ 文件夹中

cp /media/isolinux/*.msg    /var/lib/tftpboot/

(4)在/var/lib/tftpboot/ 中新建一个pxelinux.cfg目录

mkdir /var/lib/tftpboot/pxelinux.cfg

(5)将iso 镜像中的/isolinux 目录中的isolinux.cfg复制到pxelinux.cfg目录中,同时更改文件名称为default

cp  /media/isolinux/isolinux.cfg    /var/lib/tftpboot/pxelinux.cfg/default 

(6)修改default文件

将第一行的default vesamenu.c32注释掉

新增一行default linux

然后找到label linux,修改为如下内容:(这里采用的是http安装源来安装)

label linux
  menu label ^Install CentOS 7
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.1.210/os/ks.cfg inst.repo=http://192.168.1.210/os

然后保存退出,这样所有的配置文件就配置完毕;

4. 安装配置操作系统源位置(NFS或HTTP)

(1)http安装源安装方式

首先安装配置httpd

yum -y install httpd

其次,配置安装文件目录

mkdir /var/ww/html/os
cp /media/* /var/www/html/os

5. 创建ks.cfg配置文件

vim /var/www/html/os/ks.cfg

我的配置文件默认配置如下

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard ‘us‘
# Root password
rootpw --iscrypted $1$WJGXtHBG$SVk/yH3jp0zG3SmlgT0Lt0
# System timezone
timezone Asia/Shanghai --isUtc
# System language
lang en_US
# Firewall configuration
firewall --disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
# SELinux configuration
selinux --permissive

# Use NFS installation media
#nfs --server=192.168.1.210 --dir=/tmp/isoimg
# Use HTTP installation media
#url --url=http://192.168.1.210/os/
url --url=http://192.168.1.210/os/
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on --noipv6
# Reboot after installation
reboot
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
#clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --ondisk=sda --size=256
part /boot --fstype="xfs" --ondisk=sda --size=500
part / --fstype="xfs" --ondisk=sda --size=5000
part /home --fstype="xfs" --ondisk=sda --size=5000

%packages
@base
@core
@fonts
@input-methods
@multimedia
%end

%pre
#>2.0TB hard disk need to try to use gpt instead of mbr.
parted -s=BOOT_DISK_DEVICE= mklabel gpt
%end

%post
############EFI BOOT #############
mkdir -p /boot/efi/EFI/BOOT
\cp -r /boot/* /boot/efi
\cp /boot/efi/EFI/redhat/grub.efi /boot/efi/EFI/BOOT/BOOTX64.efi
\cp /boot/grub/grub.conf /boot/efi/EFI/BOOT/BOOTX64.conf
\cp /boot/grub/splash.xpm.gz /boot/efi/EFI/BOOT/splash.xpm.gz
%end

配置好以后保存退出

6. 启动客户端主机,设置第一启动项为网络启动,然后就开始安装;

安装完成后重新启动机器时将开机选项第一启动项改为从本地硬盘启动,否则又会重复安装过程,后续还将学习使用cobbler来安装操作系统,待续。

时间: 2024-08-28 19:20:09

linux征程之kickstart安装操作系统的相关文章

linux命令:kickstart 无人值守安装系统

kickstart:分三部分 命令段: 必备命令:1.指定键盘类型 2.指定语言: lang=ZH_CN 3.指定时区: timezone Asia/Shanghai 4.指定管理员密码: rootpw --iscrpted 指定加密管理员密码 5.selinux --disabled|--permissive 建议selinux --permissive 6.指定认证方式: authconfig --usershadow  7.装载引导加载器bootloader --location 8.指定

Linux中级:PXE + Kickstart 安装CentOS 6.x 操作系统

一.前言 本文很大部分都是参考:http://www.cnblogs.com/mchina/p/centos-pxe-kickstart-auto-install-os.html 主要用于学习. 1.1 什么是pxe PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用

CentOS 6.5下PXE+Kickstart无人值守安装操作系统

CentOS 6.5下PXE+Kickstart无人值守安装操作系统 一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicasttrivia

CentOS 6.4下PXE+Kickstart无人值守安装操作系统

一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软

linux部署pxe+kickstart批量安装linux操作系统实施方案

一.PXE 简介 PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服 务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内

PXE+Kickstart无人值守安装操作系统

# 一.简介## 1.1.什么是PXE- 1.PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式- 2.支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统- 3.在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer proto

关于linux - Centos 7 系统下使用PXE网络的方式(pxe+dhcpd+tftp+httpd)安装操作系统

PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络而不是从本地硬盘.光驱等设备启动. 现代的网卡,一般都内嵌支持PXE的ROM芯片.当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单, 经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行. >>>>>>这里笔者将PXE网络安装Centos 7的方法记录如下,首先服务端(Centos 7)的需要准备的环

生产环境之CentOS-6.5下KVM利用kickstart批量安装操作系统

KVM 是 kernel-based Virtual Machine 的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少.KVM目前已成为学术界的主流VMM之一. KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术).是基于硬件的完全虚拟化.而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化.但Xen本

kickstart无人值守自动安装操作系统

            本次文章部分参考老男孩博客张导文章 PXE是什么? PXE(Pre-boot Execution     Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial     file transfer protocol)或MTFTP(multicast trivial fi