# :-: 麒麟ks文件定制-封装ISO文件
| 适用范围 | 适用版本 | 人员 | 发布时间 | 文档版本 |备注 |
| --- | --- | --- | --- | --- |--- |
| 服务器操作系统 | V10-SP1-arm | 王国武 |2022.4.4| V1.0|发布|
| 服务器操作系统 | V10-SP1-arm | 张志勇 |2022.4.4| V1.1|模板调整|
*****
## :-: 目录
1、挂载原生镜像并拷贝
2、修改grub文件
3、拷贝额外的软件包
4、拷贝ks应答文件模板
5、 编辑ks应答文件
6、封装镜像
*****
### 1、挂载原生镜像并拷贝
挂载原生镜像,并将iso镜像中的文件cp至新目录中(注意包含隐藏文件)
`#mount kylinV10SP1-arm071.iso /mnt`
`#cp -rf /mnt/* /app/iso/`
### 2、修改grub文件
修改grub文件的指向,使其引导时读取ks文件,此步骤为了达到无人值守安装的目的
`#vim /app/iso/EFI/BOOT/grub.cfg`

修改内容(修改目的是为了引导镜像后进行全自动安装):
set default=”1”, 目的是默认停留引导菜单为第二行(从0开始)。
ks=cdrom:/images/ks.cfg指向引导时去读取ks文件。
### 3、拷贝额外的软件包
将需要额外安装的软件包存放至images目录下(额外的软件包导入镜像)
`cp -rf multipath-tools-0.7.7-17.ky10.aarch64.rpm /app/iso/images/`
`cp -rf nmon-16m-1.ky10.aarch64.rpm /app/iso/images/`
### 4、拷贝ks应答文件模板
将ks文件模板拷贝至images目录下,并修改内容(KS模板文件为按要求手动安装一台系统后生成的anaconda.cfg文件)
`cp -rf anaconda-ks.cfg /app/iso/images/anaconda-ks.cfg.bak`
`cp /app/iso/images/anaconda-ks.cfg.bak /app/iso/images/ks.cfg `
### 5、编辑ks应答文件
修改内容有(以下为交付镜像于原生镜像的异同):
#######################################################
```
lang en_US.UTF-8 系统语言为英文
keyboard --vckeymap=us --xlayouts='us' 键盘选择英文
part pv.298 --fstype="lvmpv" --ondisk=sda --size=133000 磁盘总总量用户lvm分区大小设定为130G(因多个lv大小比redhat大,通常设置成10G,总量需增加)
取消以下逻辑卷创建
#logvol /weblogic --fstype="ext4" --size=9536 --name=weblogic --vgname=system
#logvol /nbu --fstype="ext4" --size=4768 --name=nbu --vgname=system
#logvol /oracle --fstype="ext4" --size=19073 --name=oracle --vgname=system
改变usr分区大小为20G(10G容量过低会触发告警)
logvol /usr --fstype="ext4" --size=20480 --name=usr --vgname=system
boot分区是1G
part /boot --fstype="xfs" --ondisk=sda --size=1024
services --disable="chronyd" 关闭chronyd服务
额外软件包的导入(因安装时选择的软件包组为图形化安装,其中不包含multipath和nmon软件包)
%post --nochroot
cp-rf /run/install/repo/images/multipath-tools-0.7.7-17.ky10.aarch64.rpm /mnt/sysimage/root/
cp-rf /run/install/repo/images/nmon-16m-1.ky10.aarch64.rpm /mnt/sysimage/root/
%end
额外软件包的安装(因安装时选择的软件包组为图形化安装,其中不包含multipath和nmon软件包)
%post --logfile=/root/ks_log
rpm -ivh /root/multipath-tools-0.7.7-17.ky10.aarch64.rpm
rpm -ivh /root/nmon-16m-1.ky10.aarch64.rpm
%end
----------------------------------------------------------------------------------
以下为终版KS文件内容(ks文件路径为10.200.59.183:/app/iso/mnt/images/ks.cfg):
#version=DEVEL
ignoredisk --only-use=sda
# Partition clearing information
clearpart --all --initlabel --drives=sda
#reboot after install kylin
reboot --eject
# Use graphical install
graphical
# Use CDROM installation media
cdrom
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
#lang zh_CN.UTF-8
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=eno1 --onboot=off --ipv6=auto --no-activate
network --bootproto=dhcp --device=eno2 --onboot=off --ipv6=auto
network --bootproto=dhcp --device=enp21s0f0 --onboot=off --ipv6=auto
network --bootproto=dhcp --device=enp21s0f1 --onboot=off --ipv6=auto
network --bootproto=dhcp --device=enp26s0f0 --onboot=off --ipv6=auto
network --bootproto=dhcp --device=enp26s0f1 --onboot=off --ipv6=auto
network --bootproto=dhcp --device=enp6s0f1 --onboot=off --ipv6=auto
network --bootproto=dhcp --device=rename5 --onboot=off --ipv6=auto
network --hostname=localhost.localdomain
# Root password
rootpw --iscrypted $6$B8juRo62AkUzR0U2$ra1f4e0hDhQIWxH741xvm1xHTQowHpqcLjZqWTCY9nKk.9IDEl81/6baSUx.kVwVp0TOmvKmc3iz5nylAAGrl0
# X Window System configuration information
xconfig --startxonboot
# Run the Setup Agent on first boot
firstboot --enable
# System services
services --disable="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc
# Disk partitioning information
part pv.298 --fstype="lvmpv" --ondisk=sda --size=133000
part /boot --fstype="xfs" --ondisk=sda --size=1024
part /boot/efi --fstype="efi" --ondisk=sda --size=200 --fsoptions="umask=0077,shortname=winnt"
volgroup system --pesize=4096 pv.298
logvol /local --fstype="ext4" --size=1024 --name=lv_local --vgname=system
logvol /srv --fstype="ext4" --size=1024 --name=lv_srv --vgname=system
logvol /tmp --fstype="ext4" --size=9536 --name=lv_tmp --vgname=system
logvol /var --fstype="ext4" --size=10240 --name=lv_var --vgname=system
logvol swap --fstype="swap" --size=16384 --name=swap --vgname=system
logvol / --fstype="ext4" --size=10240 --name=root --vgname=system
logvol /opt --fstype="ext4" --size=9536 --name=lv_opt --vgname=system
logvol /usr --fstype="ext4" --size=20480 --name=lv_usr --vgname=system
logvol /home --fstype="ext4" --size=10240 --name=lv_home --vgname=system
%post --nochroot
#####copy kyinfo and LICENSE
#此项内容目的是将iso中的授权文件拷贝至实际安装后的操作系统中
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
#以下步骤拷贝的.kylin-post-actions文件的意义是,判断bios如不是efi引导模式,生成传统模式下的grub文件。实际行内引导模式都为efi。所以脚本不执行。
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
#拷贝执行.kylin-post-actions-nochroot文件的意义是,判断bios如不是efi引导模式,拷贝grub目录。实际行内引导模式都为efi。所以脚本不执行。
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
kexec-tools
%end
#%addon com_redhat_kdump --enable --reserve-mb='auto'
%post --nochroot (从镜像拷贝额外的软件包,因安装时选择的软件包组为图形化安装,其中不包含multipath和nmon软件包)
cp -rf /run/install/repo/images/multipath-tools-0.7.7-17.ky10.aarch64.rpm /mnt/sysimage/root/
cp -rf /run/install/repo/images/nmon-16m-1.ky10.aarch64.rpm /mnt/sysimage/root/
%end
%post --logfile=/root/ks_log(安装额外的软件包,因安装时选择的软件包组为图形化安装,其中不包含multipath和nmon软件包)
rpm -ivh /root/multipath-tools-0.7.7-17.ky10.aarch64.rpm
rpm -ivh /root/nmon-16m-1.ky10.aarch64.rpm
%end
```
### 6、封装镜像
编写好ks文件后,使用以下命令重新封装iso文件,封装后iso文件中,包含了grub指向与ks应答文件,引导此镜像后,可以按照规划的语言时区分区等要求全自动安装。
/app/iso/autokskylin-v6.iso 为封装后镜像的命名与存放路径
/app/iso/mnt 为系统原生镜像拷贝出来的路径
`mkisofs -J -R -V "kylin" -eltorito-alt-boot -e images/efiboot.img -no-emul-boot -o /app/iso/autokskylin-v6.iso /app/iso/mnt`
·最终定版镜像位置存放在10.200.59.183上的/opp/iso目录中。命名为autokskylin-v6.iso
- 常见问题
- 进入救援模式
- 进入单用户模式
- grub引导修复
- V10SP1-biosdevname解析
- 外设挂载和卸载
- audit关闭解决方案
- 终端无法切换
- 救援模式取数据
- 网卡更名操作
- 问题复现解决类
- xgboost复现解决步骤
- 激活类
- 麒麟服务器激活常用命令
- 服务器故障激活问题--须知
- 激活权限获得方式
- V10-SP系列服务器激活
- 银河麒麟高级服务器操作系统V7&V10激活手册
- shell脚本类
- 多网卡队列绑定CPU脚本
- 服务器健康检查脚本
- 服务安装配置类
- 银河麒麟高级服务器操作系统V10(sp1)安装手册
- LVM创建
- Chrony时间同步配置
- 搭建网络yum源
- PXE部署实施
- Man手册安装
- 部署VNC服务
- Kylin-Server-V10-SP1-0711-DNS服务单机部署文档
- 麒麟ks文件定制-封装iso文件
- iptables端口配置
- V10-SP1-aarch64安装jdk1.7
- 工具使用类
- cyclictest测试工具
- e2fsprogs工具介绍
- Logrotate工具说明
- nmon工具安装与使用
- 升、降级类
- rsyslog升级报告
- 性能优化类
- 日志轮转
- 大页内存与透明大页详解
- 优化磁盘IO调度方式
- core文件设置
- 分析报告类
- bond模式4协商不通排查
- audit内存泄露问题分析报告
- mate-indicators内核占用过高问题分析报告
- ansible问题-hostname以及lvol报错
- 关于Linux内存计算的说明
- 磁盘IO调度算法
- 硬件相关类
- 串口
- 网络相关类
- bond创建
- 在已配置好网络情况下添加路由
- 网卡配合网桥实现内网互通KVM虚拟机
- Bond模式4协商不通排查过程
- HA高可用
- kylin HA shell实践
- kylin HA概念性及shell使用
- 虚拟化
- KVM创建虚拟机(图形化操作)
- KVM创建虚拟机(命令操作)
- 容器类
- docker-runc升级
- docker基础镜像制作-服务器版
- 麒麟云平台
- USB3.0设备穿透方法(针对win10云主机穿透)
- 麒麟云平台开关机操作说明
- 技术演练
