一、体系安装
1.1、体系装机的三种引导方式
1. 硬盘 2. 光驱( u 盘) 3. 网络启动 pxe 1.2、体系安装过程
Boot Loader 是在操纵体系内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件装备、建立内存空间的映射图,从而将体系的软硬件环境带到一个合适的状态,以便为最终调用操纵体系内答应备好正确的环境。
在加载了Boot Loader之后,用户通常会看到一个启动安装菜单,答应用户选择不同的启动选项,如进入安装程序、进入安全模式等。这个菜单可能是由Boot Loader提供的,也可能是由安装程序的一部分预先准备的
- 加载内核和initrd体系(文件才能使用文件)
- 加载根体系() 运行anaconda的安装领导
根文件体系包含了操纵体系运行所需的所有文件和目录。
某些Linux发行版的安装过程中,可能会使用到类似Anaconda的安装领导来配置体系环境。
1.3、Linux安装光盘的安装相关文件
在体系光盘的 isolinux 目录下有和安装相关的文件
- boot.cat: 相当于grub的第一阶段
- isolinux.bin:光盘引导程序,在mkisofs的选项中必要明确给出文件路径,这个文件属于 SYSLINUX项目
- isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会主动去找 isolinux.cfg文件
- vesamenu.c32:是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单
- memtest:内存检测程序
- splash.png:光盘启动菜单界面的背景图
- vmlinuz:是内核映像
- initrd.img:ramfs文件(精简版的linux体系,文件体系驱动等)
二、PXE 原理和概念
2.1、PXE简介
PXE(Preboot eXecution Environment,预启动执行环境)技能的网络装机方法。
PXE 是由 Intel 公司开发的网络引导技能,工作在 Client/Server 模式。
答应客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操纵体系。pxe是通过网卡引导启动。
若要搭建PXE网络体系,必须要满足一下几个前提条件:
客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导;
网卡支持,bios支持
网络中有一台DHCP服务器以便于为客户机主动分配IP地址、指定引导文件位置;
服务器通过TFTP(简单文件传输协议)提供引导镜像文件的下载。
PXE 严格来说并不是一种安装方式,而是一种引导的方式。
举行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。
协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。
运行 PXE 协议必要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client(将
要安装体系的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,以是在配置 DHCP 服务器时必要增加相应的 PXE 设置。
此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。
2.2、PXE长处
规模化:同时装配多台服务器;
主动化:安装体系、配置各种服务;
远程实现:不必要光盘、U 盘等安装介质。
2.3、使用PXE必要的服务
- dhcp:必须有dhcp服务分配ip,裸机无ip地址。网卡功能,主动获取ip地址,配置dhcp时告诉tftp服务器地址给裸机客户端。
- TFTP:UDP协议,通过此协议将必要的文件下载到网卡,网卡自带功能。因为网卡不支持ftp。tFtp 69
- FTP:装软件包时数据过大,tftp不能保证传输。
- SYSLINUX-EXTLINUX.X86_64:小型的grub引导程序。
- SYSTEM-CONFIG-KICKSTART:KICKSTART无人值守安装
2.4、实现过程
1.PXE客户机(必要安装的机器)发出DHCP哀求,向DHCP服务器申请IP地址。
2.DHCP服务器相应PXE客户机的哀求,
a.主动从IP地址池中分配一个IP地址给PXE客户机,
b.并且告知PXE客户机:TFTP服务器的IP地址
3.PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的哀求。
【默认在TFTP共享目录/var/lib/tftpboot/下】
4.TFTP服务器相应PXE客户机的哀求,将其共享的pxelinux.0文件传输给PXE客户机。
5.PXE客户机通过网络来启动到体系安装主界面。
6.PXE客户机向文件共享服务器(ftp、http、nfs等)发起获取centos或windows体系安装文件的哀求。
7.文件共享服务相应PXE客户机的哀求,将共享的体系安装文件传输给PXE客户机。
8.PXE客户机进入到安装提示领导界面,用户必要手动来完成体系安装的操纵。
三、PXE批量摆设
PXE服务器 | 192.168.77.79 | 客户端 | 未安装任何体系(裸机) | 起首下载四个服务配置
yum install tftp-server vsftpd syslinux dhcp -y
网卡ens37
3.1、安装并启用 DHCP 服务
将配置文件模板复制到dhcp目录下
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
编辑
vim /etc/dhcp/dhcpd.conf
- subnet 192.168.77.0 netmask 255.255.255.0 {
- range 192.168.77.100 192.168.77.200;
- option routers 192.168.77.2;
- next-server 192.168.77.79;
- filename "pxelinux.0";
- }
复制代码
systemctl start dhcpd
systemctl enable dhcpd
3.2、安装并启用 TFTP 服务
TFTP:(Trivial File Transfer Protocol)是一个小而易于实现的文件传送协议。TFTP是基于UDP数据报,必要有自己的不对改正措施。TFTP只支持文件传输,不支持交互,没有巨大的命令集。也没有目录列表功能,以及不能对用户举行身份辨别。但它的代码所占内存较小,不必要硬盘就可以固化TFTP代码,很适合较小的计算机和特殊用途的装备。
1.必要xinetd配置
vim /etc/xinetd.d/tftp
tftp被xinet所托管,xinetd默认没有安装 配置文件,xinetd是新一代的网络守卫进程服务程序,又叫超级Internet服务器
yum install xinetd -y
2.必要pxelinux.0引导程序
syslinux 使用引导程序文件 放到tfpt的根目录下,体系引导
pxelinux.0是个二进制文件,主要作用相当于一个体系安装步骤的指引,引导客户端怎样安装体系
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
注,只有安装了 system-config-kickstart 软件包,才会有/usr/share/syslinux/目录及目录中的文件
3.必要体系初始化文件和内核文件
切换到有镜像的文件(昨天拷贝的,要不就挂载)
mount /dev/cdrom /mnt
cd /mnt/images/pxeboot/
拷贝体系初始化文件 内核文件 ,因为要装机
cp initrd.img vmlinuz /var/lib/tftpboot/
systemctl start xinetd
systemctl enable xinetd
systemctl start tftp
systemctl enable tftp
4.创建启动菜单文件default
至于为什么要是/var/lib/tftpboot/pxelinux.cfg/default文件,因为是由pxelinux.0这个文件决定好的
先创建目录而非文件虽然是以.cfg末了
创建mkdir /var/lib/tftpboot/pxelinux.cfg
cd /var/lib/tftpboot/pxelinux.cfg
vim default
内容(背面必要改,1变0默认无人值守安装)
- default auto //指定默认入口名称 ,对应下面的label auto
- prompt 1 //设置是否等待用户选择,1 表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式
- label auto //默认的图形安装
- kernel vmlinuz
- append initrd=initrd.img method=ftp://192.168.100.100/centos7 //method必须指定网络路径
- label linux text //文本安装模式,出现boot:时输入linux text
- kernel vmlinuz
- append text initrd=initrd.img method=ftp://192.168.100.100/centos7
- label linux rescue //救援模式,出现boot:时输入linux rescue
- kernel vmlinuz
- append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
复制代码
3.3、安装ftp服务
准备 CentOS 7 安装源
yum -y install vsftpd
mount /dev/cdrom /mnt
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7 #将镜像复制此中
systemctl start vsftpd
最后
重新(记得关闭防火墙和增强)
systemctl start dhcpd
systemctl start tftp
systemctl start vsftpd
systemctl start xinetd
四、kickstart 无人值守安装
4.1、kickstart概念
KickStart 是一种无人职守安装方式。KickStart 的工作原理是通过记载范例的安装过程中所需人工干预填写的各种参数,并天生一个名为 ks.cfg 的文件;在厥后的安装过程中(不但局限于天生 KickStart 安装文件的机器)当出现要求填写参数的环境时,安装程序会起首去查找 KickStart 天生的文件,当找到合适的参数时,就采取找到的参数,当没有找到合适的参数时,才必要安装者手工干预。
这样,如果 KickStart 文件涵盖了安装过程中出现的所有必要填写的参数时,安装者完全可以只告诉安装程序从何处取 ks.cfg 文件,然后去忙自己的事变。等安装完毕,安装程序会根据 ks.cfg 中设置的重启选项来重启体系,并结束安装。
4.2、摆设过程
yum install system-config-kickstart -y
或者
或者
网卡
安装后脚本的运行,害怕没有网,用ftp
- mkdir /etc/yum.repos.d/bak
- mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
- echo "[local]
- name=local
- baseurl=ftp://192.168.77.79/centos7
- enabled=1
- gpgcheck=0" > /etc/yum.repos.d/local.repo
复制代码 保存,主动天生ks.cfg(不要改名字)应答文件
查抄
/var/ftp/ks.cfg文本内容
可选则性添加软件包
- 添加至最后
- %packages
- @^graphical-server-environment
- @base
- @core
- @desktop-debugging
- @development
- @dial-up
- @fonts
- @gnome-desktop
- @guest-agents
- @guest-desktop-agents
- @hardware-monitoring
- @input-methods
- @internet-browser
- @multimedia
- @print-client
- @x11
- chrony
- %end
复制代码 配置解读表和内容
kickstart的天生应答文件ks.cfg主要包括三个部分:命令段,程序包段,脚本段
Kickstart部分
| 子项/命令
| 形貌
| 命令段
| keyboard
| 设定键盘类型
|
| lang
| 设置体系语言
|
| zerombr
| 清除MBR(主引导记载)
|
| clearpart
| 清除所有分区或指定分区
|
| part
| 创建新分区
|
| rootpw
| 设置root用户的密码
|
| timezone
| 设置体系时区
|
| text
| 使用文本模式安装界面
|
| network
| 配置网络接口
|
| firewall
| 配置防火墙设置
|
| selinux
| 启用/禁用SELinux
|
| reboot
| 安装完成后主动重启
| 安装服务
| dhcp, tftp-server, vsftp, syslinux
| 安装网络服务和引导加载器
| 修改配置文件
| dhcp
| 设置next-server IP 和filename
|
| tftp-server
| 修改/etc/xinetd.d/tftp配置,设置服务目录
|
| 开启服务
| 确保dhcp, tftp-server, vsftp等服务运行
|
| user
| 安装后创建新用户
|
| url
| 指定安装源(如网络仓库)
| 程序包段
| %packages
| 开始程序包列表
|
| @^environment group
| 安装环境包组
|
| @group_name
| 安装特定包组
|
| package
| 安装单个包
|
| -package
| 不安装特定包
|
| %end
| 结束程序包列表
| 脚本段
| %pre
| 安装前的脚本,如网络配置
|
| %post
| 安装后的脚本,如体系配置、用户设置等
|
- # Install OS instead of upgrade
- install //全新安装
- # Keyboard layouts
- keyboard 'us' //英文键盘
- # Root password
- rootpw --iscrypted $1$9Rn8W7vF$npbKh8CeIbTxjwHUlcW4n0 //root密码
- # Use network installation
- url --url="ftp://192.168.100.100/centos7" //网络安装路径
- # System language
- lang en_US //系统语言,zh_CN表示中文
- # System authorization information
- auth --useshadow --passalgo=sha512
- # Use text mode install
- text //字符模式安装,graphical表示图形化安装
- firstboot --disable
- # SELinux configuration
- selinux --disabled //禁用selinux
- # Firewall configuration
- firewall --disabled //禁用防火墙
- # Network information
- network --bootproto=dhcp --device=ens33 //网卡配置
- # Reboot after installation
- reboot //安装完重启
- # System timezone
- timezone Asia/Shanghai // 时区:上海
- # System bootloader configuration
- bootloader --location=mbr //mbr引导
- # Clear the Master Boot Record
- zerombr
- # Partition clearing information
- clearpart --all --initlabel //清除所有分区信息和初始化分区标签
- # Disk partitioning information
- part / --fstype="xfs" --grow --size=1 //分区配置
- part swap --fstype="swap" --size=2048
- part /boot --fstype="xfs" --size=300
- 最小安装
- %packages
- @base //安装基础软件包
- @^gnome-desktop-environment //安装桌面环境
- %end
复制代码- #platform=x86, AMD64, 或 Intel EM64T#version=DEVEL# Install OS instead of upgradeinstall# Keyboard layoutskeyboard 'us'# Root passwordrootpw --iscrypted $1$d7Ivo70y$R6meNEYHLhc6/gb8OeLOd1# System languagelang zh_CN# System authorization informationauth --useshadow --passalgo=sha512# Use graphical installgraphicalfirstboot --disable# SELinux configurationselinux --disabled# Use NFS installation medianfs --server=ftp://192.168.77.79 --dir=centos7# Firewall configurationfirewall --disabled# Network informationnetwork --bootproto=dhcp --device=ens33# Halt after installationhalt# System timezonetimezone Asia/Shanghai# System bootloader configurationbootloader --location=mbr# Clear the Master Boot Recordzerombr# Partition clearing informationclearpart --all --initlabel# Disk partitioning informationpart / --fstype="xfs" --grow --size=1%post --interpreter=/bin/bashmkdir /etc/yum.repos.d/bak
- mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
- echo "[local]
- name=local
- baseurl=ftp://192.168.77.79/centos7
- enabled=1
- gpgcheck=0" > /etc/yum.repos.d/local.repo%end%packages@base@^gnome-desktop-environment%end
复制代码
重新修改引导菜单文件,添加 ks 引导参数
vim /var/lib/tftpboot/pxelinux.cfg/default
prompt 0 值为“0”时表现主动执行ks.cfg文件(无人值守,默认)、为“1”时表现手动配置(有人值守)
- default auto
- timeout=600
- label auto
- kernel vmlinuz
- append initrd=initrd.img method=ftp://192.168.77.79/centos7 ks=ftp://192.168.77.79/ks.cfg
- label linux text
- kernel vmlinuz
- append text initrd=initrd.img method=ftp://192.168.77.79/centos7 ks=ftp://192.168.77.79/ks.cfg
- label linux rescue
- kernel vmlinuz
- append rescue initrd=initrd.img method=ftp://192.168.77.79/centos7 ks=ftp://192.168.77.79/ks.cfg
复制代码
五、
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |