文章目录

  • 一、基础环境搭建
  • 1. 原始ISO获取
  • 2. 系统安装
  • 二、ISO镜像定制
  • 1. 准备工作
  • 2. 修改ISO镜像
  • 3. 生成ISO镜像;
  • 三、ISO镜像验证


一、基础环境搭建

1. 原始ISO获取

OS版本:银河麒麟高级服务器操作系统V10SP1(X86_64)
百度网盘:https://pan.baidu.com/s/1xAdxWht0wMB-ebQVbjehbQ 提取码:cns2

2. 系统安装

这里我们选择银河麒麟服务器系统常用的“带UKUI GUI的服务器”以及“自动分区”方案。

麒麟V10 arm架构 麒麟v10.1_服务器

二、ISO镜像定制

1. 准备工作

(1)创建“ISO镜像制作目录”;

[root@localhost ~]# mkdir /root/kylin-iso

(2)将原始ISO镜像挂载到系统(插入光盘后系统会自动挂载);

麒麟V10 arm架构 麒麟v10.1_linux_02


(3)将ISO挂载目录下的所有文件拷贝到“ISO镜像制作目录”;

[root@localhost ~]# rsync -a /run/media/root/Kylin-Server-10/ /root/kylin-iso/

麒麟V10 arm架构 麒麟v10.1_麒麟V10 arm架构_03


(4)获取当前系统中安装的所有rpm包列表;

[root@localhost ~]# rpm -qa > /root/package-list.txt

麒麟V10 arm架构 麒麟v10.1_linux_04

2. 修改ISO镜像

(1)为使后面我们生成的ISO文件尽可能的小,我们只保留系统安装所需要的RPM包以及其它需要定制的RPM包;

A. 首先,删除ISO制作目录/root/kylin-iso/Packages/下所有的RPM包;

[root@localhost ~]# cd /root/kylin-iso/Packages/

[root@localhost Packages]# rm -rf *.rpm

麒麟V10 arm架构 麒麟v10.1_linux_05


B. 接着,从ISO挂载目录/run/media/root/Kylin-Server-10/Packages/拷贝系统安装所需的RPM包拷贝到“ISO镜像制作目录”/root/kylin-iso/Packages/中;

[root@localhost Packages]# cat /root/package-list.txt | awk ‘{print $0}’ |xargs -i cp /run/media/root/Kylin-Server-10/Packages/{}.rpm /root/kylin-iso/Packages/

麒麟V10 arm架构 麒麟v10.1_服务器_06


C. 修改系统/etc/yum.conf配置文件,开启安装软件保留缓存设置;

[root@localhost ~]# vim /etc/yum.conf

修改前:

麒麟V10 arm架构 麒麟v10.1_系统安装_07


修改后:

麒麟V10 arm架构 麒麟v10.1_kylin_08


D. 使用yum将系统自带的OpenSSH等软件更新到最新版本;

[root@localhost ~]# yum install openssh audit mate-indicators

麒麟V10 arm架构 麒麟v10.1_kylin_09


E. 将yum缓存目录/var/cache/yum/下的RPM缓存包拷贝到“ISO镜像制作目录”的Packages文件夹中;

[root@localhost ~]# cd /var/cache/yum/ks10-adv-updates-b74b513216569387/packages/

[root@localhost packages]# cp -a *.rpm /root/kylin-iso/Packages/

麒麟V10 arm架构 麒麟v10.1_服务器_10


F. 更新“ISO镜像制作目录”的repodata文件夹下的xxx-comps.xml文件;

[root@localhost ~]# cd /root/kylin-iso/

[root@localhost kylin-iso]# createrepo -g repodata/8cdeadbf13f3898044bd53454eab119481c7fcb672eae31327419bcf1516d54d-Kylin-x86_64-V10-ukui-comps.xml .

麒麟V10 arm架构 麒麟v10.1_kylin_11


(2)配置KickStart自动化安装;

A. 系统安装完成后,默认会在/root/目录下生成anaconda-ks.cfg文件,该文件记录了系统安装过程中的配置。我们将其复制到“ISO镜像制作目录”的isolinux文件夹中,并改名为ks.cfg;

[root@localhost ~]# cp /root/anaconda-ks.cfg /root/kylin-iso/isolinux/ks.cfg

麒麟V10 arm架构 麒麟v10.1_linux_12


B. 编辑ks.cfg自动化安装脚本文件,修改以下几个配置:

①修改SSH端口号为6022,并设置“允许root账户使用SSH远程登录”

麒麟V10 arm架构 麒麟v10.1_系统安装_13

②系统安装前自动清除原有的分区信息

麒麟V10 arm架构 麒麟v10.1_linux_14

③系统安装完成后自动重启

麒麟V10 arm架构 麒麟v10.1_系统安装_15


④安装升级openssh,audit和mate-indicators

麒麟V10 arm架构 麒麟v10.1_linux_16

#version=DEVEL
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
clearpart --all --initlabel --drives=sda
# Use graphical install
graphical
# Use CDROM installation media
cdrom
# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
# System language
lang zh_CN.UTF-8

