pxe

type
status
date
slug
summary
tags
category
icon
password

自动安装操作系统

系统安装过程

  • 系统启动流程: bootloader–>kernel(initramfs)–>rootfs–>/sbin/init
  • anaconda: 系统安装程序 gui:图形窗口 tui:文本窗口
安装程序启动过程
  • MBR:isolinux/boot.cat
  • stage2: isolinux/isolinux.bin
  • 配置文件:isolinux/isolinux.cfg
    • 每个对应的菜单选项:
    • 加载内核:isolinuz/vmlinuz
    • 向内核传递参数:append initrd=initrd.img …
  • 装载根文件系统,并启动anaconda 默认启动GUI接口 若是显式指定使用TUI接口:向内核传递text参数即可 (1)按tab键,在后面增加text (2)按ESC键:boot: linux text
示例

anaconda工作过程

  • Anaconda安装系统分成三个阶段:
  • 安装前配置阶段
    • 安装过程使用的语言
    • 键盘类型
    • 安装目标存储设备
      • Basic Storage:本地磁盘
      • 特殊设备:iSCSI
    • 设定主机名
    • 配置网络接口
    • 时区
    • 管理员密码
    • 设定分区方式及MBR的安装位置
    • 创建一个普通用户
    • 选定要安装的程序包
    • 安装阶段
    • 在目标磁盘创建分区,执行格式化操作等
    • 将选定的程序包安装至目标位置
    • 安装bootloader和initramfs
  • 图形模式首次启动 iptables、selinux、core dump

系统安装

  • 启动安装过程一般应位于引导设备;后续的anaconda及其安装用到的程序包等可来自下面几种方式:(简单来说就是读取存储介质) 本地光盘、本地硬盘、NFS、URL:
    • 如果想手动指定安装源
    • anaconda的配置方式: (1) 交互式配置方式 (2) 通过读取事先给定的配置文件自动完成配置 按特定语法给出的配置选项 kickstart文件
    • 安装boot引导选项:boot:text: 文本安装方式askmethod: 手动指定使用的安装方法
    • 与网络相关的引导选项
    • 与远程访问功能相关的引导选项:
    • 指明kickstart文件的位置: ks=
    • 启动紧急救援模式:rescue
    • 官方文档:《Installation Guide》

    指定安装源

    • Centos 6
    • Centos 7

    kickstart文件创建

    • 创建kickstart文件的方式
    • 直接手动编辑,依据某模板修改
    • 可使用创建工具:system-config-kickstart 依据某模板修改并生成新配置 /root/anaconda-ks.cfg
    • 检查ks文件的语法错误:ksvalidatorksvalidator /PATH/TO/KICKSTART_FILE
    示例 system-config-kickstart
    notion image
    notion image
    notion image
    notion image
    注意:分区
    notion image
    notion image
    notion image
    关闭防火墙selinux
    notion image
    notion image
    根据需要选择安装不同的软件包 注意:若包选项无法选择,可以通过修改yum源来解决 [development]
    notion image
    系统安装前执行的脚本
    notion image
    系统安装后执行的脚本,此项常用
    notion image

    kickstart文件的格式

    命令段、程序包段、脚本段、命令、必备命令

    系统光盘中isolinux目录列表

    • isolinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
    • isolinux.cfg:isolinux.bin的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
    • vesamenu.c32:是光盘启动后的安装图形界面,也属于SYSLINUX项目,menu.c32版本是纯文本的菜单
    • Memtest:内存检测,这是一个独立的程序
    • splash.jgp:光盘启动界面的背景图
    • vmlinuz是内核映像
    • initrd.img是ramfs (先cpio,再gzip压缩)

    制作引导光盘和U盘

    • 创建引导光盘
    注意:以上相对路径都是相对于光盘的根,和工作目录无关
    • 创建U盘启动盘

    mkisofs选项

    PXE

    Preboot Excution Environment 预启动执行环境 Intel公司研发 基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统 PXE可以引导和安装Windows,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 Server发送针对本机的配置信息文件(在TFTP服务的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作
    • Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client
    • Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统
    • Client启动Linux内核
    • Client下载安装源文件,读取自动化安装脚本

    http

    dhcp

    tftp

    • TFTP:Trivial File Transfer Protocol ,是一种用于传输文件的简单高级协议,是文件传输协议(FTP)的简化版本。用来传输比文件传输协议(FTP)更易于使用但功能较少的文件
    • FTP和TFTP的区别 1、安全性区别 FTP支持登录安全,具有适当的身份验证和加密协议,在建立连接期间需要与FTP身份验证通信 TFTP是一种开放协议,缺乏安全性,没有加密机制,与TFTP通信时不需要认证 2、传输层协议的区别 FTP使用TCP作为传输层协议,TFTP使用UDP作为传输层协议 3、使用端口的区别 FTP使用2个端口:TCP端口21,是个侦听端口;TCP端口20或更高TCP端口1024以上用于源连接。 TFTP仅使用一个具有停止和等待模式的端口:端口69 4、RFC的区别 FTP是基于RFC 959文档,带有其他RFC涵盖安全措施;TFTP基于RFC 1350文档 5、执行命令的区别 FTP有许多可以执行的命令(get,put,ls,dir,lcd)并且可以列出目录等 TFTP只有5个指令可以执行(rrq,wrq,data,ack,error)
    :如果拿到地址,在进入菜单后加载中有提示no space left on device ,说明内存不够
    客户端测试
    notion image
    也可按ESC,输入LABLE标签 linux

    转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 438803792@qq.com
    上一篇
    samba
    下一篇
    powerdns
    Loading...