首页 > 其他分享 >pxe+kickstart多系统引导

pxe+kickstart多系统引导

时间:2022-12-23 21:22:39浏览次数:33  
标签:引导 none kickstart ftp -- menu 00000000 color pxe

1. 装包

yum -y install dhcp* tftp-server vsftpd syslinux-nonlinux

2.配置dhcp

cat >/etc/dhcp/dhcpd.conf <<EOF_DHCP
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#

log-facility local7;

# A slightly different configuration for an internal subnet.
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.10 192.168.10.20;
  option domain-name-servers ks.pxe.dhcp;
  option domain-name "pxe.dhcp";
  option routers 192.168.10.2;
  option domain-name-servers 8.8.8.8;
  option broadcast-address 192.168.10.255;
  default-lease-time 600;
  max-lease-time 7200;
  next-server 192.168.10.7;
  filename "pxe/pxelinux.0";
}

EOF_DHCP

3. 配置tftp+pxe(syslinux)

注意vesamenu.c32文件一点要来自本地,而不能来自iso,否则可能报错

mkdir -p /var/lib/tftpboot/pxe/{pxelinux.cfg,CentOS8}
cp /var/ftp/CentOS8/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/pxe/CentOS8/
cp /var/ftp/CentOS8/isolinux/splash.png /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/pxe  

注意文件中提到的vesamenu.c32和splash.png文件,tftp目录下一定要有,否则tftp服务器引导时会报错

cat /var/lib/tftpboot/pxe/pxelinux.cfg/default 
default vesamenu.c32
timeout 60

display boot.msg

# Clear the screen when exiting the menu, instead of leaving the menu displayed.
# For vesamenu, this means the graphical background is still displayed without
# the menu itself for as long as the screen remains in graphics mode.
menu clear
menu background splash.png
menu title CentOS Linux 8
menu vshift 8
menu rows 18
menu margin 8
#menu hidden
menu helpmsgrow 15
menu tabmsgrow 13

# Border Area
menu color border * #00000000 #00000000 none

# Selected item
menu color sel 0 #ffffffff #00000000 none

# Title bar
menu color title 0 #ff7ba3d0 #00000000 none

# Press [Tab] message
menu color tabmsg 0 #ff3a6496 #00000000 none

# Unselected menu item
menu color unsel 0 #84b8ffff #00000000 none

# Selected hotkey
menu color hotsel 0 #84b8ffff #00000000 none

# Unselected hotkey
menu color hotkey 0 #ffffffff #00000000 none

# Help text
menu color help 0 #ffffffff #00000000 none

# A scrollbar of some type? Not sure.
menu color scrollbar 0 #ffffffff #ff355594 none

# Timeout msg
menu color timeout 0 #ffffffff #00000000 none
menu color timeout_msg 0 #ffffffff #00000000 none

# Command prompt text
menu color cmdmark 0 #84b8ffff #00000000 none
menu color cmdline 0 #ffffffff #00000000 none

# Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message.

menu tabmsg Press Tab for full configuration options on menu items.

menu separator # insert an empty line
menu separator # insert an empty line

label Install linux 8
  menu label ^Install CentOS Linux 8
  kernel centos8/vmlinuz 
  append initrd=centos8/initrd.img  inst.ks=ftp://myftp:[email protected]/ks/.ks8.santiagod quit
 
#注多系统,往下增加label就行
#label Install linux 7
#  menu label ^Install CentOS Linux 7
#  kernel centos7/vmlinuz 
#  append initrd=centos7/initrd.img  #inst.ks=ftp://myftp:[email protected]/ks/.ks7.santiagod quit

 

4. ftp配置

1. 将centos8的iso挂到ftp目录下的cetos8/
2. 创建ks目录

或将iso挂载,内容拷贝到ftp目录下的centos8/下,然后把ks文件写入/centos8/myks.cfg文件

 

cat /home/myftp/centos8/.ks.santiagod 
#version=RHEL8
# Use graphical/text install  #图形化/字符安装界面
#text
graphical

#使用系统上的第一个光驱执行安装
#cdrom
#装机使用的yum源
#repo --name="AppStream" --baseurl=file:///run/install/sources/mount-0000-cdrom/AppStream

#要实际运行安装,必须指定 cdrom、harddrive、hmc、nfs、liveimg 或 url 之一
url --url=ftp://myftp:[email protected]/centos8/

#最小化安装,及其他预装应用
%packages
@^minimal-environment
kexec-tools
bash-completion

%end

