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 7kernel vmlinuzappend 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来安装操作系统,待续。

posted on 2016-06-24 11:00 shark_tear 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/hf9999/p/5613497.html

linux征程之kickstart安装操作系统相关推荐

  1. 用Kickstart批量安装Linux系统、Kickstart安装,linux批量安装;Linux的Kickstart的 无人值守安装;linux pxe自动安装linux系统...

    用Kickstart批量安装Linux|Kickstart,批量安装:Linux的Kickstart的 无人值守安装:linux pxe自动安装linux系统: KickStart + DHCP + ...

  2. 【Windows + Linux】专业级:安装操作系统 + 多系统 + GhostCast Server PXE 网刻基础坑精通详解

    目录 前言 1.BIOS 和 UEFI 与 MBR 和 GPT 的装机简述 GPT & MBR 硬盘分区表模式 BOOT 引导流程 & 启动管理器 如何选择一种 BOOT Mode 启 ...

  3. 虚拟机Linux 教程之Ubuntu安装教程【超多图】

    文章目录 01前言 02虚拟机的安装 03Ubuntu镜像的下载 04虚拟机硬件配置 1.虚拟机安装完毕之后,界面如下图所示: 2.在弹出的对话框中选择自定义,然后点击下一步: 3.在 「虚拟机硬件兼 ...

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

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  5. Centos 6.5 Pxe+kickstart 无人值守安装操作系统

    Centos 6.5PXE+kickstart 无人值守安装操作系统 PXE一种引导方式.进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 ...

  6. Linux的kickstart安装详解

    一.什么是kickstart? kickstart安装是redhat开创的按照你设计好的方式全自动安装系统的方式.安装方式能分为光盘.硬盘.和网络.此文将以网络安装方式周详介绍使用kickstart的 ...

  7. linux不断安装操作系统,无人值守批量安装linux操作系统

    无人值守批量安装linux操作系统(实验总结) 每天都看对着电脑的操作系统,有时候出现了什么问题实在解决不了,我们肯定会选择重做系统的,当然一台两台系统我们还是可以一一搞定,可是我们是否想过要是一次性 ...

  8. Pxe+Kickstart批量网络安装操作系统

    Pxe+Kickstart 实现无人值守批量网络安装操作系统 说明: 当批量给主机安装操作系统时,我们不可能用传统的方式--用光盘.U盘等,一台一台逐个安装,这样一来,费时又力,对于批量部署主机时,效 ...

  9. 自动化运维之kickstart自动化部署安装操作系统

    第1章 简介 1.1 PXE简介 q  PXE是预启动执行环境,全名是Pre-boot Execution Environment q  通过网络接口启动计算机,不需要依赖本地存储设备或本地已安装的操 ...

最新文章

  1. 东大漆桂林、清华李涓子、复旦肖仰华等大牛确认出席CTA峰会!5月一起打卡杭州...
  2. 基于用户投票的排名算法(六):贝叶斯平均
  3. JEECG弹出框提交表单
  4. 网格布局每个网格都能放置一个组件_Android综合试题
  5. POPTEST学员就业面试题目!!!!!
  6. 同步您的Google Chrome书签,主题等
  7. 【WebRTC---入门篇】(七)MediaStream
  8. Docker 验证 Centos7.2 离线安装 Docker 环境
  9. django Form表单验证
  10. 51单片机微波炉c语言程序,基于51单片机的微波炉控制C源程序.doc
  11. 【机器学习系列】变分推断第三讲:基于随机梯度上升法SGD的变分推断解法
  12. 基于FPGA VHDL 的 ASK调制与解调设计(附源码)
  13. Leetcode五大常用算法
  14. C#程序简单通过txt文本实现数据存储
  15. 浅谈无线测温在35kV高压开关柜中的应用
  16. SPI和IIC异同点
  17. php虚线_实现css虚线样式的两种方式:dotted和dashed(实例)
  18. 计算机文化论文5000字,大学生科技论文5000字
  19. (附源码)基于java的校园二手书籍交易平台 毕业设计131558
  20. mywallop、orkut、gmail的邀请

热门文章

  1. 信托公司的主要业务模式
  2. TCP三次握手的思考,为什么要有三次握手
  3. 与如何写论文相关的资料
  4. GitHub上传本地项目文件
  5. 【AD18】边框设置
  6. js实现数组去重的方式(7种)
  7. 树莓派 python 录音_树莓派使用 USB 麦克风录音
  8. 《机构投资的创新之路》读书笔记2(第4章):投资组合管理工具
  9. windows脚本bat一键安装mysql5.7绿色版(创建my.ini、初始化、安装服务、重置root密码)
  10. Ubuntu的防火墙命令