(目的)通过kickstart方式自动安装麒麟kylinV10SP2系统
一、安装一台kylinV10SP2虚拟机
虚拟机的作的是,定制kickstart自动安装ISO镜像
1:新建虚拟机,安装kylinV10SP2
workstations15Pro新建虚拟机,
使用ISO镜像(Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso),
安装麒麟linux
H:\麒麟V10安装(国产化专题)2023-1-14\麒麟linux安装介质\Kylin-Server-10-SP1-Release-Build04-20200711-x86_64.iso
2:修改新虚拟机的配置,设置网卡参数
为让麒麟V10识别网卡,在打开的VMX文件中找到【ethernet0.addressType = “generated”】这一行,在下面添加一行【ethernet0.virtualDev = “e1000″】。
在vmware指定的虚拟机存储位置找到.vmx的文件,在里面找到
ethernet0.virtualDev = "pcnet32" 或是别的。将其修改为:
ethernet0.virtualDev = "e1000"' (如果没有添加)
#ethernet0.addressType = "vpx" 注释掉。
3: 配置网卡IP
(1)Xshell登陆,Xshell SSH远程登录提示“找不到匹配的keyexchange算法”
(2)配置网络
[root@localhost network-scripts]# vi ifcfg-ens33
DEVICE=ens33
IPADDR=192.168.0.222
NETMASK=255.255.255.0
#NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
#BROADCAST=127.255.255.255
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
重启网卡服务
systemctl restart network #重启网卡
systemctl enable network #开机启动网卡
4: 查看kylin版本
[root@mytest ~]# nkvers
############## Kylin Linux Version #################
Release:
Kylin Linux Advanced Server release V10 (Sword)
Kernel:
4.19.90-24.4.v2101.ky10.x86_64
Build:
Kylin Linux Advanced Server
release V10 (SP2) /(Sword)-x86_64-Build09/20210524
#################################################
二、搭建nginx安装介质服务器
搭建nginx服务器,是为了提供http服务,方便安装过程获取kylin软件包。
1. 安装绿色免nginx服务器
安装过程省略。
2. 启动nginx服务器:
[root@BJMINIO00 ~]# ip a
192.168.0.201
启动nginx服务器
# su - patrol
$ cd nginx && sbin/nginx -p /home/ap/patrol/nginx -c conf/nginx.conf
3. 测试验证:
$ curl http://192.168.0.201:8080/kylin/x64/LICENSE
4. 复制系统安装包
挂载在/mnt目录下,创建iso目录,将/mnt下内容全部复制到/iso下。并将制作好的ks文件拷贝至该目录下
# mount /dev/cdrom /mnt
# su - patrol
$ mkdir -p /home/ap/patrol/nginx/html/kylin/x64
$ cp -rp /mnt/* /home/ap/patrol/nginx/html/kylin/x64
三、制作自动安装iso镜像盘
基于安装好kylin的虚拟机,制作自动安装iso镜像盘
1、kylinV10-SP2的ISO安装盘文件拷贝到指定目录
挂载在/mnt目录下,创建iso目录,将/mnt下内容全部复制到/iso下。并将制作好的ks文件拷贝至该目录下
# mount /dev/cdrom /mnt
# mkdir /iso && cp /mnt/* /iso -rp
# cp /root/initial-setup-ks.cfg /iso
2、修改启动文件isolinux.cfg
kylin系统安装完成后,默认会在/root/目录下生成anaconda-ks.cfg文件,该文件记录了系统安装过程中的配置。我们将其复制到“ISO镜像制作目录”的isolinux文件夹中,并改名为ks.cfg;
# vim /iso/isolinux/isolinux.cfg
注意:这里“LABEL=“后面的参数值”Kylin-Server-10“要和后续制作的U盘启动盘卷标名称或者刻录的光盘名称一致
修改后:
label linux
menu default
menu label ^Install Kylin Linux Advanced Server V10
kernel vmlinuz
#append initrd=initrd.img inst.stage2=hd:LABEL=Kylin-Server-10 quiet
append initrd=initrd.img inst.stage2=hd:LABEL=Kylin-Server-10 ks=cdrom:/initial-setup-ks.cfg quiet
label check
menu label Test this ^media & install Kylin Linux Advanced Server V10
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=Kylin-Server-10 rd.live.check quiet
3、修改启动文件ks.cfg,指明ks文件位置
配置KickStart自动安装;
# vi /iso/initial-setup-ks.cfg
# url --url="http://192.168.0.201:8080/kylin/x64"
network --bootproto=static --device=ens33 --onboot=yes --ip=192.168.0.222 --netmask=255.255.255.0 --gateway=192.168.0.1
4、使用命令mkisofs重新将/iso目录下所有文件打包为iso镜像,本次以X86架构为例:
# cd /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 /iso/
## /iso/ 为文件所在目录 ,-V 后面面加的内容为ISO挂载上去显示的名称,-o 后面的/kylin10.iso为新生成的iso镜像所在目录及名称
四、kickstart方式安装新的kylin虚拟机
1. 将打包好的iso镜像用U盘制作启动盘或刻录至光盘
2. 选择从U盘或光盘启动
等待自动化的安装
3. 查看安装结果
登陆linux,查了kylin的版本:
[root@mytest ~]# nkvers
############## Kylin Linux Version #################
Release:
Kylin Linux Advanced Server release V10 (Sword)
Kernel:
4.19.90-24.4.v2101.ky10.x86_64
Build:
Kylin Linux Advanced Server
release V10 (SP2) /(Sword)-x86_64-Build09/20210524
#################################################
五、附件:kickstart自动安装文件
[root@localhost iso]# vi /iso/initial-setup-ks.cfg
#version=DEVEL
# License agreement
eula --agreed
# Use graphical install
graphical
# Network information
network --bootproto=static --device=ens33 --onboot=yes --ip=192.168.0.220 --netmask=255.255.255.0 --gateway=192.168.0.1
#设置主机名
network --hostname=mytest
#network --bootproto=dhcp --hostname=localhost.localdomain
#ignoredisk --only-use=sda
# Use CDROM installation media
url --url="http://192.168.0.201:8080/kylin/x64"
#cdrom
# Run the Setup Agent on first boot
firstboot --enable
# System services
services --enabled="chronyd"
# System bootloader configuration
#bootloader --location=none
bootloader --location=mbr --driveorder=sda --append=" rhgb crashkernel=auto quiet"
#autopart
# Partition clearing information
#clearpart --all --initlabel --drives=sda
#指定使用sda并忽略其他盘
ignoredisk --only-use=sda
#清理盘上的所有分区表
clearpart --all --initlabel
#基于 UEFI 的 AMD64、Intel 64 和 64 位 ARM 需要 200 MiB EFI 系统分区。推荐的最小值是 200 MiB,默认大小为 600 MiB,最大为 600 MiB。BIOS 系统不需要 EFI 系统分区
part /boot/efi --fstype="efi" --ondisk=sda --size=600 --fsoptions="umask=0077,shortname=winnt"
#将sda创建为ID:311的物理卷,最小10G,若磁盘大于10G,也全部做成物理卷
#--grow 自增长
part pv.311 --fstype="lvmpv" --ondisk=sda --size=10240 --grow
#boot分区,建议大小1G
part /boot --fstype="xfs" --ondisk=sda --size=1024
#将pv.311加入卷组,默认pe大小4M
volgroup santiagod --pesize=4096 pv.311
#逻辑卷-交换空间,视磁盘大小而定,为安装时的系统盘大小10%
logvol swap --fstype="swap" --recommended --name=swap --vgname=santiagod
#逻辑卷-根分区,虽然 5 GiB 根文件系统允许您最小安装,但建议至少分配 10 GiB,以便可以尽可能安装您想要的软件包组
logvol / --fstype="xfs" --size=10240 --name=rootlv --vgname=santiagod
logvol /home --fstype="xfs" --size=10240 --name=homelv --vgname=santiagod
%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
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
%end
# Keyboard layouts
keyboard --xlayouts='cn'
# System language
lang zh_CN.UTF-8
# Network information
network --hostname=localhost.localdomain
# Run the Setup Agent on first boot
firstboot --enable
# System services
services --enabled="chronyd"
# System timezone
timezone Asia/Shanghai --utc
# Root password
rootpw --iscrypted $6$6MDhoICEhSPVMmcT$kW1C/olcpRdlOYwyXL2NnmCr.UbBdITx1kW7iZevwktO4nVibrcPbet33Q6PrPqtDq6edRWDWbWROJdW/1Xvf1
%addon ADDON_placeholder --enable --reserve-mb=1024M
%end
%anaconda
pwpolicy root --minlen=8 --minquality=1 --strict --nochanges --notempty
pwpolicy user --minlen=8 --minquality=1 --strict --nochanges --emptyok
pwpolicy luks --minlen=8 --minquality=1 --strict --nochanges --notempty
%end
------------------
ks文件可分为三部分,
第一部分为命令段,用于对系统的基本配置,命令有install、url、Keyboard、Lang、Network、Timezone等;
第二部分为软件包段,以%packages开头,%end结尾;
第三部分为脚本段,分为安装前脚本,以%pre标识;安装后脚本,以%post标识
[root@centos7 ~]# cat /var/ftp/kylinos_ks.cfg |grep -v ^# |grep -v ^$
#安装或是更新
install
#键盘布局
keyboard 'us'
#root密码
rootpw --iscrypted $1$gLnMdpYq$NNdcgsT1ixnYiObXYbiH5/
# 通过网络安装时,安装文件的位置。
url --url="ftp://172.16.240.3/kylinos"
#系统语言
lang en_US
#图形界面安装,或者使用text字符界面安装
graphical
#禁用快速引导
firstboot --disable
#启用selinux
selinux --enforcing
#启用防火墙并放行ssh服务
firewall --enabled --ssh
#网络配置
network --bootproto=dhcp --device=eth0
#安装完成后重启系统
reboot
#指定时区
timezone Asia/Shanghai
#添加内核项,使用eth0网卡
bootloader --append="net.ifnames=0 biosdevname=0" --location=mbr
#清除主引导记录
zerombr
#清空所有分区
clearpart --all --initlabel
#配置/boot分区xfs格式,512M大小
part /boot --fstype="xfs" --size=512
#配置/home分区xfs格式,40G大小
part /home --fstype="xfs" --size=40960
#配置根分区为xfs格式,分配所有剩余空间
part / --fstype="xfs" --grow --size=1
#安装的包组%packages开头,%end结尾。通过 @ 指定软件包组,通过 @^ 指定环境组。
%packages
@^kylin-desktop-environment
@development
@man-help
%end
#配置kdump大小
%addon com_redhat_kdump --enable --reserve-mb='1024M'
%end
#%anaconda指定 password 策略,以 %end 结束。
%anaconda
pwpolicy root --minlen=8 --minquality=1 --strict --nochanges --notempty
pwpolicy user --minlen=8 --minquality=1 --strict --nochanges --emptyok
pwpolicy luks --minlen=8 --minquality=1 --strict --nochanges --notempty
%end
#通过 %pre 指定在磁盘分区前要执行的脚本,通过 %post 指定系统安装完成后要执行的脚本。这些模块都需要 %end 结束。一般不配置%pre。%post用的比较多
%post --interpreter=/bin/bash
touch /root/test.tt1
%end
————————————————
来源地址:https://blog.csdn.net/lihb_ccb/article/details/128737994