远程批量自动安装中标麒麟操作系统的方法

  • 1 安装方法及过程
  • 2 系统安装服务器搭建
    • 2.1 DHCP服务器搭建
    • 2.2 TFTP服务器搭建
    • 2.3 FTP服务器搭建
  • 3 相关技术原理
    • 3.1 WOL技术
    • 3.2 PXE技术
    • 3.3 KickStart技术

1 安装方法及过程

中标麒麟作为Linux家族的一员,仍保留了许多Linux的特性,能够支持WOL (Wake on LAN,网络唤醒)、PXE (Preboot eXecute Environment,预启动执行环境)、KickStart技术。通过WOL技术可以实现待安装计算机的远程唤醒,通过PXE技术可以实现麒麟内核的远程引导以及安装程序的自动启动,而通过KickStart技术则可实现安装过程的自动交互。具体实现上,可以基于以上三项技术在局域网上搭建一台系统安装服务器,以实现局域网上客户机的自动安装。
图 1是系统安装服务器与待安装客户机的网络连接关系图,其中服务器提供WOL、DHCP、TFTP和FTP四项服务,用以支撑WOL、PXE和KickStart这三项关键技术的实现。其中FTP服务提供自动应答文件以及操作系统安装文件的下载。

图 1 系统安装服务器与待安装计算机网络连接关系图

图 2 自动安装过程

图 2是自动安装过程的流程图,系统安装服务器与待安装客户机按照预设的流程自动进行交互,从而实现自动安装。安装过程主要包括以下步骤:

  1. 远程唤醒待安装客户机。系统安装服务器通过ether-wake命令发送“魔术包”唤醒待安装客户机。
  2. 待安装客户机自动启动操作系统安装程序。待安装客户机被远程唤醒后,将以PXE模式引导操作系统。首先,客户机向服务器申请分配IP地址,服务器收到请求后,通过DHCP服务向客户机分配IP地址,并同时提供TFTP服务器的地址,也就是安装服务器自身的IP地址。接下来,客户机利用服务器提供的TFTP服务下载启动麒麟操作系统内核所需的文件,主要包括引导文件pxelinux.0、内核映像文件vmlinuz、驱动文件initrd.img、启动配置文件default等。其中配置文件default指定内核启动后运行系统安装程序,并指定安装过程采用KickStart技术实现自动应答,以及自动应答文件ks.cfg的FTP地址。文件下载完成后,客户机启动麒麟内核并根据配置文件启动系统安装程序。
  3. 待安装客户机实现安装过程的自动交互,并完成自动安装。首先,客户机利用服务器的FTP服务下载自动应答文件,在自动应答文件中,指定操作系统安装文件的FTP地址,以及安装过程的交互内容。接下来,客户机再次利用服务器的FTP服务下载操作系统安装文件,并根据自动应答文件中的交互设置自动完成安装。

2 系统安装服务器搭建

这里以麒麟3.2.2(内核版本2.6.32)的安装为例,阐述系统安装服务器的搭建方法。其中服务器同样运行麒麟3.2.2,其IP地址为2.10.8.99,网关为2.10.8.254,局域网网段为2.10.8.0/24。由于麒麟操作系统自带ether-wake工具,因此服务器默认具有WOL服务,无需另外搭建。下文主要介绍DHCP服务器、TFTP服务器、FTP服务器的搭建方法。在搭建服务器时,需要将麒麟安装光盘插入服务器光驱以准备安装相应的软件包。

2.1 DHCP服务器搭建

搭建DHCP服务器需要安装dhcp软件包,在root用户下运行以下命令即可完成安装:
#rpm dhcp
软件包安装完成后需要编辑修改配置文件,其路径为/etc/dhcp/dhcpd.conf,下面是配置文件的内容:

option space PXE;
option PXE.mtftp-ip code 1 = ip-address;
option PXE.mtftp-port code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option PXE.discovery-control code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr code 7 = ip-address;
class "pxeclients" {match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
option vendor-class-identifier "PXEClient";
vendor-option-space PXE;
option PXE.mtftp-ip 0.0.0.0;
filename "pxelinux.0";
next-server 2.10.8.99;
}
ddns-update-style interim;
ignore client-updates;
default-lease-time 1200;
max-lease-time 9200;
option subnet-mask 255.255.255.0;
option broadcast-address 2.10.8.255;
option routers 2.10.8.254;
option domain-name-servers 2.10.8.254;
subnet 2.10.8.0 netmask 255.255.255.0 {range 2.10.8.10    2.10.8.100;
}

