找回密码
 注册
查看: 3750|回复: 4

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2021-3-13 22:53:35 | 显示全部楼层 |阅读模式

" i- f' p5 x: X' O$ H* }  <environment>, }8 _( b1 i! ~2 K" ~2 C
    <id>ceph</id>7 {  g. J7 l! @# r9 O
    <name>CEPH S3 SERVER</name>
+ B+ K$ i6 S# b    <name xml:lang="zh_CN"> ceph</name>
9 D1 V- O: w) H    <description>CEPHServer</description>
% y, \5 x! g8 Q* f& A    <description xml:lang="zh_CN"></description>- S' Y3 h: o2 B" K! ~" ~
    <display_order>9</display_order>4 w9 D7 j# `/ ^8 X, i
    <grouplist>8 G3 I( r2 Y  r* w) C
      <groupid>core</groupid>
4 F9 ^* D4 H  U4 u# L      <groupid>gbasic</groupid>
# E5 d" c% G* `* g2 c      <groupid>gceph</groupid>
1 G$ ~/ {- j7 b/ |+ \+ j* |% g" J8 s2 u! a3 }
    </grouplist>
; i  a% H( f5 \, g' n: f% e4 t/ N  p0 D) `4 {
<optionlist>
% R$ T9 O# E8 P/ V$ \6 Z6 B' K- s  X; M7 F; B' _$ b$ N
      <groupid>gim</groupid>% g/ Z+ A  k! f' d2 b2 y+ c
6 w0 p/ `6 f: M4 P+ ]
      <groupid>giam</groupid>" u  X) W: r4 ~
  </environment>; p) u9 l. t3 H: \
0 u& m/ y- w1 {  O
...( c! U# `7 J  ]
/ i) e8 P$ z2 C
:wq!保存退出  
/ n4 F6 s. L6 B% ~+ t3 s/ ^' x7 D
以上修改会在安装系统可选软件中列出自己的软件。 optionlist项为可附加可选项。自定义的软件如init-ceph。可以放在根目录的任务文件夹下。我们统一放在 Extra/mirrors/sunrunpaas// A1 @3 d0 G# L5 ~. X& K& c
% c) i5 ?0 ]: |' `# t
如:
, T8 z* T4 I% {7 d3 N9 L" H1 F. m; X9 @1 ~2 L$ K8 w
ceph/          php5.6/        sunrundfs/     sunruniaas/    sunrunim/      sunrunvas/      6 j# s: x! U, r: L+ Q
mariadb/       sunrun-common/ sunrunhac/     sunruniam/     sunrunslb/     TRANS.TBL
) N; {3 q4 y7 u* b, n; S5 e8 S0 Q4 x7 }, k- s; M# v% K
9 g! f' z1 e! H% s0 q  X  t

