易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 3762|回复: 4
收起左侧

基于Centos7.6定制自己的系统镜像

[复制链接]
发表于 2021-3-13 22:53:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x

# I+ s! `* ]: f0 n5 z2 y, U$ ?) d) K  <environment>5 m- W3 U$ E  K
    <id>ceph</id>& q8 S! B3 _) Z) R
    <name>CEPH S3 SERVER</name>4 I: ]/ V, V* Z9 R3 n! S; ]
    <name xml:lang="zh_CN"> ceph</name>
3 J7 a7 r4 W# a    <description>CEPHServer</description>
: k) W& k# E- p+ F1 l    <description xml:lang="zh_CN"></description>2 s# ]3 i/ k2 |. T
    <display_order>9</display_order>
# I' H/ C+ \* l1 H: N    <grouplist>
0 s% t. _$ b7 E" h. h      <groupid>core</groupid>
. ]9 O) ]" P3 o8 E0 ?* c      <groupid>gbasic</groupid>
/ ^7 s, f3 O- P  B3 @+ W      <groupid>gceph</groupid>
0 {$ \$ L# p7 F5 j0 J. _7 A6 a
( P2 ]/ B1 Z5 L: q. `    </grouplist>
# L* N5 c: l2 v; {9 g
! L5 s2 R; q0 P8 t. { <optionlist># D6 ~. K* H4 j1 Y$ R$ d! a" S
2 }' u) \9 q* p* U& N) j8 E1 U
      <groupid>gim</groupid>
& q, Y  p1 z# ?3 z+ ^5 e9 r/ k
, `) k# G. M' f. `8 ~7 d" U4 Q  S      <groupid>giam</groupid>
6 l% X' N% I8 ?* P( \) C' v3 w: W' i+ P  </environment>
. k) g; ?) i4 P4 c+ X1 P0 _8 D/ }% z# ?8 Z6 N
...
0 d9 g. [6 X" f9 V' v6 d2 X# P8 B
) A5 s& M, {( }$ N$ s:wq!保存退出  ! ~' t) d$ o" g+ K5 N
  V9 d# ~/ P; q7 v! z$ [: y
以上修改会在安装系统可选软件中列出自己的软件。 optionlist项为可附加可选项。自定义的软件如init-ceph。可以放在根目录的任务文件夹下。我们统一放在 Extra/mirrors/sunrunpaas/
( A9 Z6 L8 |5 Y
& r/ \0 L: k) D: U2 }+ X0 G9 {  r如:
7 ~+ M7 }" k" c( k; }- ?; x  m5 k% C4 W1 c$ U2 a9 p/ H# h. V
ceph/          php5.6/        sunrundfs/     sunruniaas/    sunrunim/      sunrunvas/      ! P- q! @% Y$ S
mariadb/       sunrun-common/ sunrunhac/     sunruniam/     sunrunslb/     TRANS.TBL
! Q; M, G: P+ w) h& o0 j1 o; ^  h& W: o  i! h  O3 R8 |( X

8 I5 |  B# Y3 x$ h0 C- W8 s) C8 [* F& l7 B  H7 _, p" x

  q" ^, Z/ n5 q$ l% s& t9 b2.2 ,定制作自己的界面
$ Y0 K$ u; M% W: q% [) }, B' ]* Q+ ]6 N* A* U
   2.2.1定制作引导界面。