其中,第15行指定了TFTP服务器地址,这里即系统安装服务器地址;第21-26行指定了动态IP网段的设置。特别地,第26行指定了动态IP的范围,此范围必须包含DHCP服务器本身的IP地址。
最后,需要在root用户下运行以下命令重启dhcp服务:
#service dhcpd restart

2.2 TFTP服务器搭建

搭建TFTP服务器需要安装tftp、tftp-server、xinetd三个软件包,在root用户下运行以下命令完成软件包安装:
#rpm tftp tftp-server xinetd
软件包安装完成后,编辑配置文件/etc/xinetd.d/tftp配置TFTP服务,下面是配置文件内容:

service tftp
{disable = no
socket_type = dgram
protocol = udp
wait = yes
use = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot -c
per_source = 11
cps = 100 2
flags = IPv4
}

其中第9行中的字符串“/tftpboot”为TFTP服务器存放文件的目录。配置完成后,将引导启动麒麟所需要的文件复制到目录/tftpboot中,具体的复制方法如下表所示。

文件(夹)源路径 文件(夹)目的路径
/usr/share/syslinux/pxelinux.0 /tftpboot/pxelinux.0
$(NeoKylin安装光盘)/boot/ /tftpboot/boot
$(NeoKylin安装光盘)/isolinux/ /tftpboot/pxelinux.cfg/
/tftpboot/pxelinux.cfg/isolinux.cfg /tftpboot/pxelinux.cfg/default

复制完成后,编辑修改麒麟启动配置文件/tftpboot/pxelinux.cfg/default,下面是启动配置文件内容:

default /pxelinux.cfg/vesamenu.c32
timeout 60
display /pxelinux.cfg/boot.msg
menu background splash.jpg
menu title Welcome to NeoKylin 3.2.2
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label linux
menu label ^Install System Standard
menu default
kernel /boot/vmlinuz
append initrd=/boot/initrd.img ksdevice=link ks=ftp:// 2.10.8.99/NeoKylin-3.2.2/kickstart/ks.cfg

其中第18行中的“ksdevice=link”指定了安装过程采用KickStart技术自动交互,“ks=ftp://2.10.8.99/NeoKylin-3.2.2/kickstart/ ks.cfg”指定了自动应答文件ks.cfg的FTP地址。
默认情况下,麒麟的SELinux工作在Enforcing模式,这阻止了TFTP服务的正常访问,需将其关闭或者设置为Permissive模式。然而麒麟3.2.2出于安全的考虑,不允许用户关闭SELinux,而且Permissive模式处于隐藏状态,无法直接设置。在root用户下运行以下命令可将SELinux设置为Permissive模式:
#setenforce softmode
通过运行以下命令查看SELinux状态,确保返回结果为Permissive:
#getenforce
最后,需要在root用户下运行以下命令重启tftp服务:
#service xinetd restart

2.3 FTP服务器搭建

搭建FTP服务器需要安装ftp、vsftpd两个软件包,在root用户下运行以下命令安装软件包
#rpm tfp vsftpd
安装完成后编辑配置文件/etc/vsftpd/vsftpd.conf,确保属性anonymous_enable=YES,其他保持默认值即可。配置完成后将麒麟安装光盘复制到服务器的目录/var/ftp/NeoKylin-3.2.2/中。文件复制完成后,编辑自动应答文件,其路径为/var/ftp/NeoKylin-3.2.2/kickstart/ks.cfg。该文件可以用麒麟自带的软件包KickStart进行编辑,也可以在原有的模板上直接以文本方式进行编辑。下面是一个自动应答文件示例:

