之前介绍过如何制作一个 centos live cdrom 系统

那么,某些情况下我们可能无法弄一个 pxe 系统,而只能通过 idrac 挂载 iso 的方式安装系统

该如何去做呢?

步骤如下:

一、下载Centos的minimal安装光盘

wget http://mirrors.163.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso
yum install -y mkisofs

二、准备kickstart安装文件

下载: centos7.ks

text
skipx
install

auth  --useshadow  --enablemd5
authconfig --enableshadow --passalgo=sha512

firstboot --disable
keyboard us
lang en_US.UTF-8
reboot
cdrom

firewall --disable
selinux  --disabled

services --enabled="chronyd"
logging level=info


#ignoredisk --only-use=vda
ignoredisk --only-use=sda
#bootloader --location=mbr --append="net.ifnames=0 biosdevname=0 crashkernel=auto"
bootloader --location=mbr --append="crashkernel=auto"

rootpw --plaintext Renren2021!
timezone Asia/Shanghai --isUtc

network  --device=lo --hostname=localhost.localdomain
user --name=supdev --gid=511 --groups="supdev" --uid=511 --password="Renren2021!"

zerombr
clearpart --all --initlabel 

part biosboot --fstype=biosboot --size=1
part /boot --fstype ext4 --size=2048 
part swap  --asprimary   --size=8192
part /     --fstype ext4 --size=1 --grow

#part biosboot --fstype=biosboot --size=1
#part /boot --fstype ext2 --size 250
#part pv.01 --size 1 --grow
#volgroup vg pv.01
#logvol / --vgname=vg --size=1 --grow --fstype ext4 --fsoptions=discard,noatime --name=root
#logvol /tmp --vgname=vg --size=1024 --fstype ext4 --fsoptions=discard,noatime --name=tmp
#logvol swap --vgname=vg --recommended --name=swap

#uefi
#partition /boot/efi --asprimary --fstype=vfat --label EFI  --size=200
#partition /boot     --asprimary --fstype=ext4 --label BOOT --size=500
#partition /         --asprimary --fstype=ext4 --label ROOT --size=4096 --grow


services --enabled=network

reboot

%pre
parted -s /dev/sda mklabel gpt
%end

%packages
@core
@system-admin-tools
@additional-devel
@virtualization-client
@virtualization-platform
@virtualization-tools
libguestfs-tools-c
perl-Sys-Virt
qemu-guest-agent
qemu-kvm-tools
curl
dstat
expect
openssl
initscripts
ipmitool
lrzsz
lsof
mtools
nc
nmap
perl
perl-CPAN
procps
python
screen
sysstat
systemtap
systemtap-client
systemtap-devel
tcpdump
telnet
vim
wget
wsmancli
zip
chrony
kexec-tools
net-tools
ntp
ntpdate
man
acpid
chrony
telnet
%end

三、准备生成iso的脚本

下载: makeiso.sh

#!/bin/bash
rm -rf /tmp/bootiso /tmp/bootcustom /tmp/boot.iso
mkdir /tmp/bootiso 
mount -o loop CentOS-7-x86_64-Minimal-2009.iso /tmp/bootiso

mkdir /tmp/bootcustom
cp -r /tmp/bootiso/* /tmp/bootcustom
umount /tmp/bootiso 
rmdir /tmp/bootiso


chmod -R u+w /tmp/bootcustom

cp centos7.ks /tmp/bootcustom/isolinux/ks.cfg

sed -i '/menu\ default/d' /tmp/bootcustom/isolinux/isolinux.cfg
sed -i 's/^timeout\ .*/timeout 10/g' /tmp/bootcustom/isolinux/isolinux.cfg
sed -i '/^label\ linux/i label\ kickstart' /tmp/bootcustom/isolinux/isolinux.cfg
sed -i '/^label\ linux/i \ \ menu\ label\ ^Install\ Using\ Kickstart\ CentOS 7' /tmp/bootcustom/isolinux/isolinux.cfg
sed -i '/^label\ linux/i \ \ menu\ default' /tmp/bootcustom/isolinux/isolinux.cfg
sed -i '/^label\ linux/i \ \ kernel\ vmlinuz\ biosdevname=0' /tmp/bootcustom/isolinux/isolinux.cfg
sed -i '/^label\ linux/i \ \ append\ initrd=initrd.img\ ks=cdrom:\/ks.cfg' /tmp/bootcustom/isolinux/isolinux.cfg
sed -i '/^label\ linux/i \\n' /tmp/bootcustom/isolinux/isolinux.cfg

cd /tmp/bootcustom
mkisofs -o /tmp/boot.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "CentOS 7 x86_64" -R -J -v -T isolinux/. .

生成的自动安装光盘文件在 /tmp/boot.iso ,在 idrac 中 mount 出来,就可以用 virtual CD-ROM 自动安装了