# Network information
network  --bootproto=dhcp --device=ens33 --ipv6=auto --activate
network  --bootproto=dhcp --device=ens37 --onboot=off --ipv6=auto
network  --hostname=localhost.localdomain
# Root password
rootpw --iscrypted $6$qZquFjZf5nbW3GyN$G/x3FR11KkE0eSPeYFOmYx8mhYcvkssy1vKOPF4rVLB7Estu5L/Fi62SIgtxW0VHeksm5WzcJI2Q30OX3Hr1a0
# X Window System configuration information
xconfig  --startxonboot
# Run the Setup Agent on first boot
firstboot --enable
# System services
services --enabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc

%post --nochroot
#####copy kyinfo and LICENSE
if [ -e /tmp/.kyinfo ];then
  echo y | cp -a /tmp/.kyinfo $ANA_INSTALL_PATH/etc/
fi
if [ -e /tmp/LICENSE ];then
  echo y | cp -a /tmp/LICENSE $ANA_INSTALL_PATH/etc/
fi
if [ -e /run/install/repo/.kyinfo ];then
  echo y | cp -a /run/install/repo/.kyinfo $ANA_INSTALL_PATH/etc/
fi
if [ -e /run/install/repo/LICENSE ];then
echo y | cp -a /run/install/repo/LICENSE $ANA_INSTALL_PATH/etc/
fi

##### kylin postaction
## cdrom install, copy .kylin-post-actions
if [ -e /run/install/repo/.kylin-post-actions ];then
  echo y | cp -a /run/install/repo/.kylin-post-actions /tmp/.kylin-post-actions
  echo "repo=/run/install/repo" > /tmp/.kylin-repo
fi
## copy kylin post scripts in new os
if [ -e /tmp/.kylin-post-actions ];then
  echo y | cp -a /tmp/.kylin-post-actions $ANA_INSTALL_PATH/bin
fi
if [ -e /tmp/.kylin-repo ];then
  echo y | cp -a /tmp/.kylin-repo $ANA_INSTALL_PATH/tmp/
fi

## copy and run .kylin-post-actions-nochroot
if [ -e /run/install/repo/.kylin-post-actions-nochroot ];then
  echo y | cp -a /run/install/repo/.kylin-post-actions-nochroot /tmp/.kylin-post-actions-nochroot
fi
if [ -e /tmp/.kylin-post-actions-nochroot ];then
  /bin/bash -x /tmp/.kylin-post-actions-nochroot &> $ANA_INSTALL_PATH/var/log/.kylin-post-actions-nochroot.log
fi

%end

%post
/bin/sed -i '13a Port 6022' /etc/ssh/sshd_config; \\
/bin/sed -i '/PermitRootLogin /d' /etc/ssh/sshd_config; \\
/bin/sed -i '32a PermitRootLogin yes' /etc/ssh/sshd_config; \\

systemctl disable systemd-networkd-wait-online.service
systemctl disable multipathd.service
### do kylin post action
if [ -e /bin/.kylin-post-actions ];then
  /bin/bash -x /bin/.kylin-post-actions &> /var/log/.kylin-post-actions.log
fi

%end

%packages
@^kylin-desktop-environment
kexec-tools
openssh
audit
mate-indicators

%end

%addon com_redhat_kdump --enable --reserve-mb='1024M'

%end

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

reboot

(3)修改启动文件isolinux.cfg;

[root@localhost ~]# vim /root/kylin-iso/isolinux/isolinux.cfg

注意:这里“LABEL=“后面的参数值”Kylin-Server-10“要和后续制作的U盘启动盘卷标名称或者刻录的光盘名称一致。

修改前:

麒麟V10 arm架构 麒麟v10.1_麒麟V10 arm架构_17


修改后:

麒麟V10 arm架构 麒麟v10.1_麒麟V10 arm架构_18

3. 生成ISO镜像;

[root@localhost ~]# cd /root/kylin-iso/

[root@localhost kylin-iso]# mkisofs -o kylin10.iso -input-charset utf-8 -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T -joliet-long -V Kylin-Server-10 /root/kylin-iso/

麒麟V10 arm架构 麒麟v10.1_麒麟V10 arm架构_19


麒麟V10 arm架构 麒麟v10.1_linux_20


[root@localhost kylin-iso]# ls -lh kylin10.iso

麒麟V10 arm架构 麒麟v10.1_系统安装_21

三、ISO镜像验证

注:验证环境为VMware虚拟机环境。

(1)修改“CD/DVD(IDE)”为“使用ISO映像文件”,如下图:

麒麟V10 arm架构 麒麟v10.1_系统安装_22


(2)直接从“CD/DVD(IDE)”启动虚拟机,系统会自动开始安装,如下图:

麒麟V10 arm架构 麒麟v10.1_linux_23


(3)系统安装完成;

麒麟V10 arm架构 麒麟v10.1_kylin_24


(4)进系统验证上述步骤中的定制选项配置是否生效。

A. SSH端口正常;

麒麟V10 arm架构 麒麟v10.1_麒麟V10 arm架构_25


B. OpenSSH软件包版本正常;

麒麟V10 arm架构 麒麟v10.1_系统安装_26