定制Centos7.9镜像

博客 分享
0 186
张三
张三 2022-02-21 23:55:38
悬赏:0 积分 收藏

定制Centos7.9镜像

 

Ps:因为工作内容;有一部份是需要重装系统;系统版本镜像为centos7.9。可每次装完都需要下载一些基础包;最近因为设备过多;网卡名称太乱;导致做后续配置太繁琐;不规整;索性自己定制个系统;

 

搭建基础环境
将/root/iso做为定制镜像制作目录; 将/MISO作为挂载镜像的目录 ;安装制作镜像的命令及下载最小化镜像
# mkdir /root/iso# mkdir /MISO# yum install createrepo mkisofs isomd5sum squashfs-tools 
# wget https://mirrors.163.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso
 
挂载镜像;并将/MISO目录下的所有内容copy到镜像制作目录;

# mount -o loop,rw CentOS-7-x86_64-Minimal-2009.iso /MISO# cp -a /MISO/*   /root/iso/
 
修改/root/iso/isolinux/isolinux.cfg文件,修改如下内
default vesamenu.timeout 100  
##安装系统时的默认引导时间;display boot.msg# Clear the screen when exiting the menu, instead of leaving the menu displayed.# For vesamenu, this means the graphical background is still displayed without# the menu itself for as long as the screen remains in graphics mode.menu clearmenu background splash.png ###安装系统背景图片;更换背景界面;替换为需要的图片,保持文件名不变,图片大小640x480menu title SinoCache ISO 7.9 ##可以定制欢迎标题menu vshift 8menu rows 18menu margin 8#menu hiddenmenu helpmsgrow 15menu tabmsgrow 13………………………………………………label linux menu label ^Install SinoCache ISO 7.9 ###定制系统标题 menu default ###默认引导选项 kernel vmlinuz append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg inst.stage2=hd:LABEL=CentOS quiet net.ifnames=0 biosdevname=0##ks=cdrom:/isolinux/ks.cfg :创建自动化安装配置文件;可以用系统默认生成的anaconda-ks.cfg文件。##inst.stage2=hd:LABEL= :为安装介质位置,hd:LABEL为介质标签,例如:CentOS

##net.ifnames=0 biosdevname=0 :用于禁用centos7的”一致性网络设备命名法”;centos6系统网卡命名为ethX形式;centos7系统网卡名各种各样在工作中太无序了;很烦;使用这个参数可以将网卡名改为ethX###可以将这个标签选项注销。#label check# menu label Test this ^media & install SinoCache ISO 7.9# kernel vmlinuz# append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet net.ifnames=0 biosdevname=0
 
