Linux基础知识
Linux系统的发行版本:Redhat、CentOS、Ubuntu、Kali、Debian、麒麟
linux系统的组成:应用程序:C、C++、Java、Python、Shell
内核:
- 进程调度子系统:合理调度不同进程使用cpu的时间
- 内存管理子系统:对进程使用的内存进行管理,将需要加载的代码块放在内存中,不需要加载的放入磁盘中,内核支持虚拟的内存,当内存不够用时支持将硬盘的一部分的容量作为内存来使用
- 虚拟文件子系统:让操作系统可以兼容多种文件系统
- 网络接口子系统:对网络使用的协议簇,标准等进行管理
- 进程间通信子系统:对进程之间数据交换,访问进行管理硬件;
查看内核版本:uname -r
标准分区:
分区方式:标准分区:fdisk -l (物理卷---卷组---逻辑卷)
- IDE/PATA:并口
- SATA:串口
- SCSI:small computer system interface interface
小型计算机系统接口GNU:gcc(c语言编译器)
bashPKI:公钥基础设施
密钥对:公钥,私钥
公钥加密技术·:数据的机密信号
数字签名:私钥加密,公钥解密
BIOS:基本输入输出系统,是一段程序,集成
PXE的作用
用于Redhat、CentOS、等linux发行版本的安装管理程序,提供多种安装选项、语言、键盘、时区、分区、安装的软件等等,并且通过图形化界面和命令行界面两种安装方式,在安装系统时,运行该程序需要内核和临时文件系统的支持
PXE的工作流程
- Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client。
- Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0。
- Client执行接收到的pxelinux.0文件。
- Client向TFTP发送针对本机的配置信息(记录在TFTP的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。
- Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client。
- Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统。
- Client启动Linux内核(启动参数已经在4中的配置文件中设置好了)。
- Client通过NFS下载镜像文件,读取autoyast自动化安装脚本。至此,Client正式进入自动化安装模式开始安装系统直到完成。
光盘目录及作用
- Centos_BiudTag:系统镜像构建标签,记录镜像构建完成的日期
- GPL:GNU通用公共授权,用于GNU项目中的开源项目的传播与使用
LiveOS
- squashfs.img:记录着安装过程中图形化界面的文本信息和背景图片等内容,如果需要修改可以安装特定的解压工具对该文件进行解压并修改。
- RPM-GPG-KEY-CentOS-7:公钥文件,用来验证软件包的身份验证,数据完整性等
- RPM-GPG-KEY-CentOS-Testing-7:同上
- EULA:用户许可协议,在安装系统时,用户必须要同意该协议的内容才可以继续安装
- isolinux:
- boot.cat:在安装过程中的提示信息
- boot.msg:在安装过程中的提示信息
- initrd.img:加载安装程序时,需要根目录的支持,该文件为临时文件也叫虚拟根目录,用来加载所需的安装程序
- memtest:内存测试模块
- vesamenu.c32:提供安装选择菜单的图形界面
- isolinux.bin:引导程序,安装程序时加载的第一个程序,该程序会读取配置文件并加载内核与虚拟目录
- isolinux.cfg:引导程序要读取的配置文件,记录着安装菜单的多个选项以及内核和虚拟根目录存放位置
- splash.png:背景图片
- vmlinuz:内核文件,vm表示内核支持虚拟内存,linuz表示该文件是一个压缩的文件
- repodata:记录着软件包之间的依赖关系,如果该目录中的文件丢失,损坏或者无法读取,则无法通过yum安装Packages中的软件包
- EFI:通过EFI启动时所需的文件
- images:
- pxeboot:使用PXE方式安装操作系统时所需的内核文件和虚拟根目录文件
- Packages:存放着光盘中所包含的所有软件包,在安装操作系统时所选的软件都来自于该目录
PXE环境的安装与配置
实验准备
- PXE:预执行环境,inter公司开发的
- DHCP:给客户端分配IP地址,TFTP服务的IP地址,客户端要加载第一个文件的名字
- TFTP:简单文件传输协议,使用UDP传输协议,端口号69
- kickstart:结合anaconda生成一个配置文件,记录着安装程序要执行的操作(分区,选择软件包,创建用户),客户端获取该文件可自动执行配置文件中所记录的操作,不需要管理员手动执行
- FTP:文件传输协议,端口号:21、20,存放ks.cfg文件以及安装所需的软件包
实验环境
- 客户端要和服务器是相同网卡配置,必须在同一网段!!!
- 关闭防火墙、关闭沙盒
- 内存最好大于2GB
角色 | Server | Client |
IP地址 | 192.168.1.11 | 192.168.1.20~192.168.1.30 |
挂载光盘,配置本地yum
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost ~]# ls
CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo
[root@localhost yum.repos.d]# mkdir /root/yumrepo_backup # 创建备份目录
[root@localhost yum.repos.d]# mv * /root/yumrepo_backup/ # 备份
[root@localhost yum.repos.d]# vim yum.repo
[development]
baseurl=file:///media
enabled=1
gpgcheck=0
# 挂载
[root@localhost yum.repos.d]# mount /dev/cdrom /media/
安装所需要的服务
[root@localhost yum.repos.d]# yum -y install dhcp vsftpd tftp-server xinetd syslinux system-config-kickstart
修改DHCP配置文件
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
# 添加以下配置参数
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.20 192.168.1.30;
next-server 192.168.1.11;
filename "pxelinux.0";}
配置TFTP
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost ~]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# cp /media/isolinux/isolinux.cfg default
[root@localhost pxelinux.cfg]# vim default
[root@localhost pxelinux.cfg]# cd ..
[root@localhost tftpboot]# cp /media/images/pxeboot/{vmlinuz,initrd.img} .
[root@localhost tftpboot]# cp /media/isolinux/{boot.*,vesamenu.c32,splash.png} .
设置tftp自启动
[root@localhost tftpboot]# vim /etc/xinetd.d/tftp
disable = no
拷贝软件包到FTP目录
[root@localhost tftpboot]# cd /var/ftp/
[root@localhost ftp]# mkdir centos
[root@localhost ftp]# cp -r /media/* centos/
配置kickstart(ks.cfg)
[root@localhost ftp]# system-config-kickstart
[root@localhost ftp]# vim /root/anaconda-ks.cfg
[root@localhost ftp]# vim centos/ks.cfg
修改TFTP配置文件
[root@localhost centos]# vim /var/lib/tftpboot/pxelinux.cfg/default
启动服务
[root@localhost centos]# systemctl start dhcpd vsftpd tftp xinetd
关闭防火墙和沙盒
[root@localhost]# systemctl stop firewalld.service
[root@localhost]# setenforce 0