-----启动菜单制作
在专题一中已经简单配置了启动菜单,但在实际工作场景中,需要在不同的操作系统中进行部署,就需要配置一个综合型、能适配各种操作系统启动环境的启动菜单,需要能够满足部署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