编辑isolinux/ks.cfg文件;也可以用/root/anaconda-ks.cfg
# cp -a /root/anaconda-ks.cfg /root/iso/isolinux/ks.cfg
#version=DEVEL# System authorization informationauth --enableshadow --passalgo=sha512#使用CD-ROM安装介质cdrom# 使用图形化安装graphical# 在第一次启动时运行安装代理firstboot --enableignoredisk --only-use=sda# 键盘布局keyboard --vckeymap=us --xlayouts='us'# 设置语言lang en_US.UTF-8# Network informationnetwork  --bootproto=dhcp --device=eth0 --onboot=off --ipv6=autonetwork  --bootproto=dhcp --device=eth1 --onboot=off --ipv6=autonetwork  --bootproto=dhcp --device=eth2 --onboot=off --ipv6=autonetwork  --bootproto=dhcp --device=eth3 --onboot=off --ipv6=autonetwork  --bootproto=dhcp --device=eth4 --onboot=off --ipv6=autonetwork  --bootproto=dhcp --device=eth5 --onboot=off --ipv6=auto#network  --device=Wan     --bondopts=mode=802.3ad,xmit_hash_policy=layer3+4 --bondslaves=eth0,eth3 --onboot=yesnetwork  --hostname=ngaa.com.cn# 设置root密码rootpw --iscrypted $6$sNStQWknxzURmZpv$PEFIX7tG1McnzRsGBUm4UnOyRr4Kg/R8CHcujTbPYMvZRfxVWd8aetfP7gWRHhHobKMay4rGQO6Uxq2CoZ7QF1# System servicesservices --enabled="chronyd"# 关闭 SELinux selinux --disabled# 关闭防火墙firewall --disabled# 系统服务开机自启services --enabled="zabbix_agentd,sshd"# 设置时区timezone Asia/Shanghai --isUtc# 系统引导配置bootloader --append="console=tty0 audit=0 selinux=0 net.ifnames=0 biosdevname=0 crashkernel=auto" --location=mbr --boot-drive=sda# 清空主引导分区记录MBRzerombr# 清除分区信息clearpart --all --initlabel# 硬盘分区信息part / --fstype="xfs" --ondisk=sda --size=102400part /boot --fstype="xfs" --ondisk=sda --size=300part swap --fstype="swap" --ondisk=sda --size=32768part /data/cache1 --fstype="xfs" --ondisk=sda --size=92458%packages@^minimal@corechronykexec-tools%end%addon com_redhat_kdump --enable --reserve-mb='auto'%end%post#配置sshd/bin/sed -i '13a Port 7346' /etc/ssh/sshd_config; \\/bin/sed -i '/PermitRootLogin /d' /etc/ssh/sshd_config; \\/bin/sed -i '32a PermitRootLogin yes' /etc/ssh/sshd_config; \\/bin/sed -i '59a PasswordAuthentication yes' /etc/ssh/sshd_config; \\/bin/sed -i '/GSSAPIAuthentication /d' /etc/ssh/sshd_config; \\/bin/sed -i '71a GSSAPIAuthentication no' /etc/ssh/sshd_config; \\/bin/sed -i '/UsePAM /d' /etc/ssh/sshd_config; \\/bin/sed -i '82a UsePAM yes' /etc/ssh/sshd_config; \\/bin/sed -i '/UseDNS /d' /etc/ssh/sshd_config; \\/bin/sed -i '98a UseDNS no' /etc/ssh/sshd_config; \\#disable NetworkManagersystemctl stop NetworkManagersystemctl disable NetworkManager#配置PAM会话检查cat > /etc/pam.d/sshd << EOF#%PAM-1.0auth       required     pam_sepermit.soauth       include      password-authaccount    required     pam_nologin.soaccount    include      password-authpassword   include      password-auth# pam_selinux.so close should be the first session rulesession    required     pam_selinux.so closesession    required     pam_loginuid.so# pam_selinux.so open should only be followed by sessions to be executed in the user contextsession    required     pam_selinux.so open env_paramssession    optional     pam_keyinit.so force revokesession    include      password-authEOF#配置DNSecho  'nameserver 114.114.114.114' > /etc/resolv.conf%end%anacondapwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notemptypwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyokpwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty%endreboot##重装完系统自动重启。
%pre 和 %post 部分 - 这两个部分的顺序不限,也不是必须的。

 %addon、%packages、%pre 和 %post 部分必须以 %end 结尾,否则安装程序会拒绝 Kickstart 文 件。

 

 

更改/etc/yum.conf;使用下载缓存;

[main]cachedir=/var/cache/yum/   ##将缓存目录做修改;原来目录太深了;·keepcache=1  ##将原来的值0改为1(表示安装后保留软件包;为的是下载一些新系统预安装的软件;如wget等)debuglevel=2logfile=/var/log/yum.logexactarch=1obsoletes=1gpgcheck=1plugins=1installonly_limit=5bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yumdistroverpkg=centos-release

 

安装一些预安装的软件;或者在修改yum缓存后;直接yum -y  update ;升级所有的系统包;在安装系统是均是最新的包;ssh有个坑;是/etc/pam.d/sshd文件认证登录;

# yum -y install mtr vim net-tools wget iptables-services tcpdump traceroute zabbix_agentd iptraf-ng bind-utils ipmitool pciutils rsync###上面的软件rpm包(包括依赖包)都会在/var/cache/yum/*/packages/目录下; *代表所使用的yum源仓库名称;根据自己使用yum仓库来决定。
 
需要预安装其他的包,将解决好依赖关系的包全部放入/root/iso/Packages/中,此目录下是系统最初安装的系统包。

[root@localhost packages]# pwd/var/cache/yum/ali-updates/packages[root@localhost packages]# ll | head -n5total 359436-rw-r--r--. 1 root root  1038100 Dec  1 09:13 bash-4.2.46-35.el7_9.x86_64.rpm-rw-r--r--. 1 root root  1146744 Dec  1 09:13 bind-export-libs-9.11.4-26.P2.el7_9.8.x86_64.rpm-rw-r--r--. 1 root root   161096 Dec  1 09:13 bind-libs-9.11.4-26.P2.el7_9.8.x86_64.rpm-rw-r--r--. 1 root root  1179928 Dec  1 09:13 bind-libs-lite-9.11.4-26.P2.el7_9.8.x86_64.rpm[root@localhost packages]# cp  -a ./* /root/iso/Package
 
更新安装软件包xml文件;将所下载的软件包名称填写进去;在装系统的时候会自动安装好。

