近期在通过物理主机BMC(ILO地址进入后)系统远程安装系统时候经常出现“黑屏”问题。
黑屏解释:由于各种原因(链接BMC的网络限制或延迟、或跳板机经常卡死),导致在进入系统安装图形主界面(出现设置磁盘分区、时区、安装包、kdump等)前屏幕出现黑屏,鼠标阴影可以移动……就是卡在原地,停止不前,其中原因也有各种浏览器或java的版本不兼容等问题。总之,很多厂家的这种问题频繁的出现,让物理机加载本来启动就很慢的等待,面对黑屏更是无语到吐血…… 经过机房现场(机房安装系统很顺利,包括通过笔记本直连物理主机的ilo口,在笔记本上打开浏览器安装系统)和远程跳板机的近20多次的测试,发现一个规律:操作系统安装过程中图形界面下黑屏,但字符界面安装就不存在黑屏,这也许是网络数据传输限速不支持图形或者说现在主流的服务器对显卡要求低不支持主流操作系统。
从以上实践结论,找到一个解决方案(至少有路可走),必须字符界面下安装操作系统。那么问题又来了,字符界面下安装是默认分区--不让手动创建和修改分区,那分区怎么办……,总不能搭建一个cobbler(网络PXE+kickstar+DHCP+tftp等全自动话无人值守安装的一种)安装吧。经过某厂家高手指导:本地光盘也可以使用kc.cfg文件安装,其实之前就想到:光盘在字符界面使用的默认分区就是依靠光盘中文件实现的,可以修改这个文件重新打包就行,但这样就破坏了原有的正常ISO文件,且面对多种需求不灵活。所以想到了手动创建新的应答文件(也叫init初始化文件)让系统能正常引导就可以了。所以本文章的主要内容是:通过本地操作系统光盘+自定义的ks.cfg应答文件进行无人值守安装系统。
以上是分析和测试过程,具体安装和操作过程如下:
准备工作: 1、光盘ISO,本例中centos7.6; 2、ks.cfg文件,并压缩为iso文件(放入光驱的); 3、物理主机打开BMC,选两个光驱或一个光驱一个软驱(只要是可以加载的设备都行);
过程:(很简单吧,因为几乎是全自动化安装)
1. BMC镜像挂载Centos.iso 和 ks.iso(centos.iso挂载到第一个虚拟光驱,ks.iso挂载到第二个虚拟光驱)。
2. install centos 界面 按Tab,quiet后加 inst.ks=hd:/dev/sr1
3. 安装完成后系统会提示安装成功,需要按回车键重启。
操作过程截图如下:
1、BMC挂载镜像,两个iso文件。建议该界面一直开着,以观察数据是否读取。也可以通过打开cmd执行长ping看看安装过程中网络延迟;
系统安装过程中数据读取显示,判断当前是否正常
2、开机启动,进入启动菜单选择第一个ISO,也就是操作系统的ISO文件所在的位置。
3、在安装开始时,编辑应答文件:
看准时机和提示!!! 按tab键进入编辑
编辑应答文件的位置:
quiet后加 inst.ks=hd:/dev/sr1 ###dev/sr1是ks.cfg文件位置 也就是刚才挂载的第二个光驱位置。
编辑完,回车启动
至此,已经完成全部操作,等系统进入全自动安装界面。
文件ks.cfg未打包前的内容如下: (网络有很多这样的文件可以自行修改)
#version=DEVEL# System authorization information auth --enableshadow --passalgo=sha512# Use CDROM installation media cdrom# Use graphical install text# Run the Setup Agent on first boot firstboot --enable ignoredisk --only-use=sda# Keyboard layouts keyboard --vckeymap=us --xlayouts='us'# System language lang en_US.UTF-8 # Network information network --bootproto=dhcp --device=enp8s0f0 --onboot=off --ipv6=auto --no-activate network --bootproto=dhcp --device=enp8s0f1 --onboot=off --ipv6=auto network --bootproto=dhcp --device=enp8s0f2 --onboot=off --ipv6=auto network --bootproto=dhcp --device=enp8s0f3 --onboot=off --ipv6=auto network --bootproto=dhcp --device=ens10f0 --onboot=off --ipv6=auto network --bootproto=dhcp --device=ens10f1 --onboot=off --ipv6=auto network --bootproto=dhcp --device=ens11f0 --onboot=off --ipv6=auto network --bootproto=dhcp --device=ens11f1 --onboot=off --ipv6=auto network --bootproto=dhcp --device=ens8f0 --onboot=off --ipv6=auto network --bootproto=dhcp --device=ens8f1 --onboot=off --ipv6=auto network --hostname=localhost.localdomain # Root password rootpw --iscrypted $6$IOiWTYJILHDidTJw$AgLnxq.sP5.ZkWfwb844BPKOW7VzBj/60mWbt7JDUCnMEImV1Rk6gnTibUWg/1FTgb8lkJT7FZpOHKGzFbnw91# System services services --disabled="chronyd"# System timezone timezone Asia/Shanghai --isUtc --nontp # System bootloader configuration bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda # Partition clearing information clearpart --all --initlabel --drives=sda # Disk partitioning information part pv.495 --fstype="lvmpv" --ondisk=sda --size=457517 part /boot --fstype="xfs" --ondisk=sda --size=200 volgroup centos --pesize=4096 pv.495 logvol swap --fstype="swap" --size=8192 --name=swap --vgname=centos logvol / --fstype="xfs" --size=449321 --name=root --vgname=centos %packages @^minimal @core kexec-tools %end %addon com_redhat_kdump --enable --reserve-mb='auto' %end %anaconda pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty %end ############################################ #####硬件部分:网卡和硬盘分区需要自己修改
这个ks.cfg文件在使用过程中可能会出现问题,需要不断修改。