💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
# :-: 麒麟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` ![](https://img.kancloud.cn/6f/29/6f290da68ecb3a577b8c53a15a4fb7f0_553x319.png) 修改内容(修改目的是为了引导镜像后进行全自动安装): 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