# t! ~  F3 j* d8 s( G7 n6 _% x$ k, d) r5 s# U! y9 f
2.2 ,定制作自己的界面
# L6 a: k: k) l* {' q" K" X6 Q
. e5 r) o  l* b& O  m   2.2.1定制作引导界面。, n8 ~  j* a3 b+ _, T
1 N- N/ l( s. Q0 v9 s! Z- D
修改 isolinux/isolinux.cfg
' L' t9 T1 @( B, v" E) H$ o+ d9 b5 [( U  l2 Q: G6 \
label linux
3 O  O5 t& h9 e9 T" W  menu label ^Install SunrunOS 15 p$ J2 D9 B. _0 t
  kernel vmlinuz
. u, q2 V, |; G% x" a; n
; {' c. C- J( s3 a  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS7 inst.ks=cdrom:/ks.cfg  quiet
+ k: z+ z5 p1 s% r/ u" J& a) S- C) X- j- ^2 b/ @
...
' u( j* O/ m' i" g$ _
9 i$ N2 X* j3 | 2.2.2 定制图标和文字。
% {. S, T) b' O/ r
- ]& H+ n6 s  s# e& y9 n    系统安装界面里的图标与文件修改。对应的图片在LiveOS/squashfs.img中,需要解压,修改,再压缩回去。
- g; ?5 k$ N4 P" F# U8 r7 t3 `" _+ c9 K
    unsquashfs squashfs.img+ D, V9 A  y7 D3 R3 i/ {" ?0 F

* n8 G, B  Y. K# s  产生squashfs-root 目录。! K4 s9 [8 B" N6 ?% ~

* p+ D) b* ?3 H- l/ K, S' ~  squashfs-root/LiveOS/
3 U. l; A* C! s6 t1 G$ L, Q9 j) V, O* ?5 w1 C$ |7 d0 y# [2 P2 E4 b: x
  mkdir tmp! i  R, [: {0 T+ h  w' B
6 y+ K0 @- |6 Z- |  m7 T
  mount rootfs.img tmp/
3 A) y3 T/ q: M1 ^4 @# ?( I
4 g, U3 a4 o% ~1 @& |! I& E$ {. b/ R  下载,修改,替换下图:$ b  n" C6 m9 `9 o1 J/ N
+ _" `6 h% U" d7 v( |
   usr/share/anaconda/pixmaps/sidebar-logo.png - a' K& K/ g- W' Q; K- f3 @$ U1 b

; q5 g  M4 @% S8 ]; a( \6 e- _5 f0 V1 [/ \: s2 _- H  C

9 o$ c: |+ L8 a  B/ o$ m修改usr/lib64/python2.7/site-packages/pyanaconda/product.py
: q. I1 [% V/ B0 s( z1 H! o* J( r2 C, U* T" w
def distributionText():
2 a  b. D4 y& x( D+ X    return _("%(productName)s %(productVersion)s INSTALLATION") % \
1 P9 R" P8 W/ x+ v2 X3 N  h" |             {"productName": "SUNRUNOS", "productVersion": "1"}8 u$ X( c! M2 j0 U
) _# M, E+ H) A" t$ e, |8 P, c

2 l( }$ H; H! k; u  U$ @, s  D$ d) J: m: \
完成修改,生产新的squashfs.img+ {+ C0 R# J! x2 [
+ j9 b! G/ t8 D) N6 |
umount tmp/! R4 O: j7 y" c" r# q5 b( O9 X( c6 n
2 e( r- |9 d* _2 S2 F. e
cd ../../
& C1 j0 |7 Q' o  m4 i: v' `% W  X5 M) G: {) T! A
rm squashfs.img( ^8 D  H8 ~8 b8 D! d. M6 g  L! }
$ S2 \& {5 `$ N% I) j9 ]& q* u* x
mksquashfs squashfs-root squashfs.img2 p# t! i9 V$ d
* N4 v; h% S; ~" i: s
3, 定制安装流程& I% a# Q/ X3 H% ]
& q) L2 M" b% m  B
   cp /root/anaconda-ks.cfg /cloud/iso/centos7.2/ks.cft
! s( F  |6 ~2 a8 o: T% b
! C% w  F4 u) a& \, Q& u如下:
& ?1 E0 `; s% S3 d6 b! s
7 h2 f1 q* S" ^7 J1 G! G#version=Chen CentOS% k) H4 G$ y' d- V

( K2 R2 Y, y; x9 Q( N4 x1 s#platform=x86, AMD64, or Intel EM64T # J# _! q2 H5 ^; {
# Install OS instead of upgrade + J1 l$ x. J% o2 p8 J& z, T) ]
#repo --name="sunrundvd"  --baseurl="file:///opt/sunrun-dvd/Extra/Packages/"
# Q) O/ ]8 ]) K- U! ?/ Uinstall , }+ M9 ?! o7 P9 C
# Keyboard layouts 4 c" `2 J( A% W; h2 V+ i" G$ q
keyboard --vckeymap=us --xlayouts='us'
& }9 Q: r( S( S3 D# Root password 0 [- k* {1 a8 s" Y3 X! Q& }3 u* P
rootpw --iscrypted $1$password$mV5CPMXkUkvImOukQuVs.. 6 Z4 h  T2 V+ K. ]' L
# System language
/ I, r$ l/ K$ ]6 ^2 q6 I' klang en_US.UTF-8 ' _" h( m) A! o7 V
# Firewall configuration
/ L2 w+ D0 \: G# Y% ?firewall --disabled - A' M+ }) ]! f* S% M; b
# System authorization information
' V7 K: F) B0 L- ~auth  --useshadow  --passalgo=sha512 + Q9 q) h+ v* S
# Use CDROM installation media
5 [( N9 c- D6 X0 c, A1 Ucdrom
4 q6 h0 Z3 Q& ~5 n1 z1 n# Use text mode install / f1 M& V5 ?  T' L8 e
#text ( k7 g2 \5 k  m* Q# g( r1 u- @8 l
# Run the Setup Agent on first boot & c! ~9 }2 E" g8 K( T9 ~5 X* Z
firstboot --enable % C  s) P, M: F6 t
ignoredisk --only-use=sda " p" o! g9 l5 y1 N- n3 u
# SELinux configuration
. S+ M. k  G; o8 g  u$ w. ^selinux --disabled
9 `3 q" W3 c- {8 B8 v! h# Do not configure the X Window System
! z( v1 A" v8 c% s4 z#skipx ( H- m% Y4 ^6 v: p2 k  W, B
& R6 \# }+ C) k' q* x: j; |
; r" _: ]. Z2 o7 J- b% i
# Network information 6 q8 C! |( `3 z+ w6 v- O1 I6 N
network  --bootproto=dhcp --device=ens160 --onboot=yes --ipv6=auto --activate ; r, T$ k# N  M8 s2 \
#network  --device=ens160 --hostname=localhost.localdomain ; b% a: k. d, T, V  u8 t* c( N
! A% Q/ H" Z/ K- n

. T2 z7 a1 `8 Y4 ~) ~& S1 @6 \2 ~%post --nochroot & r1 [: y& @5 p0 ~- H2 x
# 写到rootfs里去 1 c0 I# K" K9 Q8 L$ s
rm -rf /mnt/sysimage/etc/yum.repos.d/*
$ Y% x& R3 V; l4 W6 }#mkdir -p /mnt/sysimage/mnt/iso
, u; B9 F/ G& P: I#\cp -rf /run/install/repo/Extra/repos/* /mnt/sysimage/etc/yum.repos.d/
) n: ~8 g' k% Y" x9 t0 e# x
2 c3 r0 O! L" F( x2 A, o%end " j5 R. ?4 i9 S
- B4 o" H' G- S$ o7 v9 `
# Reboot after installation
. j& O+ T. C5 q9 y! D9 [/ jreboot $ e' i5 A0 m; C$ O% P
# System timezone 1 l- P) M& c! K5 O# {" G3 {' _
timezone Asia/Shanghai --isUtc ! S' }) Q+ v, W! |+ @8 [, }' i8 |
# System bootloader configuration ; A; b4 ]$ A8 i* y" Z
bootloader --location=mbr --driveorder=sda --append=""
: ~# q' N% _( \' l# Clear the Master Boot Record
! H0 R% e$ \. Kzerombr ' h# N! B' S7 H% k, n- H4 \9 P
# Partition clearing information
$ V( k5 N3 \( E7 m9 m7 B) ~1 Yclearpart --all --initlabel
9 c1 p: Z* q5 X5 [0 M* P# _$ Mautopart --type=lvm
) d, Z  s, n3 V: W# ]
( c) j& m3 x8 N
: ]2 z1 b7 C8 E, S#%packages
& x5 j7 {& b  [- C( @9 |) t% a" d#@^minimal 2 Z8 i! C, q( j! f8 ]
#@core
. a  w: M  O( F% M
- l; t) ]2 d, C4 M: @; G8 T0 h
" r3 d( q7 |4 u" Q4 g1 b; Q#%end4 p1 |7 b( f0 H; f3 s
. W# I) _: M) v! W: ?

3 H. E& A' m% n4,重新生成镜像:
, a7 G- o/ G% R' b" y1 ~
( x' R7 F% C% L- q9 X' erm -rf repodata/*, h4 i' @  H2 x! W! o

7 ]( K/ K5 M/ A7 j( K1 F
3 A: h2 Z& T  a* l6 l) N$ g& d( V% N  \  x
createrepo -g comps.xml .5 B, Z0 l5 h4 ?9 x) L
. W6 G2 S9 S  A9 d
/ o, S! g' X$ ^
* z% n; I5 h2 R. M
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 ./  D& C4 B. i, H! g. H* y
* X6 q9 ^, }6 q0 }" M" p
5完成   ../c76.iso 即是我们的作品。, D6 [) Z* P' v, }

# m% C" F) q3 @7 P' B  H7 J5 R
* w' d& Y) X1 y% k- o2 f% t( G& o- U
- k% l$ D% C: c  R$ ], a

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-3-13 22:53:46 | 显示全部楼层
mkisofs -o CentOS7.4-evglow.iso -input-charset utf-8 -b isolinux/isolinux.bin -c isolinux/boot.cat -  d% d& R( `/ X5 g& t1 B4 Z1 H
no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T -joliet-long -V EVGLOW /root/iso/CentOS7.4-evglow/
% G6 Y* B! d. `% H9 Q) r* f8 t5 ^% H
* z0 R; m/ r) L+ d. |

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 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+ P! |4 `, k* ~% }3 t' i9 |% b

    6 t- \3 m; W& q( N8 g. z$ c
0 N/ G! Q  b- e
5 s. g' J+ V1 n

二、配置 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-boot0 q7 R+ i; }) ?7 b

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/
    9 n5 [2 F4 i  A  ?0 g' K* S8 y) @$ ?
    8 k' `. i2 a# ]  Q- |7 m/ x

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# W& @' U9 d% P: }( l

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

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 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命令兼容。
$ Z; h$ K) _1 c% X" [5 d

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-3-16 11:01:01 | 显示全部楼层
vi /root/ks.cfg+ v; P, [7 A. ]4 }
7 R! N. O$ {, F! Q
install
# `+ K% }+ J. O% E1 dcdrom. a, V- }% Y. H  \
lang en_US.UTF-8
9 P" O7 w* v; d# o, C+ gkeyboard us
* o$ G* H2 d6 u" m# V+ Vnetwork --onboot no --device eth0 --bootproto dhcp --noipv69 F3 m) X5 y+ F' q8 n* o
rootpw  --iscrypted $6$ZI78JvmQ56MxYSe3$dn9UV./VvFieP25R94ciYo4wg7p17sM8gCt2WQa/hqMeHiynnBqL/abF14D0AOSXjnptoBHqLYGhzun6W7Qfr1
2 e" O; t0 O4 S7 F6 Ifirewall --service=ssh
, ?! I2 x2 @# X( F0 G0 Xauthconfig --enableshadow --passalgo=sha5124 N! V# |( R4 \1 i7 @
ignoredisk --only-use=sda
* X! v) ^8 e: P$ G  R0 pselinux --disabled: w# \, [7 q& k6 G/ R
timezone Asia/Shanghai  r, H; o7 U1 [' P+ U5 Q- V
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"" p# j/ v$ Z. `) v6 b/ _
clearpart --all --initlabel  --drives=sda
  J  q7 J! Y8 B, }2 o; D0 cpart /boot --fstype=ext4 --size=200
* V- m/ S9 p* B; Epart / --fstype=ext4 --size=200009 A/ }  v' p% b- y) |
part swap --size=2048
( O+ `# z  w+ R, O, M/ ppart /data --fstype=ext4 --grow --size=1
1 m; ?  u! z0 Hreboot5 C# k$ p" g$ m
%packages7 L; O0 x4 G# ?# d( m
@core
& P9 z( z4 R; v@server-policy
1 P* Q4 a1 h2 a6 x( p2 |& a& g0 y@workstation-policy
# [. y$ e/ w# ?1 ]' d* q" l, _. N0 _$ D/ _% O5 L: J8 j' u
%post
9 g; @; m! u' {( }' @#add user2 s7 w- C) n! M% j2 s+ u
useradd pos
7 h& b, _* d4 A7 a+ }5 Iecho "12341234" | passwd pos --stdin! G8 a) K8 n1 z- H& M& c
#service4 P4 a7 f- |6 d
for i in `chkconfig --list | grep 3:on | awk '{print $1}'`; do echo $i; chkconfig $i off; done/ W2 Z+ `. m  g% h* z) O
for i in auditd crond network  rdma  rsyslog sshd udev-post; do echo $i ; chkconfig $i on; done, g9 e) ?8 N' |1 t  j6 S3 U
/ R# o% J4 w1 t
#profile
$ A/ g" k/ d0 o  d1 E2 C- w+ cecho "ulimit -SHn 51200">>/etc/profile
/ G& `+ `* F3 |6 g0 E. eecho "TMOUT=6000" >>/etc/profile
% x. p' |7 m; F4 L; C" s) k1 g2 Q1 o6 U$ V6 z7 D7 I: Z. l
#passwd" H2 n# U4 D. R3 u+ l
echo "admin"  | passwd root --stdin4 Y5 h# n1 [/ Q0 d+ p8 N4 S
4 i; w  b  |, z' l) y4 P; L5 }# }
#ssh login slowly
) u$ j6 J; k* J3 w7 a: tsed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config
" f, f" n% d9 Gsed -i "s/GSSAPICleanupCredentials yes/GSSAPICleanupCredentials no/" /etc/ssh/sshd_config3 p- c. H+ N. m! J' D
/etc/init.d/sshd restart+ T, ]) @. p2 n4 n! [1 V, R

3 E* I4 o/ U" Brm -fr /tmp/*
5 l* r1 w: x; Z7 W%end
- `# N* |9 J3 m( [) K4 b2 ]3 M+ Y8 b4 i* Y1 z% ^# F
2.  yum install createrepo mkisofs isomd5sum squashfs-tools -y
5 x  X7 H. I9 v5 [7 Q2 w1 b3 X  Z( t
    mkdir /root/os( E0 l' G+ m5 y5 J0 o% V5 V5 w

  X9 y) a+ s. o$ |   将以os为iso制作目录.
5 v, m3 E2 F6 |5 ^* m4 ?; p3 X
; h5 ~; a0 A# F( i  Z- h% qmount /etc/cdrom/   /media, o2 L" v& N  ]  y6 L
2 I" i; n5 R1 W# N; U1 q+ H$ j2 b
rsync -a --exclude=Packages/ --exclude=repodata/ /media/   /root/os/3 i; V) D) v" a
; y; h1 o9 ?& C7 H) {2 A4 w, X
mkdir -p /root/os/{Packages,repodata}. h) O! b% z! T# R: N& l
& v( d# z/ e. j: L9 L% h$ q
3.拷贝mimi 包0 n# b; ?7 `0 l: j9 @/ d! G
6 [: Z" U1 W& m; Z) \! A. _  I
cd /root
8 ?6 `% w' M; k8 a1 T! v' \) A8 c7 Z% L9 d
cat install.log | grep -v "^*" |  awk '{print $2}' >package.txt# \5 A  K, s" s& x$ P8 F9 p
/ d. R/ |' ^' q1 w9 j" B; S
for i in $(cat package.txt); do cp /media/Packages/${i}* /root/os/ ; done( f/ R& F8 c' B4 S4 `* M( a
+ _$ ^# m/ V( o
4.创建光驱yum仓库." e; ^, S% G8 s

( L! G( F7 T" _cp /media/repodata/*c6-x86_64-comps.xml  /root/minimal-x86_64.xml
% N: U; n" _1 M6 j/ C. F
) y3 l: {6 j+ X5.重新生成repo
0 V' L$ U3 x1 E4 A9 r  }) e# A& n% E+ W' G& R% B
  declare -x discinfo=$(head -1 /root/os/.discinfo* y5 [' |$ n- N% N9 t
# a. F$ U+ B1 U
  createrepo -u "media://$discinfo" -g /root/minimal-x86_64.xml /root/os/& M- _) {1 R2 \4 X# g
- V7 k; ^. k8 F/ X* }* Z% A
6.cp ks.cfg  /root/os/isolinux/    
  z0 w/ A& m% ^  J0 G) Y4 A% S, Q# Z9 D7 d
   cat  /root/os/isolinux/isolinux.cfg # u0 ~  Y! M4 o, b( G  {( Y
1 O  a$ N" y+ W

" v. R7 b0 B9 q: I; k2 ^+ g
% A4 i) h! W/ fdefault vesamenu.c329 `& K4 D5 t. Z$ W/ x& p! {
#prompt 1
8 p" i5 J+ W. _9 K0 T& H0 jtimeout 1007 }0 N2 _* ]' v2 B5 T! ?
( X8 _9 N# `$ b' m% v
display boot.msg6 a7 v" n( V# w

- O% s/ B; ]+ ^6 `2 ~! U$ Amenu background splash.jpg, l9 @; y  C# g1 D  A# `
menu title Welcome to CentOS 6.9!* L/ ]$ ~; A; e$ W3 ^+ t* N
menu color border 0 #ffffffff #00000000
% g$ k3 M) o' X' a- o7 mmenu color sel 7 #ffffffff #ff000000( o, U  }% B: i( T3 x8 V) r( u3 \5 F
menu color title 0 #ffffffff #00000000% b1 X$ p/ F$ G6 t
menu color tabmsg 0 #ffffffff #00000000
; ~9 V  ~+ b+ ?9 q) Hmenu color unsel 0 #ffffffff #00000000: ?. l, ?5 y6 V! r5 W* X
menu color hotsel 0 #ff000000 #ffffffff
6 z3 @6 d1 ]  h6 {* e7 bmenu color hotkey 7 #ffffffff #ff000000
2 N+ x7 z* h3 ~& _. M9 _$ t" Ymenu color scrollbar 0 #ffffffff #00000000# r4 _$ U" I/ f3 H' n1 O

$ r! w  v' U& Y' q6 R) a! t" R+ b5 p0 l
label linux$ X. `: `8 y( L
  menu label ^Install system  
0 `8 L+ a5 }- h% N: V" s- ~6 t. u  menu default! ?( M4 O0 ]. A* ]1 `; _3 q
  kernel vmlinuz
: w9 f* Z% ]6 n% t, S% T" k  append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg
3 {0 O3 ]3 G% Q5 w8 r/ }! R3 f/ Z" `6 O

; m9 u9 P2 D) O* P8 D2 F7 M8 c. }! k6 W0 j3 z
7.制作iso9 O4 j; n: Z# y- h; b2 z

% X4 u) O2 C* acd /root
1 h5 L' d9 H7 L5 {& s' T, W& Y# A* a: Z# t5 b
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/, k# U7 y6 Q" n  `" _$ w( {

: D& B, [* d8 F; u/ b% a5 S# |- D

) b. M% N. e) A  b) d: I8.生成iso文件md5值
; A6 Z; R! Z& n! Z8 S9 Y9 z3 G: n: P) z2 Y# \8 Z3 V( N
implantisomd5    OS-6.9_64.iso+ K" h5 c) K: X& f0 q, f

# Y% e* A, h! [& H* X- D2 ^3 Q) Q8 I2 @

# Z( D# t3 J2 p: E6 D6 ~1 h
5 _% |  V$ \7 G7 q, ^5 t: A3 L8 J  W) M6 Z
装系统测试^_^
7 X2 Z$ h$ d6 S
6 {6 G  f1 D: @; H
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 01:57 , Processed in 0.028095 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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