/ {; ]1 V0 v; b6 s. C. k: v" U( K8 m! N) t, Y3 ]# G1 d
修改 isolinux/isolinux.cfg8 F7 q5 V0 z7 K( o' x1 R! z
9 x( r: h( m7 o6 U5 a4 k( K
label linux
4 v4 C$ u, A3 |$ j  menu label ^Install SunrunOS 1
  ^, Y+ k/ S5 V. U/ e' I0 _  kernel vmlinuz
: H: g; E6 ?( e( y+ ~3 `' o& u
6 T" H, o  [5 n  y: r0 Y# C  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS7 inst.ks=cdrom:/ks.cfg  quiet' c7 X; ]! {' z! `" A; G
6 Y5 p) c% L; a" O2 F! d6 U! m
...$ w4 S6 p/ ^2 b9 Z
& \, e3 W& B& X& s
2.2.2 定制图标和文字。4 ?. \' I* M+ N+ C# `1 A

. A  q0 n2 I; z# g) }    系统安装界面里的图标与文件修改。对应的图片在LiveOS/squashfs.img中,需要解压,修改,再压缩回去。
2 d4 k% I- K  y! c: a
) `4 W: [1 X- O/ J0 K+ k    unsquashfs squashfs.img
, l" T" h: Z$ F+ q+ S% b0 t
& T; A' ]% N" O- L/ z; Y  产生squashfs-root 目录。
' l% D: X. B4 U0 u3 J) e6 g
2 e5 m6 K! W: Q& a" f8 f  squashfs-root/LiveOS/+ C( ?9 h7 r" y4 z' K

, F. d" Q- I, H% q  mkdir tmp- ^2 W6 M: A: ?
+ `/ q! I* r# ?5 n
  mount rootfs.img tmp/
2 g9 P% I; j, k8 W. Q6 ~0 \# y* f* r
! y% c& F+ {1 R, l( T  下载,修改,替换下图:7 N" L1 _, H/ w  n- m* B

" p) Q: I1 {! |9 }: x: q   usr/share/anaconda/pixmaps/sidebar-logo.png : U, ^1 O# N* z* @' {$ L: Y4 x
$ N  ^2 V  p- @# P. m
: n9 W/ ^2 D2 d0 C; a- p

& l) W6 M" J4 K: Z修改usr/lib64/python2.7/site-packages/pyanaconda/product.py
2 Y9 Q6 D) v6 X% h6 q. R* v# A: ]  u) M! q1 p( J& Y% m
def distributionText():9 r$ E* w. j7 F
    return _("%(productName)s %(productVersion)s INSTALLATION") % \
5 _/ Y. N! s- r2 C0 E             {"productName": "SUNRUNOS", "productVersion": "1"}
: a8 C  d; l. t
9 Q+ b+ p! j- d% Q+ z
/ K; R7 Y9 A( K& {& F& a, Q7 v' }
. g, Y* A  M: H* L6 x' K# T- x完成修改,生产新的squashfs.img& y! Y0 J$ `, z3 P7 ]/ W4 I! f

) ^, g$ ~' W4 @( }/ f) r+ T3 tumount tmp/
/ K9 {/ u9 o- N1 O# |' p1 ~' w7 i4 v4 j- I2 ~8 z" H: E0 S
cd ../../  q$ f. t% i  N  w
% \  k& r! ]1 d! n
rm squashfs.img) ]4 ~6 y4 M4 S4 j
/ t. o4 v' |' K# B
mksquashfs squashfs-root squashfs.img
( |8 \! H7 B/ g( y) G, R, C! |- S, l$ e' h8 C
3, 定制安装流程) M$ K- ^* w# \7 n/ y* Z! t

0 s: [) H2 g7 `  W   cp /root/anaconda-ks.cfg /cloud/iso/centos7.2/ks.cft9 r% j- w3 a& O7 f
# D0 s( `) J6 B/ \% P0 ]- O
如下:
$ P  z! Q" Y6 Q" [: G. f8 Q
4 e& D: l+ w- P0 r#version=Chen CentOS
; D7 g+ E: h, ^/ f
6 K6 k# w! ~9 C" d% I3 s( i#platform=x86, AMD64, or Intel EM64T " [: }6 o9 b8 q# y* s' O: \
# Install OS instead of upgrade
1 i; K( W' A0 {  i" h1 f/ K/ X$ J+ X#repo --name="sunrundvd"  --baseurl="file:///opt/sunrun-dvd/Extra/Packages/"
6 S1 c3 m: q* n  vinstall
( q$ c  W7 x$ E" S/ c& f3 B3 ]# Keyboard layouts
$ }% a7 {4 q( |9 fkeyboard --vckeymap=us --xlayouts='us'
7 O% i2 j, K8 U+ ]' o# Root password & }6 X4 Q6 `+ W: H7 l: F# o
rootpw --iscrypted $1$password$mV5CPMXkUkvImOukQuVs.. 9 p8 ~" Q6 M9 S2 c  ^
# System language ; \1 ?5 x9 }+ h
lang en_US.UTF-8
1 u8 U1 S% K' r# Firewall configuration
! Q7 p! m( b8 m5 e* ]5 r3 Wfirewall --disabled + {* P/ u0 s7 C- @8 Z# }3 L0 R
# System authorization information
" n) {# _( s* }' a1 Eauth  --useshadow  --passalgo=sha512
; H9 S- Z7 N8 e6 D  |+ w# Use CDROM installation media ; T9 z2 ?: B6 _2 [
cdrom / b: J) E4 I9 ], N  I
# Use text mode install
5 v: k1 K. n, J+ E4 I3 g9 @& Y3 `#text
; z! I7 F0 N7 y# Run the Setup Agent on first boot
- S7 n: z7 B+ M3 f0 E  M  c3 R3 Z9 a7 Bfirstboot --enable , Z) B6 a! O- F5 h6 H
ignoredisk --only-use=sda
9 x, q: n/ s$ j0 Y2 N' V2 A# SELinux configuration
+ F. X& [6 A5 ~0 ^5 q0 P8 dselinux --disabled 8 o+ a; D' A% f! E2 J
# Do not configure the X Window System
2 n# `* e( {1 j5 P#skipx
% h4 k6 }. ?, }% Y7 x: s: f
3 g+ \9 I  q/ R- |1 f: h& I) F, `1 n/ F- z  j: s" Y+ W9 \+ F
# Network information ( E* u, g5 [/ s9 n6 B/ S$ \8 ]  C
network  --bootproto=dhcp --device=ens160 --onboot=yes --ipv6=auto --activate
* _7 J. f- {1 M1 o3 @. o#network  --device=ens160 --hostname=localhost.localdomain
7 B! i- ?  w9 y/ H  [  @- j& Q6 [' p/ z; _. \. W8 ~

3 g) @) ]8 f, W0 A9 I2 V%post --nochroot
$ }1 f# f$ [( k+ _# 写到rootfs里去 1 S/ Q( k3 n9 i( X+ G' L( w
rm -rf /mnt/sysimage/etc/yum.repos.d/* 8 \# I' j" P/ D
#mkdir -p /mnt/sysimage/mnt/iso 6 S) L  u% n' Y  ~6 N9 f+ ?- [. f) O
#\cp -rf /run/install/repo/Extra/repos/* /mnt/sysimage/etc/yum.repos.d/ 4 J. Z. q1 a9 k( c, z1 g! R3 _) G

5 L4 M, g7 z  G; o% D) }%end
: p+ w/ u* F2 P9 n, p" G$ |$ n( l# m4 t# C5 U& q' ]8 `) Q% ^2 `
# Reboot after installation
7 k" y' {0 n5 U5 freboot
" |3 Q  P4 u6 d5 u# System timezone
1 x2 e- C* B, e' U, z( ctimezone Asia/Shanghai --isUtc
' g! \5 `3 z! j* [8 F5 g# System bootloader configuration
3 E: R3 ]  t8 Q; J7 l& x- M* cbootloader --location=mbr --driveorder=sda --append="" 4 o0 p1 S  A1 q- ^7 F
# Clear the Master Boot Record $ o* W) O; }0 s, F
zerombr
" i7 K3 W( `2 X4 H) |6 H# Partition clearing information 8 F! y) J: T/ V& P$ D; Q4 B2 ~8 I, d
clearpart --all --initlabel : @8 K9 L( K3 L. ?+ v0 J( [* B, @9 C
autopart --type=lvm $ J9 {- {2 T. y% X1 m' p4 [' ?( K! g
: p; d$ Q( h0 R# s( D

  H4 y/ n* ], ^% q) K#%packages & W4 u: V7 z5 l' p
#@^minimal
; b6 j3 ]( [# w* A+ S9 J; [0 E& ]#@core
5 W. b& l  A' u0 R5 }7 m' h  A- O( e& t% J, h
' q# b) h' w3 P
#%end
! R2 f$ P' w% Y1 Z1 h+ }% Z+ y
  T6 U+ T- a8 ]( k0 J
4,重新生成镜像:0 i- }8 m8 d& N% ]
; M9 }& B# ^8 M" J9 }
rm -rf repodata/*' y( s4 {6 x* |1 W
: x0 a* {* {0 R! x
0 n; ], d/ t& }+ H+ P- w
/ B. h6 v4 k# O
createrepo -g comps.xml ., X% j9 e9 o! a9 v. I

0 K6 D8 V4 O' k0 G0 [
: q# V' k0 R" _# K1 J  \1 }9 \& {! W/ t, Y
genisoimage -v -cache-inodes -joliet-long -R -J -T -V CentOS7 -o ../c76.iso -c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -b images/efiboot.img -no-emul-boot ./$ ]  ^; Q  G! w0 u$ g

6 [/ c% o; d; P* V5完成   ../c76.iso 即是我们的作品。
; K. K' D8 B+ x4 P+ r6 h/ `. |3 e' D, u

2 F) v' g3 [/ Z4 g  @& B& _% c6 x9 L- u2 g! m- ^0 B$ ]
" Z0 q6 Q* q; J! n. R: U" A- F+ W8 F
 楼主| 发表于 2021-3-13 22:53:46 | 显示全部楼层
mkisofs -o CentOS7.4-evglow.iso -input-charset utf-8 -b isolinux/isolinux.bin -c isolinux/boot.cat -
- i4 B+ l( Q6 a5 M$ h0 _no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T -joliet-long -V EVGLOW /root/iso/CentOS7.4-evglow/
4 B+ o% Y% R0 I! o9 P% ?: \- N+ p) Q0 I0 B
 楼主| 发表于 2021-3-13 22:54:52 | 显示全部楼层

Centos 7发布也有一段时间了,最近公司有需要在Centos7上测试的需求,于是就开始着手定制。大致和之前写的制作CentOS 6.5一键自安装ISO镜像光盘差不多。这边主要写下和6.5的差别

一、拷贝相关软件包

6.5版本用的是根据安装的install.log,用脚本去筛除不需要的包;但在Centos7的/root下面并没有install.log文件。于是我们可以通过下面脚本用rpm -qa的方式得到所需安装的软件包。

  • #!/bin/bash
  • rpm -qa  >package.txt
  • DVD='/mnt/cdrom/Packages'
  • NEW_DVD='/ISO/Packages'
  • while read LINE
  • do
  • cp ${DVD}/${LINE}*.rpm /${NEW_DVD} || echo "$LINE don't cp......."
  • done < package.txt
  • rm -f package.txt
    - a$ l' q- d& X  {* \/ p3 h

    3 [0 |) u2 O  w

- B! q6 ^- _: o4 t

* ^/ c1 }1 T4 e+ s

二、配置 EFI 引导方式

1、EFI简介

参考百度百科EFI

2、分区

为了同时兼容mbr和efi方式,需同时创建 /boot 和 /boot/efi 分区

3、配置 EFI 引导

进入光盘目录EFI/BOOT/ ,编辑 grub.cfg 文件,和mbr方式类似,指明 ks.cfg 文件位置和安装源位置

三、生成ISO文件

这边和在CENTOS6.5以下版本的区别是,制作镜像需要使用CENTOS7系统,因为两者系统的genisoimage命令的版本不一样, 6的系统制作出来的 iso不能在 efi 环境启动。

如果要在 efi 启动,需要添加如下参数

  • -eltorito-alt-boot -bimages/efiboot.img -no-emul-boot
    # g$ N# r' `/ s( C

6版本以下生成ISO命令:

  • # mkisofs -o CentOS-6.5_x86_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /ISO/
    8 L$ M' q. _* @+ s0 I+ D+ \9 t# h

    4 O3 S% K" F3 E( s

7版本生成ISO命令:

  • # genisoimage -o CentOS-7.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /CentOS/7
    7 }7 v( Q2 m/ t6 F, D2 U

两者的区别就是mkisofs和genisoimage,其实最早时候Linux 系统使用cdrtools工具来管理 iso 及光盘, mkisofs 是 cdrtools 里面的一个工具,后来 cdrtools 更好了了授权许可,从 GPL 修改为 CDDL 许可,开源社区又推出了一套基于 GPL 的工具,cdrkit,mkisofs 也被 genisoimage 去掉,现在系统中的 mkisofs 实际是 genisoimage的软连接

 楼主| 发表于 2021-3-15 20:59:12 | 显示全部楼层
CentOS7全自动安装光盘制作详解
1 复制光盘文件
1)挂载iso镜像
创建目录用于挂载光盘:
mkdir /root/centos7
挂载iso镜像
mount -o loop CentOS-7.0-1406-x86_64-DVD.iso/root/centos7
2)复制光盘文件到编辑目录进行编辑
因为挂载上iso镜像是只读的,如果要编辑,需要将文件复制出来,再编辑。
首先创建编辑目录:
mkdir /root/centos7_iso
复制光盘文件:
cp -rf /root/centos7/* /root/centos7_iso/
diskinfo文件需求单独拷贝下:
cp /root/centos7/.discinfo /root/iso
2 编辑ks.cfg文件
系统安装的时候,按照ks.cfg文件的内容进行安装,我们把ks.cfg文件放到isolinux目录下:
cd /root/centos7_iso/isolinuxvim ks.cfg
我的ks.cfg文件内容如下:
#version=RHEL/CentOS7 by xiaoli110install# Keyboard layoutskeyboard 'us'# Reboot after installationreboot# Run the Setup Agent on first bootfirstboot --enableignoredisk --only-use=sda# Keyboard layoutskeyboard --vckeymap=us --xlayouts='cn'# System languagelang zh_CN.UTF-8# Network information#network --bootproto=dhcp --device=enp2s0 --onboot=off --ipv6=auto#network --bootproto=dhcp --device=enp3s0 --onboot=off --ipv6=auto#network --hostname=localhost.localdomain# Root passwordrootpw --iscrypted 111111111111111111111111111# System timezonetimezone Asia/Shanghai# System languagelang zh_CN# Firewall configurationfirewall --enabled --ssh # System authorization informationauth --useshadow  --passalgo=sha512# Use CDROM installation mediacdrom# Use graphical installgraphical# SELinux configurationselinux --disabled# Do not configure the X Window Systemskipx# System bootloader configurationbootloader --location=mbr# Clear the Master Boot Recordzerombr# Partition clearing informationclearpart --all# Disk partitioning informationpart /boot --fstype="xfs"--size=500part /boot/efi --fstype="xfs"--size=500part swap --fstype="swap"--size=16000part / --fstype="xfs" --grow--size=1 %packages@base@core@development@hardware-monitoring@performance@remote-system-management%end
注意:
1)因为CentOS7系统网卡规则更复杂,为了ks.cfg更通用,最好ks.cfg不用制定网卡配置。
2)为了兼容mbr方式和EFI方式,同时创建了/boot和/boot/efi分区。
3配置mbr引导方式
编辑isoliuux目录下的isolinux.cfg文件,添加自己的内容,在isolinux.cfg文件中label linux下面添加自己的label:
label linux menu label ^Install CentOS 7 kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS7 quiet label custom menu label ^Custom CentOS 7 by xiaoli110 kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS7 inst.ks=cdrom:/isolinux/ks.cfg
注意点:
1)memu label 后面的内容是在光盘引导起来菜单的内容,^后面的字母是菜单的快捷键;
2)通过inst.ks关键字指明ks.cfg文件位置;
3)inst.stages2标识的是系统按照介质位置,这里使用hd:LABEL表明寻找的是label为CENTOS7的安装介质,使用LABEL关键字的好处是可以精确指定安装介质,为什么label是CENTOS7,是因为我在制作光盘镜像的时候指定的,方法在后面有介绍。
4 配置EFI引导方式
1)EFI简介
EFI可扩展固件接口(ExtensibleFirmware Interface 的缩写),是英特尔主导推出的一种替代BIOS的升级方案。最早由英特尔开发,于2005年将此规范格式交由UEFI论坛来推广与发展,后来并更改名称为Unified EFI(UEFI)。UEFI论坛于2007年1月7日释出并发放2.1版本的规格,其中增加与改进了加密编码(cryptography)、网络认证(network authentication)与用户接口架构(User Interface Architecture)。
EFI是用模块化,C语言风格的参数堆栈传递方式,动态链接的形式构建的系统,较BIOS而言更易于实现,容错和纠错特性更强,缩短了系统研发的时间。
EFI在概念上非常类似于一个低阶的操作系统,并且具有操控所有硬件资源的能力。
2)配置EFI引导
进入光盘目录EFI/BOOT/,编辑grub.cfg文件,添加自己的菜单:
menuentry 'Install CentOS 7' --class fedora--class gnu-linux --class gnu --class os {       linuxefi /p_w_picpaths/pxeboot/vmlinuz inst.stage2=hd:LABEL=CENTOS7 quiet       initrdefi /p_w_picpaths/pxeboot/initrd.img}menuentry 'Install CentOS 7 custom byxiaoli110' --class fedora --class gnu-linux --class gnu --class os {       linuxefi /p_w_picpaths/pxeboot/vmlinuz inst.ks=cdrom:/isolinux/ks.cfginst.stage2=hd:LABEL=CENTOS7 quiet       initrdefi /p_w_picpaths/pxeboot/initrd.img}
和mbr方式类似,指明ks.cfg文件位置和安装源位置。
5 生成iso镜像
经过我踩过多个坑,成功的生成镜像,并且能在EFI和mbr环境安装的镜像生成命令如下:
genisop_w_picpath -v -cache-inodes -joliet-long -R -J -T -V CENTOS7 -o /root/centos7.iso    \-c isolinux/boot.cat    -bisolinux/isolinux.bin      \-no-emul-boot -boot-load-size 4-boot-info-table    \-eltorito-alt-boot     -b p_w_picpaths/efiboot.img       -no-emul-boot .
(1)中间踩过的几个坑:
1)制作镜像要使用CentOS7的系统,不要使用CentOS6的系统,因为两者系统的genisop_w_picpath命令的版本不一样,6的系统制作出来的iso不能在efi环境启动;
2)如果要在efi启动,需要添加如下参数:
-eltorito-alt-boot     -bp_w_picpaths/efiboot.img       -no-emul-boot
3)通过-V参数指定光盘label
(2)genisop_w_picpath命令参数简介
-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 格式的目录与文件名称。
-v 或 -verbose    执行时显示详细的信息。
-T 或-translation-table    建立文件名的转换表,适用于不支持 Rock Ridge Extensions 的系统上。
(3)genisop_w_picpath、mkisofs、xorrios几个命令的区别
说起genisop_w_picpath和mkisofs,其实里面是有点故事的。
最早的时候,Linux系统使用cdrtools工具来管理iso及光盘,mkisofs是cdrtools里面的一个工具,后来cdrtools更好了了授权许可,从GPL修改为CDDL许可,开源社区又推出了一套基于GPL的工具,cdrkit,mkisofs也被genisop_w_picpath去掉,现在系统中的mkisofs实际是genisop_w_picpath的软连接:
ls -l /usr/bin/mkisofs/usr/bin/mkisofs ->/etc/alternatives/mkisofsls -l /etc/alternatives/mkisofs/etc/alternatives/mkisofs ->/usr/bin/genisop_w_picpath
xorrios是另外一个比较流行的制作iso镜像的工具,并且有一个参数-asmkisofs可以和mkiso命令兼容。
% d# [; i4 ~1 V$ j4 ]
 楼主| 发表于 2021-3-16 11:01:01 | 显示全部楼层
vi /root/ks.cfg
% p; W! A) {% E" l3 ]. ?. |7 r; [7 u8 E9 m" }5 X! S2 w2 X
install
0 {  P' s7 T' u. kcdrom6 e' a, m0 J/ p0 J  N! v
lang en_US.UTF-8
# |0 {! T5 `1 N  H3 X/ u9 r: l; G! jkeyboard us
# h7 v+ v2 R+ o6 M6 snetwork --onboot no --device eth0 --bootproto dhcp --noipv6
+ P, ^" g2 d3 d. w) W$ x, lrootpw  --iscrypted $6$ZI78JvmQ56MxYSe3$dn9UV./VvFieP25R94ciYo4wg7p17sM8gCt2WQa/hqMeHiynnBqL/abF14D0AOSXjnptoBHqLYGhzun6W7Qfr1
$ H3 V% `# D  Mfirewall --service=ssh
$ X3 U& v3 C+ s* d0 mauthconfig --enableshadow --passalgo=sha512+ Y/ B$ W) F- r, c7 g5 c
ignoredisk --only-use=sda
% B6 L& i$ m' O. Gselinux --disabled' l$ J" Q3 o) S1 z& P
timezone Asia/Shanghai6 Y! W! q2 [8 l4 N# o$ l
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"# j- }7 D( ]- C. P3 K
clearpart --all --initlabel  --drives=sda
. @& ]+ L7 P2 I: xpart /boot --fstype=ext4 --size=200
' b% R2 b/ j8 E" V1 q3 u$ hpart / --fstype=ext4 --size=20000
5 s& L, S: k6 G/ c" h; Upart swap --size=2048- J6 e6 `" x% I/ K
part /data --fstype=ext4 --grow --size=1; L" W  A& T; g0 U
reboot& I. i, Z& r% Q7 F4 H
%packages
8 w' A* w- t0 A4 }4 V9 Y: {1 Q@core; [& Z) }+ J7 r0 n
@server-policy
! x( m8 `7 V/ s. @% E2 Z@workstation-policy
* `( Z: [& L# y4 x# h1 V
' A( Y9 Q% @7 C9 ?%post
2 f/ k6 C, I0 B: F#add user: T$ i# w: e. W
useradd pos; j: w$ t6 S/ Y$ _+ z
echo "12341234" | passwd pos --stdin* j% \& d1 o6 o' Z* G" @
#service
1 |1 `: Q, B$ E; K& ]; m2 K! Wfor i in `chkconfig --list | grep 3:on | awk '{print $1}'`; do echo $i; chkconfig $i off; done3 d6 I/ P7 k! s
for i in auditd crond network  rdma  rsyslog sshd udev-post; do echo $i ; chkconfig $i on; done
" t9 e* w( G7 J; p$ f2 ~
" W5 H( F! c3 z) V1 H8 ?#profile
0 }8 u# m. D. x" a3 Yecho "ulimit -SHn 51200">>/etc/profile
, Y2 }& _5 d! p( P. _# q. mecho "TMOUT=6000" >>/etc/profile5 K; `# E# F1 C7 ]7 c* ~
9 a+ I8 Q- J1 H3 A
#passwd
2 x$ k( t% v* k2 e9 ], Yecho "admin"  | passwd root --stdin
% [3 B* x5 x7 a8 j* |! D( A4 d, ?. X" j1 {
#ssh login slowly, @) M8 d/ B1 u  e* D8 o/ c6 P
sed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config; x. V  x$ y- z+ G& \( ?
sed -i "s/GSSAPICleanupCredentials yes/GSSAPICleanupCredentials no/" /etc/ssh/sshd_config! g$ R$ ?+ b" C) X' M, _. [
/etc/init.d/sshd restart
6 D  o) H  _! F& j2 D% o3 Z
3 [& X+ y: L. [- O& ^" W1 f* d$ B6 _. vrm -fr /tmp/*
* T  l9 i. _- g%end; f: _6 A+ i4 \& k* d9 g- d: V

- V" f; h5 |0 V% E' }& s2.  yum install createrepo mkisofs isomd5sum squashfs-tools -y
8 f8 M/ k* Z- [/ z
  \" T+ u* l1 |9 ]' a    mkdir /root/os
( \+ u2 N6 Z! Z) y
' P. `9 p1 c! R2 t1 @9 _   将以os为iso制作目录.
2 u& Q% p9 W; P, H, n# r% `$ m: [
: m. e/ o2 J& M  E9 A: e7 k3 Fmount /etc/cdrom/   /media
4 {& o+ P, C. \/ q8 A2 @+ V2 V: f$ X- F4 r4 |/ h8 @* k
rsync -a --exclude=Packages/ --exclude=repodata/ /media/   /root/os/
# u* u- d+ b( U2 O% `" c! E, i0 o+ g8 V, a( ]
mkdir -p /root/os/{Packages,repodata}5 c$ e' W5 L& e4 a' f5 n4 X; L
6 `3 U5 C- V" d  S* _
3.拷贝mimi 包
/ J. W9 f9 R5 i+ W4 |% ]' k4 L5 r0 u# ?
cd /root5 ]2 ?+ l+ f/ N, ?- R
, e2 _: E% T! X& U+ R
cat install.log | grep -v "^*" |  awk '{print $2}' >package.txt5 u5 y' u$ L8 Y, s1 @! }
  t( W  z+ K+ g( f" _! ~
for i in $(cat package.txt); do cp /media/Packages/${i}* /root/os/ ; done: A3 M4 I! g& v" q  }2 b) \5 Z
' [- C1 u2 m% l; x2 z0 i
4.创建光驱yum仓库.- ?" {; _- ~3 Q' d$ ]& `! E
' V( e! K1 v4 @/ L* ^
cp /media/repodata/*c6-x86_64-comps.xml  /root/minimal-x86_64.xml3 ?2 z5 p* i0 |+ o" k

" \' _$ z$ r- {- {1 M0 f, ]) {5.重新生成repo7 Z( D" g* |+ l6 M$ f1 e4 z$ P' u
5 `) ]5 ^  S: t& H7 R$ j8 O
  declare -x discinfo=$(head -1 /root/os/.discinfo' _0 o! X6 B8 j5 Q4 r

! E% w8 B( y/ J" U  createrepo -u "media://$discinfo" -g /root/minimal-x86_64.xml /root/os/
; w( E7 h( h1 @: J/ n  D. s2 t
. i6 U! j" z4 S6.cp ks.cfg  /root/os/isolinux/    - W& {* \* i& v: f/ ?
( h* e9 h- r& z/ R3 E
   cat  /root/os/isolinux/isolinux.cfg # o  w0 g, O. _% y3 Y* [/ _# `7 `7 T

4 ]  Z+ w( o) Q7 t4 L9 V8 q  g* G' }3 {& s2 J: ~/ o5 U7 ~& o

, n9 s4 q( e0 o5 O4 Ndefault vesamenu.c32
2 e1 \  x" v5 o8 G5 c#prompt 13 x0 d  i: ]! d
timeout 100
: e$ V0 ], P  v0 e' L) B6 c
, V4 k2 }  B& o; L- i, Jdisplay boot.msg
: e; T; Y$ ^: y( S9 ?) B
6 t0 V% D$ ~  U- s% Ymenu background splash.jpg
& w+ l" w+ _' G; }4 e2 i5 h* Bmenu title Welcome to CentOS 6.9!/ E7 h; b6 Y, \8 o( ~
menu color border 0 #ffffffff #00000000
( d  ~4 W6 ?. l% \! z4 X# W& E" Lmenu color sel 7 #ffffffff #ff000000
1 y* e; k! [" a/ V' [: |menu color title 0 #ffffffff #00000000
6 Z) T, \6 I; u/ Gmenu color tabmsg 0 #ffffffff #000000006 E# d$ p$ \, q3 k
menu color unsel 0 #ffffffff #00000000  a$ }. Q7 ^2 C6 P
menu color hotsel 0 #ff000000 #ffffffff" j9 X+ w3 u! H1 A0 \3 `3 Y
menu color hotkey 7 #ffffffff #ff000000
- r: d+ M1 z# @) U  @menu color scrollbar 0 #ffffffff #00000000
+ `8 N0 I. Y1 [/ B$ q" X  I. e. T# Q) Y* }0 i
. I( ~! P( e5 W  u% t3 Z! i( b
label linux
) \4 x( F! ~( U6 x* f  menu label ^Install system  ! O5 S/ u' Q: P% q+ T& I
  menu default2 x/ s0 [$ f! I7 p! Y0 t
  kernel vmlinuz
8 {2 j  a2 w" z1 H  j7 b' z/ {. F  append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg
0 G% Y6 g/ S% s  U% j8 d8 \' X& a7 {& @9 ^- [3 q4 p

8 s% _4 h8 q" Q9 I1 f# S2 C
6 I$ ^9 z6 r5 N3 g2 L, h7 f( a7.制作iso
3 j8 U8 d2 Z) ?4 u; Z4 d, _3 R/ F; H3 t. b; M
cd /root1 N" f& o* b9 p! _8 G

3 r) f2 l. L! |; }0 |- Z' ^mkisofs -o OS-6.9_64.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  /root/os/9 I# y3 k3 x; K3 \2 B1 k
- P$ d4 j: L% Q( _! H
+ ]- I' R, t" z

9 k1 k" N5 r  O( r, ~/ ~8.生成iso文件md5值
5 z$ Z  E2 A) d, H: N8 \  u+ O7 W' F9 p
implantisomd5    OS-6.9_64.iso
4 x# x8 L( Q/ H! O
4 x6 u: X2 |* |" F) p, R
5 P# s$ W3 D6 t% T- b. \' t1 s9 l3 H* j; F0 [! t5 N; b
  ~% f' E& d8 |* q; ]) z% c

9 q8 @$ \9 t# g- J# ^装系统测试^_^0 W3 ^- \0 D, ?  ^% n' }2 I( n
! q4 ?- @0 j) `$ ^
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 点击这里给我发消息

GMT+8, 2026-4-18 21:59 , Processed in 0.052317 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

快速回复 返回顶部 返回列表