#使用美式键盘
keyboard --xlayouts='us'
#系统默认语言设置,即环境变量$LANG,--addsupport添加对附加语言的支持
lang en_US.UTF-8 --addsupport=zh_CN

#设置主机名
network  --hostname=santiagod.ks
#IP设置,需指明device,否则会取消后续所有network指令
#network --bootproto=static --ip=192.168.122.10 --netmask=255.255.255.0 --gateway=192.168.122.1 --nameserver=8.8.8.8,114.114.114.114 --device=ens192


#enable时,系统第一次引导时启动 Initial Setup,设置语言、鼠标、键盘、root 密码、安全级别、时区以及默认网络配置。默认为disable
firstboot --disable

#使用这个选项在没有用户互动的情况下接受最终用户许可证协议(End User License Agreement,EULA)。指定这个选项可防止 Initial Setup 在完成安装并第一次重启系统后提示您接受该许可证
eula --agreed

#系统时区上海,使用UTC时间,不开启时间同步
timezone Asia/Shanghai --isUtc --nontp

# Root password: Admin123!
rootpw --iscrypted $6$uMfDCfQnqrZgk/yL$F.DkU0TF2k14QNqLUv.cc8X16ZUXGe/8Q./rspkY1tKnmOywrgcBx.eEA7u9oWT/u2T6jzNM410EL1Uy5oPk9/

#禁用selinux与firewalld
firewall --disabled
selinux  --disabled

#安装完成后,重启系统
#--eject - 在重新启动前尝试弹出可引导介质(DVD、USB 或其他介质)
reboot --eject

%include /tmp/part-include

#禁用kdump
%addon com_redhat_kdump --disable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end


#------------------------------------------------------------------------------------------------------------------------------------------------------
%pre

###设置系统盘
#找到大于10G的盘
disk=$(while read line;do awk 'BEGIN{} {if ($3 >= "10485760" && $2 == "0") print $4} END{}';done < /proc/partitions|grep -Ew 'sda|vda|hda')
#disk=sda,vda,hda

cat > /tmp/part-include << EOF_PART
#ignoredisk --only-use=$disk
clearpart --drives=$disk --all --initlabel

#基于 UEFI 的 AMD64、Intel 64 和 64 位 ARM 需要 200 MiB EFI 系统分区。推荐的最小值是 200 MiB,默认大小为 600 MiB,最大为 600 MiB。BIOS 系统不需要 EFI 系统分区
part /boot/efi --fstype="efi" --ondisk=$disk --size=600 --fsoptions="umask=0077,shortname=winnt"
#将sda创建为ID:311的物理卷,最小10G,若磁盘大于10G,也全部做成物理卷
#--grow 自增长
part pv.311 --fstype="lvmpv" --ondisk=$disk --size=10240 --grow
#boot分区,建议大小1G
part /boot --fstype="xfs" --ondisk=$disk --size=1024
#将pv.311加入卷组,默认pe大小4M
volgroup santiagod --pesize=4096 pv.311
#逻辑卷-交换空间,视磁盘大小而定,为安装时的系统盘大小10%
logvol swap --fstype="swap" --recommended --name=swap --vgname=santiagod
#逻辑卷-根分区,虽然 5 GiB 根文件系统允许您最小安装,但建议至少分配 10 GiB,以便可以尽可能安装您想要的软件包组
logvol / --fstype="xfs" --size=10240 --grow --name=root --vgname=santiagod

EOF_PART
#-------------------------------------------------------------------------------------------------------------

%end



%post
#!/bin/bash

###内核调优
#kernel.sem 表示设置的信号量
#fs.aio-max-nr 表示系统范围异步 I/O 请求的最大并发数 
#fs.file-max 表示一个进程可以打开的文件句柄的最大数量
#net.ipv4.ip_local_port_range 表示专用服务器模式下与用户进程通信时分配给用户的端口区间
#kernel.pid_max 表示进程ID数量上限
#验证:sysctl 模块名,如【sysctl kernel.sem】
cat > /etc/sysctl.d/Santiagod-98-sysctl.conf <<-\EOF_SYSCTL
kernel.sem = 4010 641600 4010 1024 
fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65501
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 1048576
net.core.wmem_max = 1048576
vm.swappiness = 0
vm.dirty_background_bytes=102400000
vm.dirty_bytes=409600000
vm.min_free_kbytes=512000
kernel.pid_max = 4194303
EOF_SYSCTL

