1. CentOS全自动安装镜像制作

1.1. 前期准备

1.1.1. 安装软件

  • createrepo

区别于传统的rpm命令安装软件方式,yum能够自动解决并安装依赖。这是由于yum的软件源一开始就已经处理好软件之间的依赖关系,createrepo就是处理这种关系的工具。

  • system-config-kickstart

不用鼠标点击完成繁琐的系统安装时语言、时区设置,使用kickstart生成一个指定配置的文件,系统安装时按照这个设置好的配置自动安装,无需交互。建议使用/root/anaconda-ks.cfg文件或者手动编辑一个。

  • mkisofs/genisoimage

生成光盘ISO文件时需要使用工具,在Linux下推荐使用mkisofs/genisoimage。

[root@localhost /]# yum install -y createrepo genisoimage

1.2. 基本软件复制

使用一个系统镜像复制启动文件和基础软件包。

注意:.discinfo是一个隐藏文件,如果没有改文件在系统安装时将不能识别cdrom。

[root@localhost /]# mount -o loop /redhat6.2.iso  /mnt
[root@localhost /]# mkdir /wenyu_redhat6u2
[root@localhost /]# cp -r /mnt/{images,isolinux,Packages}   /wenyu_redhat6u2
[root@localhost /]# cp /mnt/.discinfo /wenyu_redhat6u2

1.3. 创建软件源依赖环境

1.3.1. 复制软件组goup信息文件

在使用yum groupinstall时会安装一组软件,软件组相关信息保存在repodata下的一个comps.xml文件中(文件名称可能有差异)。

[root@localhost /]# cp /mnt/repodata/minimal-x86_64.xml    /wenyu_redhat6u2

1.3.2. 复制其他新的软件包

如果有其他软件包,也可以一同复制到Packages目录中。 但是要注意的是,只要Packages目录有修改就需要重建依赖,否则新修改无效。

[root@localhost /]#cp  /mysoft/*.rpm    /wenyu_redhat6u2/Packages

1.3.3. 生成依赖关系

createrepo工具能够生成软件之间的依赖关系,提供给yum使用。

  • -g 指定软件组相关信息的文件路径

命令执行完后会在指定目录(最后一个路径参数)下生成一个repodata目录来保存相关依赖信息,同时保存一份组依赖xml文件到该目录中。原始的xml文件可以删除

[root@localhost wenyu_redhat6u2]# cd /wenyu_redhat6u2

[root@localhost wenyu_redhat6u2]# createrepo  -g minimal-x86_64.xml ./
Spawning worker 0 with 718 pkgs
Workers Finished
Gathering worker results
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

[root@localhost wenyu_redhat6u2]# ls
minimal-x86_64.xml  images  isolinux  Packages  repodata

[root@localhost wenyu_redhat6u2]# ls repodata/
17ff3157e62693dc7ef146235d639b7c872c991123c3dcfa15edfb99f707e36b-other.xml.gz
8afad1febf2d8844a235a9ab1aa5f15c9cec1219b9d01060d4794435cf59dffe-minimal-x86_64.xml
344fac9bd4382a9c7b17e50cbfcb2ffdf9d09a72215438aeae40c3a715608e3b-filelists.xml.gz
b676cc96dc3c2ac0b44b0ca4e900f24c39e56db98565f08fc5882dda23d277cf-alios6u2.xml.gz
41911caa2ebd0c26a162ab0a7694d11dbdab3a8d12cc537828d933bd589a1e5d-other.sqlite.bz2 
c4ccb9420889f42394f283562fef5104f6eaf919c371e57872126de694ab9fe6-filelists.sqlite.bz2
5da9f19be1d65a9d9d530e08ef9f8d952e4ec301ce1c807bc17a9faf4e9336ba-primary.sqlite.bz2 
repomd.xml
7f02d42cf1ac680709934747648838c18dcb72cc3086e5da4adea1e883d86ac3-primary.xml.gz

1.3.4. 测试软件源可用性

指定系统yum源为wenyu_redhat6u2。

  • 注意:不同于http,ftp等方式,使用file方式是需要用三个///,因为绝对路径必须从/开始
[root@localhost wenyu_redhat6u2]# cat /etc/yum.repos.d/local.repo 
[base]
name=CentOS
baseurl=file:///wenyu_redhat6u2
enable=1
gpgcheck=0

测试yum源可用

yum clean all
yum list
yum groulist
yum install test-soft -y

1.4. 配置文件修改

1.4.1. 修改开机启动菜单

开机启动菜单配置文件能够配置开机时背景图片,等待时间,默认选项等。

  • 注意:不同环境该文件名会不同
[root@localhost wenyu_redhat6u2]# cat /wenyu_redhat6u2/isolinux/isolinux.cfg
default vesamenu.c32   #默认菜单文件
timeout 600            #等待超时时间,单位是1/10秒,这里是60秒

display boot.msg       

menu background splash.jpg  #背景图片
menu title Welcome to Red Hat Enterprise Linux 6.2!   #提示title
menu color border 0 #ffffffff #00000000  #颜色设置
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

