Linux& Windows 系统部署环境搭建--PXE专题(二)

-----启动菜单制作

         在专题一中已经简单配置了启动菜单,但在实际工作场景中,需要在不同的操作系统中进行部署,就需要配置一个综合型、能适配各种操作系统启动环境的启动菜单,需要能够满足部署Linux和Windows系统,其中,根据Linux的发行版按照版本类型的不同,可分为三大家族,分别是Debian、Fedora、SUSE。每一版本类型还有

启动引导有基于BIOS和基于UEFI两种启动方式,通常x86_64架构的设备支持基于BIOS和基于UEFI启动方式,ARM架构的设备只支持UEFI启动。为增强部署环境的适应性,建议BIOS和UEFI的启动菜单都进行配置。

一、BIOS系统启动菜单配置(default)

1、菜单结构图示

2、参考代码,按需更改

#default only for BIOS
default vesamenu.c32  #vesamenu.c32 (graphical) or menu.c32 (text mode).
prompt 0      # 开启会显示命令行'boot: '提示符。prompt值为0时则不提示,将会直接启动'default'参数中指定的内容。  VNC 监听:vncviewer -listen
timeout 60    #60=6秒
display boot.msg
#default CentOS7.9       #直达lable CentOS7.9,适合大批量同一配置部署
menu title Linux & Windows Operating System Installer

###################################
## For Fedora Class Linux Configure

menu begin FedoraClass
  menu title ^RHEL & CentOS & Fedora & Kylin V10 server Class
  menu default
  
  label CentOS7.9           #标签名称必须唯一,且不能有空格
    menu indent count 5     #菜单缩进
    menu label CentOS 7.9   #菜单显示标签,仅在 LABEL 语句之后有效
    menu default            #菜单默认值,仅在 LABEL 语句之后有效,如果同级菜单有多个menu default,则同级最后一个有效
    text help               #指定在突出显示特定选择时应显示的帮助文本
    Install CentOS 7.9
    endtext
  kernel CentOS7.9/vmlinuz                    #内核
  append initrd=CentOS7.9/initrd.img inst.repo=nfs:nfsvers=4:192.168.150.100:/opt/LinuxInstaller/CentOS7.9 quiet  #初始RAM磁盘及参数


  label CentOS8.5
    menu indent count 5
    menu label CentOS 8.5
    text help
    Install CentOS 8.5
    endtext
  kernel CentOS8.5/vmlinuz
  append initrd=CentOS8.5/initrd.img inst.repo=nfs:nfsvers=4:192.168.150.100:/opt/LinuxInstaller/CentOS8.5 quiet


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

label returntomain
  menu label Return to ^main menu
  menu exit
      
menu end
## For Fedora Class Linux Configure end
#######################################


###################################
## For Debian Class Linux Configure

menu begin ^DebianClass
  menu title Debian & Ubuntu & Kylin V4 Desktop Class
  menu default
  
  label Debian14
    menu indent count 5
    menu label Debian 14
    menu default
    text help
    Install Debian 14
    endtext
  kernel Debian14/vmlinuz
  append initrd=Debian14/initrd.img inst.repo=nfs:nfsvers=4:192.168.150.100:/opt/LinuxInstaller/Debian14 quiet


  label Ubuntu20
    menu indent count 5
    menu label Ubuntu 20
    text help
    Install Ubuntu 20
    endtext
  kernel Ubuntu20/vmlinuz
  append initrd=Ubuntu20/initrd.img inst.repo=nfs:nfsvers=4:192.168.150.100:/opt/LinuxInstaller/Ubuntu20 quiet

  label KlinyV10SRV
    menu indent count 5
    menu label Kylin V10 Server
    text help
    Install Kylin V10 Server
    endtext
  kernel KlinyV10SRV/vmlinuz
  append initrd=KlinyV10SRV/initrd.img inst.repo=nfs:nfsvers=4:192.168.150.100:/opt/LinuxInstaller/KlinyV10SRV quiet


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

label returntomain
  menu label Return to ^main menu
  menu exit
      
menu end
## For Debian Class Linux Configure end
#######################################

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

label local
  menu label Boot from ^local drive
  localboot 0xffff

二、UEFI系统菜单制作配置(grub.cfg)

1、菜单结构图示

2、参考代码,按需修改

#Grub.cfg only for UEFI
set default="1"          #菜单默认值,菜单同级入口从 0 开始计数