install
url --url="ftp://2.10.8.99/NeoKylin-3.2.2"
lang zh_CN.UTF-8
keyboard us
rootpw --plaintext 123456
network  --bootproto=dhcp --device=eth0 --onboot=yes
firewall --disabled
auth  --useshadow  --passalgo=sha512
selinux --permissive
timezone  Asia/Beijing
graphical
firstboot --disable
logging --level=info
selinuxpolicy targeted
bootloader --append="rhgb quiet" --location=mbr –driveorder = "sda"
zerombr
clearpart --linux --initlabel
part swap --fstype="swap" --size=8092
part / --fstype="ext4" --grow --size=1%packages
@base
@console-internet
@core
@debugging
@directory-client
@hardware-monitoring
@java-platform
@large-systems
@network-file-system-client
@performance
@perl-runtime
@server-platform
@fonts
@print-client
@basic-desktop
@desktop-debugging
@desktop-platform
@general-desktop
@graphical-admin-tools
@input-methods
@legacy-x
@x11
@internet-browser
@remote-desktop-clients
@server-applications
@legacy-unix
%end%post
useradd new-user; echo 123456|passwd --stdin new-user
xset s off
xset dpms 0 0 0
%end

其中第2行中用url关键字指定了安装文件的位置;第5行用rootpw关键字指定了root用户的密码;在第20-47行的packages段指定了需要安装的软件包;在第48-52行的post段指定了安装结束后运行的脚本,其中第49行新建了一个用户new-user并指定其密码为123456。更多KickStart设置,请参见相关技术文档。
同样的,最后需要在root用户下运行以下命令重启ftp服务:
#service vsftpd restart

3 相关技术原理

3.1 WOL技术

WOL是一种计算机电源管理技术,它允许处于关机状态的计算机在网卡收到魔术包(Magic Packet)后被唤醒。魔术包是由AMD公司发明的一种特殊数据包格式,里面包含了待唤醒计算机网卡MAC地址等信息。WOL首先需要计算机硬件的支持,它要求计算机关机后,网卡仍处于加电待机状态,当网卡侦听到与自身MAC地址相符的魔术包后,能向主板发送开机信号。目前市场主流的计算机在硬件上均支持这项功能。此外,WOL还需要一个能发送魔术包的软件,麒麟自带的ether-wake工具包便具有该项功能。ether-wake命令需在root用户下执行,其常用的调用格式为:
#ether-wake MAC地址
利用WOL技术,可以省去人工逐台开机这一繁琐操作,但需事先收集待安装计算的MAC地址。远程唤醒待安装计算机是实现远程全自动安装麒麟的第一步。

3.2 PXE技术

PXE是由Intel公司发明的一项技术,它工作在C/S模式,允许客户机通过网络从远程服务器下载操作系统映像并引导启动。在这个过程中,需要用DHCP协议为客户机分配IP地址以建立通信链路,还需用TFTP协议下载启动所需文件。TFTP可认为是一种简化了的FTP协议,不支持目录列表和用户认证,适合客户机在启动一个完整的操作系统前进行文件的下载。PXE可以引导启动多种操作系统,如Windows、Linux等。
研究表明,PXE同样能够引导中标麒麟操作系统,利用syslinux工具包中提供的引导文件pxelinux.0即可实现麒麟内核映像的PXE引导。麒麟内核被远程引导启动后,就可以根据启动配置文件启动安装程序。
值得注意的是,客户机通过WOL技术被远程唤醒后,需确保能自动进入PXE引导模式。客户机的引导模式在BIOS中进行设置。默认情况下,当客户机通过网卡唤醒后,BIOS已被设置为PXE模式引导。

3.3 KickStart技术

KickStart是由Red Hat公司发明的一种自动安装Red Hat Linux的技术。利用该技术,安装过程中的人机交互可以根据预先准备好的自动应答文件(通常名为ks.cfg)自动完成。在自动应答文件中,可以指定操作系统安装文件所在的位置、客户机磁盘分区、root用户密码等基本设置,还可以指定需要安装的软件包,以及安装完成后需要执行的脚本等。自动应答文件是一种纯文本的配置文件,可以直接编辑修改,也可以通过图形化的KickStart工具软件进行修改。