#每个label就是一个选项
#append追加内核参数,可以这里指定ks.cfs文件位置.也可以在最开始使用default linux ks=cdrom:/ks.cfg
label linux
  menu label ^Install or upgrade an existing system 
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/ks.cfg   #指定ks文件路径
label vesa
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append initrd=initrd.img xdriver=vesa nomodeset
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append -

1.4.2. 编辑ks.cfg文件

ks.cfg 是配置系统安装时的参数。如果缺少配置项则屏幕会停留在该项等待用户交互配置。

# Kickstart file automatically generated by anaconda.
#键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择

#version=DEVEL

#指定默认执行内容,是安装install还是升级upgrade
install

#文本方式安装,图像graphical
text

#安装方式,一般是ISO镜像挂载的目录。有多重安装方式
#url ––url ftp://192.168.1.254/dir
#nfs --server=192.168.0.241 --dir=/centosinstall
#url --url=http://10.0.0.1/
cdrom

#如果是redhat的系统,会要求输入key,这里配置为跳过,如果不配置安装时会停在那里要求用户输入key
key –skip

#语言
lang en_US.UTF-8

#键盘样式
keyboard us

#网络配置 配置具体参数样例:network –onboot yes --bootproto=static --ip=192.168.1.1 --netmask=255.255.255.0 其他网关,DNS等格式。是按照号操作系统后对ifcfg-eth0的配置,在pxelinux.cfg/default之前会还有多种下载方式,可以研究如何下载
#network --onboot yes --device eth0 --bootproto static --ip=10.0.0.101 --netmask=255.255.255.0

network --onboot no --device eth0 --bootproto dhcp --noipv6

#管理员密码,是加密过的 要是使用不加密的方式则这样写:rootpw 123456
rootpw  --iscrypted $6$.U.Eg6dK4XP3FjND$t88vA623WNOtosCHQyV1.B7j7sm3R.W6dhOw1xRq3DNHowild41YcHcFIKeFRPARuKcH5PhgSoimBDuk2YzWr/

#开启防火墙,并打开ssh端口。关闭使用--disabled
firewall --service=ssh

#快速启动,不进行磁盘检测
fastboot --disabled

#用户认证和密码加密方式
authconfig --enableshadow --passalgo=sha512

#强制打开selinux。禁用使用--disabled
selinux --enforcing

#时区设置
timezone --utc Asia/Shanghai

#清空磁盘的mbr
zerombr yes

#引导程序相关参数
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"

#初始化磁盘,清楚磁盘所有数据
clearpart –-all –-initlabel

#磁盘分区,单位是MB --grow会将剩下的全部分配给指定的分区,size大小是M
part swap --fstype=swap ---size=2048
part /boot --fstype=ext3 --size=1048
part / --fstype=ext3 --grow --size=1

#repo位置
#repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100 

#安装完后自动reboot
reboot

#============================================================
#在安装过程中默认安装的软件包,安装软件时会自动分析依赖关系
#%packages
#@groupname:指定安装的包组
#package_name:指定安装的包
#-package_name:指定不安装的包

%packages
@base
@console-internet
@core                 #mini安装就只会安装核心软件包组core
@debugging
@directory-client
@hardware-monitoring
@java-platform
@large-systems
@network-file-system-client
@performance
@perl-runtime
@server-platform
@server-policy
pax
oddjob
sgpio
certmonger
pam_krb5
krb5-workstation
perl-DBD-SQLite
gcc
gcc-c++
make
cmake
#=======================================================================
#脚本段(可选):

#%pre:预安装脚本(由于只依赖于启动镜像,支持的命令很少)

#%post:后安装脚本(基本支持所有命令)
%post

cat >> /etc/yum.repos.d/base.repo <<eof  #配置yum源
[base]
name=baseserver
baseurl=http://10.0.0.1
gpgcheck=0
enable=1
eof

/etc/init.d/network restart
%end

1.5. 生成ISO镜像

[root@localhost wenyu_redhat6u2]# mkisofs -o redhat6u2-x86_64-wenyu20170314.iso -b isolinux/isolinux.bin  -c isolinux/boot.cat   -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -V -T ./

mkisofs 命令参数简介

  • -o 指定映像文件的名称。
  • -b 指定在制作可开机光盘时所需的开机映像文件。
  • -c 制作可开机光盘时,会将开机映像文件中的 no-eltorito-catalog 全部内容作成一个文件。
  • -no-emul-boot 非模拟模式启动。
  • -boot-load-size 4 设置载入部分的数量。
  • -boot-info-table 在启动的图像中现实信息。
  • -joliet-long 使用 joliet 格式的目录与文件名称,长文件名支持。
  • -R 或 -rock 使用 Rock RidgeExtensions 。
  • -J 或 -joliet 使用 Joliet 格式的目录与文件名称。
  • --verbose 执行时显示详细的信息。
  • 或 -translation-table 建立文件名的转换表,适用于不支持 Rock Ridge Extensions 的系统上。

1.5.1. 测试使用

可以刻录光盘或者作为虚拟机的镜像来安装操作系统。

Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2023-06-19 08:59:50

results matching ""

    No results matching ""