# cd /root/iso/repodata# vim *-minimal-x86_64-comps.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE comps PUBLIC "-//CentOS//DTD Comps info//EN" "comps.dtd"><comps>  <group>    <id>core</id>    <name>Core</name>    <name xml:lang="af">Kern</name>      …………………………   <name xml:lang="zh_TW">核心</name>   <name xml:lang="zu">Okuyikhona</name>   <description>Smallest possible installation.</description>   <description xml:lang="as">??????? ???????</description>      …………………………   <description xml:lang="zh_TW">最小型安裝。</description>   <default>false</default>   <uservisible>false</uservisible>   <packagelist>      <packagereq type="mandatory">audit</packagereq>      <packagereq type="mandatory">basesystem</packagereq>      <packagereq type="mandatory">bash</packagereq>        ………………………………      <packagereq type="mandatory">yum</packagereq>      <packagereq type="default">aic94xx-firmware</packagereq>      <packagereq type="default">alsa-firmware</packagereq>        ………………………………            <packagereq type="default">ql23xx-firmware</packagereq>      <packagereq type="default">rdma</packagereq>      <packagereq type="default">vim-enhanced</packagereq>      <packagereq type="default">net-tools</packagereq>      <packagereq type="default">tcpdump</packagereq>      <packagereq type="default">mtr</packagereq>      <packagereq type="default">iptabels-services</packagereq>      <packagereq type="default">traceroute</packagereq>      <packagereq type="default">ipmitool</packagereq>      <packagereq type="default">wget</packagereq>      <packagereq type="default">zabbix_agentd</packagereq>      <packagereq type="default">iptraf-ng</packagereq>      <packagereq type="default">ansible</packagereq>      <packagereq type="default">rsync</packagereq>      <packagereq type="default">pciutils</packagereq>
<packagereq type="default">kernel-devel</packagereq>
<packagereq type="default">kernel-headers</packagereq>
<packagereq type="optional">tboot</packagereq>
</packagelist>
</group>
<environment>
<id>minimal</id>
<name>Minimal Install</name>
<name xml:lang="as">??????? ??????</name>
…………………………
<description xml:lang="zh_CN">基本功能。</description>
<description xml:lang="zh_TW">基本功能。</description>
<display_order>5</display_order>
<grouplist>
<groupid>core</groupid>
<groupid>core</groupid>
</grouplist>
</environment>
</comps>
###在default标签下写自己要下载的软件。前提是制作目录/root/iso/Package/下有相应的rpm及依赖包。
# cd /root/iso/# createrepo -g repodata/*-c7-minimal-x86_64-comps.xml  .###注意当有新包加入,或者更新*comps.xml文件,均需要重新生成repodata文件夹

 

修改安装界面图标背景
/media/usr/share/anaconda/pixmaps/sidebar-logo.png为该安装界面的图标,只需根据自己的需要替换即可,分辨率要跟原图保持基本一致,要不会出现图标过大的情况;图片大小131×115

unsquashfs /root/iso/LiveOS/squashfs.img    #会在root家用户目录下;出现一个squashfs-root/mount -o loop,rw squashfs-root/LiveOS/rootfs.img /media#把解压后的文件进行挂载,然后操作#将解压后的文件重新打包#mksquashfs squashfs-root/   squashfs.img并将生成的squashfs.img替换原来的/root/iso/LiveOS/squashfs.img  

 

 

制作ISO
# mkisofs -o /root/cnetos-7.9.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 CentOS /root/iso/ 
## 注意参数中的-V,和上面的isolinux.cfg文件有关。 

  

感谢这几位的博客及官网文档;

Kickstart官网文档 :https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/installation_guide/chap-installing-using-anaconda-x86

博客
https://www.cnblogs.com/yiy520/p/13307030.html

https://ieevee.com/tech/2016/08/20/kickstart.html

https://www.wumingx.com/linux/centos-iso.html

https://www.cnblogs.com/panyouming/p/8401038.html

https://www.jianshu.com/p/0edb49c3e9b4

https://blog.51cto.com/boytnt/2147184

https://www.cnblogs.com/yanh0606/p/10910808.html

 

 

 

 

  


 

 

TRANSLATE with x
English
ArabicHebrewPolish
BulgarianHindiPortuguese
CatalanHmong DawRomanian
Chinese SimplifiedHungarianRussian
Chinese TraditionalIndonesianSlovak
CzechItalianSlovenian
DanishJapaneseSpanish
DutchKlingonSwedish
EnglishKoreanThai
EstonianLatvianTurkish
FinnishLithuanianUkrainian
FrenchMalayUrdu
GermanMalteseVietnamese
GreekNorwegianWelsh
Haitian CreolePersian 
 
TRANSLATE with
COPY THE URL BELOW
Back
EMBED THE SNIPPET BELOW IN YOUR SITE
Enable collaborative features and customize widget: Bing Webmaster Portal
Back
年轻人该珍惜自己的年龄-_-
posted @ 2022-02-21 22:58 乄人 阅读(7) 评论(0) 编辑 收藏 举报
回帖
    张三

    张三 (王者 段位)

    821 积分 (2)粉丝 (41)源码

     

    温馨提示

    亦奇源码

    最新会员