远程批量自动安装中标麒麟操作系统的方法相关推荐

  1. 中标麒麟系统u盘安装_U盘安装中标麒麟Linux桌面版的方法

    U盘安装中标麒麟Linux桌面版的方法 发布时间:2014-11-16 14:21:35来源:红联作者:qajcsyq (无法插图,希望大家仔细理解) U盘安装中标麒麟桌面版分以下几步. 第一步:下载 ...

  2. PXE高效批量安装和Kickstart无人值守安装——真正完成批量自动安装

    PXE高效批量安装和Kickstart无人值守安装--真正完成批量自动安装 一.PXE概述 二.PXE的优点 三.搭建PXE的前提 四.部署PXE远程安装服务 1.安装TFTP服务 2.修改TFTP服 ...

  3. 移动硬盘 双linux系统安装教程,一种单移动硬盘安装多个操作系统的方法与流程...

    本发明属于软件测试技术领域,特别是涉及一种单移动硬盘安装多个操作系统的方法. 背景技术: 目前,常规的安装操作系统方法大都比较单一,比如传统的通过光驱去引导安装,或者是通过把系统镜像刻录到U盘进行安装 ...

  4. PXE实现系统批量自动安装

    PXE实现系统批量自动安装 PXE简介 PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作Client/Server的网络模式,支持 ...

  5. Workstation安装中标麒麟操作系统V7

    系统环境: worksation15.5 中标麒麟高级服务器操作系统软件V7.0U6 1.新建虚拟机 2.点击下一步 3.选择系统映像文件 4.选择操作系统类型,中标麒麟是基于redhat版本 5.配 ...

  6. 计算机 电脑 系统安装教程,安装电脑的操作系统的方法

    安装电脑的操作系统的方法 现如今,电脑的使用越来越普遍,几乎每家每户都有电脑,而电脑的操作离不开操作系统,下面小编整理了安装电脑的操作系统的方法,供大家参阅. 1.在电脑光驱里放入要安装的系统光盘.( ...

  7. 使用VMware 16 安装中标麒麟 7

    目录 1.下载中标麒麟7 2.虚拟机配置 3.NeoKylin7安装 1.下载中标麒麟7 百度网盘:百度网盘 请输入提取码百度网盘为您提供文件的网络备份.同步和分享服务.空间大.速度快.安全稳固,支持 ...

  8. vm安装中标麒麟v7.0

    1.环境准备 系统版本:中标麒麟操作系统NeoKylin-Desktop-7.0.0 下载地址:http://www.cs2c.com.cn/index.php?id=177 vm版本:vmworks ...

  9. VMware Workstation 安装中标麒麟V6桌面版操作系统

    中标麒麟V6桌面版操作系统 镜像下载地址: 链接:https://pan.baidu.com/s/1YYwReKQ6jSC6rI-EF3aDMw 提取码:bpug 一.创建虚拟机 点击"编辑 ...

最新文章

  1. ios开发 多人语音聊天_微信“暗黑模式”正式上线!语音界面大改,新增贴心“群工具”...
  2. python 计时器 timeit 报错:ValueError: stmt is neither a string nor callable
  3. 在linux oracle 10g/11g x64bit环境中,goldengate随os启动而自己主动启动的脚本
  4. python求三个数中最小(大)的元素
  5. Matlab 常用语法速记 1
  6. php仿微信朋友圈网站源码,Smobiler仿微信朋友圈的消息代码实例
  7. Connection timed out: connect; Communications link failure
  8. CWnd类与Windows窗口的关系-3、CWnd类如何封装Windows窗口
  9. python合并两个有序列表_Python实现合并两个有序链表的方法示例
  10. mybatis update返回值的意义
  11. 驱动级的自动按键_太牛了!业余单片机爱好者用DS3231制作自动亮度的4位数码管时钟...
  12. C++ 单链表基本操作
  13. error: two or more data types in declaration specifiers原因及解决方法
  14. 元宇宙NFT商城系统|艺术数字藏品平台源码部署
  15. 这才是打开风变编程的正确操作方式
  16. 怎么破解Windows账户密码
  17. linux开源游戏_适用于Linux的5个开源策略和模拟游戏
  18. BUUCTF--[0CTF 2016]piapiapia
  19. 天池大数据比赛-天体分类总结
  20. 快递查询方法一键查询物流信息

热门文章

  1. Package com.** signatures do not match previously installed version; ignoring
  2. 有密码的压缩包如何解压
  3. 说说 jBPM 工作流的定时器
  4. @resource与@autowired的区别
  5. Nero 刻录系统盘
  6. 2012年度IT博客大赛10强诞生了
  7. 通过 IDEA 检查代码 Inspect Code,查找无用的方法、类等问题
  8. mysql公有库和私有库_带有公有和私有子网的 VPC (NAT) - Amazon Virtual Private Cloud
  9. 端口号 一个端口号是否可以被多个进程绑定? 一个进程是否可以bind多个端口号?
  10. IDEA创建ZK框架入门Hello word