#限制用户的最大线程数[nproc]和最大打开文件数[nofile],*代表所有用户,131072代表最大可接受的数
#有soft,hard和-,soft指的是当前系统生效的设置值,软限制也可以理解为警告值。hard表名系统中所能设定的最大值。
#soft的限制不能比hard限制高,用-表名同时设置了soft和hard的值。
#验证:ulimit -a
cat > /etc/security/limits.d/Santiagod-20-nofile.conf <<-\EOF_LIMITS
*       soft    nproc   131072
*       hard    nproc   131072
*       soft    nofile  131072
*       hard    nofile  131072
EOF_LIMITS
#----------------------------------------------------------------------------------------------------------

###Serial串口设置
if [ $(systemd-detect-virt) = none ]; then
    dnf module disable virt -qy
else
    ### linux-firmware is use-less in VM
    dnf remove -y linux-firmware

    ### Enable serial console && use ethN names in VMs
    CONF=/etc/default/grub
    grep GRUB_TERMINAL $CONF | grep -q serial || \
        sed -i '/^GRUB_TERMINAL/s/_TERMINAL.*$/_TERMINAL="serial console"/' $CONF
    grep GRUB_SERIAL_C $CONF | grep -q serial || \
        sed -i '/^GRUB_TERMINAL/aGRUB_SERIAL_COMMAND="serial --speed=115200"' $CONF
    grep GRUB_CMDLINE_ $CONF | grep -q ttyS0  || \
        sed -i '/^GRUB_CMDLINE_/s/"$/ net.ifnames=0 console=ttyS0,115200n8"/' $CONF
    sed -i -e '/CMDLINE/s/rhgb/spectre_v2=off/' -e '/CMDLINE/s/quiet/nopti/' $CONF
fi

grub2-mkconfig -o $(find /boot -name grub.cfg)
#----------------------------------------------------------------------------------------


 

标签:引导,none,kickstart,ftp,--,menu,00000000,color,pxe
From: https://www.cnblogs.com/santia-god/p/17001664.html

相关文章

  • 使用 Spring 引导构建应用程序
    本指南提供了如何弹簧启动​帮助您加速应用程序开发。随着您阅读更多Spring入门指南,您将看到更多SpringBoot的用例。本指南旨在让您快速体验SpringBoot。如果您想创建......
  • PXE(grub efi)部署Ubuntu18.04问题总结
    PXE(grubefi)部署Ubuntu18.04问题总结:1、HP默认只配置了第1个网卡和第1个光纤PXE启动解决:可在BIOS手动开启2、UbuntuISO要使用非live版(官网默认为live版,live多了试用......
  • 强化学习(七):n步自举法(多步引导法)
    强化学习(七):n步自举法(多步引导法)  在之前,我们知道求解有限马尔可夫决策过程可以通过蒙特卡洛和时序差分来通过与环境多次交互从经验中学习,然而,蒙特卡洛方法在一些不满足分......
  • macOS Monterey 12.6.2 (21G320) Boot ISO 原版可引导镜像
    macOSMonterey12.6+,皆为安全更新,不再赘述。macOSMonterey12.6,发布于2022年9月12日(北京时间今日凌晨),本次为安全更新。今日(2022-07-21)凌晨,Apple终于发布了macO......
  • macOS Ventura 13.1 (22C65) Boot ISO 原版可引导镜像
    本站下载的macOSVentura软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。2022年12月13日,macOSVentura13.1......
  • 基于Ubuntu18.04 tftp+apache2+grub+nfs搭建PXE系统(EFI模式,手动安装)
    基于Ubuntu18.04tftp+apache2+grub+nfs搭建PXE系统(EFI模式,手动安装)注:用于支持个性系统安装需求apt-getinstalltftpd-hpaapt-getinstallapache2apt-getinstallnfs......
  • kickstart+mkisofs制作自动安装的镜像
    ks文件模板可以参考/root/anaconda_ks.cfg(根据当前操作系统实际安装情况生成的一个文件),然后以此为模板经行编辑,制作自己的ks文件。 ks.cfg文件组成大致分为3段1.......
  • pxe安装kylinos,almalinux,centos7,centos8
    一、PXE无盘简介预启动执行环境(PrebooteXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(NetworkInterface)启动计算机的机制。这种机制让计算机的启......
  • Linux系统引导与启动
    一、Linux操作系统引导过程1.引导过程总览开机自检(BLOS)→MBR引导→GRUB菜单→加载内核(kernel)→init进程初始化开机自检(BLOS):通过bios程序检查硬件是否正常,如果硬件出现问......
  • javascript:微信扫一扫下载android应用的引导页
    一,js代码:<html><head><metacharset="utf-8"/><title>测试</title></head><bodystyle="padding:0px;margin:0px;"><!--background--><divsty......