function load_video {
  insmod efi_gop
  insmod efi_uga
  insmod video_bochs
  insmod video_cirrus
  insmod all_video
}

load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2

set timeout=6
### END /etc/grub.d/00_header ###

search --no-floppy --set=root -l 'CentOS 7 x86_64'

### BEGIN /etc/grub.d/10_linux ###      
menuentry 'CentOS 7' --class fedora --class gnu-linux --class gnu --class os {
	linuxefi /EFI/CentOS7.9/vmlinuz inst.repo=ftp://192.168.150.100/CentOS7.9   #内核及启动参数
	initrdefi /EFI/CentOS7.9/initrd.img                                         #初始RAM磁盘
}               

submenu 'RHEL & CentOS & Fedora & Kylin V10 server Class -->' {
set default="1"           #菜单默认值,菜单同级入口从 0 开始计数
	menuentry 'Fedora 38' --class fedora --class gnu-linux --class gnu --class os {
	linuxefi /EFI/Fedora38/vmlinuz inst.repo=ftp://192.168.150.100/Fedora38   #内核及启动参数
	initrdefi /EFI/Fedora38/initrd.img                                        #内核及启动参数
	}
	menuentry 'Kylin V10' --class fedora --class gnu-linux --class gnu --class os {
	linuxefi /EFI/KylinV10/vmlinuz inst.repo=ftp://192.168.150.100/KylinV10
	initrdefi /EFI/KylinV10/initrd.img
	}
}

submenu 'Debian & Ubuntu & Kylin V4 Desktop Class -->' {
set default="1"
	menuentry 'Debian 12.2' --class fedora --class gnu-linux --class gnu --class os {
	linuxefi /EFI/Debian12.2/vmlinuz netboot=nfs nfsroot=192.168.150.100:/opt/LinuxInstaller/Debian12.2
	initrdefi /EFI/Debian12.2/initrd.gz
	}
	menuentry 'Ubuntu 20' --class fedora --class gnu-linux --class gnu --class os {
	linuxefi /EFI/Ubuntu20/vmlinuz netboot=nfs nfsroot=192.168.150.100:/opt/LinuxInstaller/Ubuntu20
	initrdefi /EFI/Ubuntu20/initrd.img
	}
		menuentry 'Kliny V4' --class fedora --class gnu-linux --class gnu --class os {
	linuxefi /EFI/KlinyV4/vmlinuz netboot=nfs nfsroot=192.168.150.100:/opt/LinuxInstaller/KlinyV4
	initrdefi /EFI/KlinyV4/initrd.img
	}
}

三、引导选项参考

1、Fedora、RHEL、CentOS、Kylin Server系统类型


常用的引导选项
ip=dhcp inst.lang= inst.repo=http://host/path inst.ks=http://host:/path
指定安装源
inst.repo=cdrom[:device]
inst.repo=hd:device:/path #,如 LABEL=RHEL8,hd:LABEL=RHEL-8-0-0-BaseOS-x86_64
inst.repo=nfs:[options:]server:/path
inst.repo=http://host/path
inst.repo=https://host/path
inst.repo=ftp://username:password@host/path
inst.repo=hmc
额外程序库
inst.addrepo=
项指定安装程序运行时镜像的位置
inst.stage2=
指定客户端 IP 地址
ip=dhcp
指定 Kickstart 文件的位置
inst.ks=http://host:/path
指定 DHCP 厂商类别识别符,。默认值为 anaconda-$(uname -srm)。
inst.dhcpclass=
安装系统在安装前等待网络连接的最长时间
inst.waitfornet=

指定您要用作主控制台的设备
console=ttyS0 console=ttyS1
禁用地理位置
inst.geoloc=0
设定要在安装中使用的语言
inst.lang=
以单一语言模式安装
inst.singlelang
指定您要用来安装的键盘布局
inst.keymap=
项强制安装程序在图形模式下运行。这个模式是默认的模式
inst.graphical
强制安装程序在文本模式而不是图形模式中运行
inst.text
以非互动模式运行安装程序
inst.noninteractive
指定图形模式中的页面分辨率。格式为 NxM,最低分辨率为 1024x768
inst.resolution=
来通过 VNC 运行图形化安装
inst.vnc
VNC 服务器中设定安装程序使用的密码
inst.vncpassword=
连接到给定主机位置侦听的 VNC 客户端
inst.vncconnect=
禁用 ipv6
ipv6.disable=1

2、Debina、Ubuntu、Kylin Desktop等系统类型


 

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值