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

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2021-3-13 22:53:35 | 显示全部楼层 |阅读模式
+ ]- k/ E9 y. D" S
  <environment>: q8 y- a$ D3 L
    <id>ceph</id>
, ~3 }, N- A& q4 H' _    <name>CEPH S3 SERVER</name>
& f1 l0 Z* {; s/ ]" a7 X2 ~    <name xml:lang="zh_CN"> ceph</name>0 f4 s; j- o' S+ y, _# L0 t4 m
    <description>CEPHServer</description>6 R0 H. H: i7 k7 ^  t; {
    <description xml:lang="zh_CN"></description>
7 l  K( \" p. K( \: q    <display_order>9</display_order>1 B3 ]& c% m% w7 _$ x' n
    <grouplist>+ U. T/ Q* i) {4 T' y- _
      <groupid>core</groupid>
/ u3 P. T# {; \      <groupid>gbasic</groupid>8 `4 L% d  P1 d' ]
      <groupid>gceph</groupid>
/ j" F/ [# F' }. p6 ^5 z4 N' Z
, j+ c7 u4 [8 v) Y8 ~    </grouplist>
0 v! G: a7 O. G  K5 y3 |$ b1 K6 B& O7 U2 c; y
<optionlist>
0 h6 [, z) |5 a' J( q; D' V$ o) d3 t" L" l
      <groupid>gim</groupid>4 i- I& Z& R4 d# L7 H3 k) S4 b. ]

% h6 j  [+ }0 Q0 K      <groupid>giam</groupid>
0 |3 d  J  m, `5 i6 ^  </environment>
5 y) c) Y4 e5 |& m0 @5 U) c
0 m. F, z, s  c, ^" [( j- M, E...' g& L; E5 E2 ]7 P4 ^' p% f) d

8 g8 T: Z& U) I* J; o, J6 |:wq!保存退出  " x5 U8 h: a7 R8 F; X; N. p

1 e! t) ]3 @/ D. w以上修改会在安装系统可选软件中列出自己的软件。 optionlist项为可附加可选项。自定义的软件如init-ceph。可以放在根目录的任务文件夹下。我们统一放在 Extra/mirrors/sunrunpaas/
9 F& p1 k5 K) M! a" \  s& T7 \' S! i0 ]+ I0 x
如:, ?, y+ P( A2 _

7 i& b# M( h( r4 v* g8 Kceph/          php5.6/        sunrundfs/     sunruniaas/    sunrunim/      sunrunvas/      ! t" Y! e' B. u+ u1 h  T
mariadb/       sunrun-common/ sunrunhac/     sunruniam/     sunrunslb/     TRANS.TBL" g) y) R' z1 L

3 q6 Y. `2 \$ a* ?+ n( _& u8 d
" G+ l/ m% \9 @; ?0 R  A& s, M/ K; C" `9 g; F1 P+ E
( f4 e$ ]* p& J. h1 w
2.2 ,定制作自己的界面
' e! G; X" j+ Q2 X& |0 e, B; ^0 c- T' c2 Z  y% J
   2.2.1定制作引导界面。
- V" F! I/ L7 ]
3 G( |. a: V8 W5 A: t4 r 修改 isolinux/isolinux.cfg) y$ z. |8 H4 u. V2 i7 r7 E
$ n- E) p* y- D; S) c2 }8 b
label linux' ], N& `4 C- @+ e7 _/ q( f; Y6 C8 O
  menu label ^Install SunrunOS 1
( f  \0 e% v  g. N0 B: t. ^9 E, {  kernel vmlinuz1 h! X; _  n8 c- I! n& L) s
4 U/ D' }7 ]  f
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS7 inst.ks=cdrom:/ks.cfg  quiet3 t' W+ k  F& j1 d2 S1 i1 f

, y# N( L9 g7 n: U& s4 ?...
+ k" E7 G3 j  Z9 T. q* ~3 k4 v4 {3 D1 F+ ]5 x2 b8 |( A" A) n
2.2.2 定制图标和文字。, F& v) }7 D; n+ m+ I% r7 f

& q; ~- w/ L% W5 ?- |7 r- ?' H    系统安装界面里的图标与文件修改。对应的图片在LiveOS/squashfs.img中,需要解压,修改,再压缩回去。& s7 R5 {5 N' T% ]! \
  u) c: Q& v0 W2 n" ], I3 q' m
    unsquashfs squashfs.img
7 H8 D; X3 w2 Z- Q' G1 U! _8 L* [" k% b
  产生squashfs-root 目录。1 r: M6 W% K1 f7 y$ j

- @# x2 h$ O1 v* R  squashfs-root/LiveOS/
1 z- v6 r0 ^0 y. v. [. j
4 ^7 j( N1 O. b4 A  mkdir tmp
, C8 R; v: s6 {5 c8 h8 K; N
& L5 f/ G% n5 t9 g$ v$ j0 N! M  mount rootfs.img tmp/
0 m7 \' l( E" \% D1 ]' K& a
8 b3 \$ Z0 S0 |  @0 D  下载,修改,替换下图:) v' t0 ~/ o/ s( h# t% f- y. P5 L

9 ?, T" F' w( R: Q4 t* s   usr/share/anaconda/pixmaps/sidebar-logo.png 5 ^1 \: Q- f- m# F) e5 ~7 j" t

- Q4 u1 w8 p3 F9 K9 z9 I: x
( i; j+ T& f6 \7 q6 a. m5 S3 \- w. b$ i, k$ Y
修改usr/lib64/python2.7/site-packages/pyanaconda/product.py
6 N2 A2 \6 j! w( `$ P0 ~
3 ^* z$ v1 v4 Q3 _def distributionText():
% ]6 Q) H0 D2 T* y7 T    return _("%(productName)s %(productVersion)s INSTALLATION") % \
& A( x& ?  S3 g/ ^             {"productName": "SUNRUNOS", "productVersion": "1"}& i% `8 A1 _$ t3 b% J
  I9 }% @& B) h' ^  v
" d" ?% H  ~+ S, M6 t

  g0 g4 U4 V+ R5 _完成修改,生产新的squashfs.img1 c& y9 u. B  O  A3 ~( g" v

$ n& n9 o1 t1 bumount tmp/# R$ M8 a$ K: m  ?( e

( ^$ z  x* F  e/ T) K7 wcd ../../% z0 U0 T2 T1 ]- y

# N" E- j' D6 E& e% ?1 prm squashfs.img
, q2 N; {: V8 G" Q: e% @* f8 t( a- h7 r/ ], y( H$ F2 l
mksquashfs squashfs-root squashfs.img
- `  j/ _/ A; v) y
$ Z( @) j) n1 J" G. M3, 定制安装流程
3 H& ^" Y* i4 @8 p
2 t: p3 l* X' U. X   cp /root/anaconda-ks.cfg /cloud/iso/centos7.2/ks.cft
3 m8 {7 g5 s! ^5 b! h( E1 f$ o+ L) p, x$ D7 Z
如下:4 I) b4 Z+ X3 i  i% Z
6 `% \, q5 Z' J2 h
#version=Chen CentOS
6 n% _- \5 \$ ]6 U* i9 B2 T8 h# n1 e7 K6 T4 m  z6 y
#platform=x86, AMD64, or Intel EM64T 5 X" M7 X9 @' h9 N5 [+ z  K6 \
# Install OS instead of upgrade
( J% K# \# ^# Z0 }& @3 O% I1 }#repo --name="sunrundvd"  --baseurl="file:///opt/sunrun-dvd/Extra/Packages/" $ J3 k# \+ W/ o2 p6 g. W
install
" C0 w, t) p5 B8 Y2 N# Keyboard layouts
/ N. P- u3 K, ~, ^6 ~7 Y& Akeyboard --vckeymap=us --xlayouts='us' 0 Y" T$ r1 `- M0 h2 u
# Root password 9 I4 k. p7 M4 \: i1 F9 n* S
rootpw --iscrypted $1$password$mV5CPMXkUkvImOukQuVs.. 3 ]* z( @0 X2 e* S1 B+ m
# System language
# C& |5 M* k6 d- G/ Wlang en_US.UTF-8 2 X( b( [0 d* }
# Firewall configuration 2 A; q& V- ?( F$ v% `: c- x
firewall --disabled % \# U! K# f' |4 h9 k6 H
# System authorization information 9 ~$ d3 ~5 j' S5 H
auth  --useshadow  --passalgo=sha512 9 F: |8 I  W% ]/ R
# Use CDROM installation media
' R+ U/ F. q7 a% q+ k  I" tcdrom
1 l" C" w/ _2 w6 \) v# Use text mode install " W8 ^7 \) A/ s) e
#text
# O9 w3 L) ?: V7 W2 _; F# Run the Setup Agent on first boot # l8 [* b: k* ?! t
firstboot --enable
- n$ X0 h' |& B7 Qignoredisk --only-use=sda
2 Q2 Y5 I1 K0 s2 j# SELinux configuration ! O4 U- e; H! j) K6 a* u
selinux --disabled
/ K& |" e5 b; S# Do not configure the X Window System
6 E% J/ k4 |) S#skipx
# ?- h  c: z& I6 o5 x) x+ w( J, b- z8 Z8 v5 `) h: r

2 v: b8 Z7 ~8 R. K, _# Network information
) S2 F% a2 K$ a5 N3 ynetwork  --bootproto=dhcp --device=ens160 --onboot=yes --ipv6=auto --activate
3 p5 K% x/ i4 s& H/ T( U#network  --device=ens160 --hostname=localhost.localdomain
3 c: q  C- p2 |, n& q
8 ?; V# }  V2 Y$ `. W/ L  ~8 r, P' B& w0 t& E  ~1 ~( C
%post --nochroot
$ }1 t( w% S% _# 写到rootfs里去 1 I! [0 I+ U& j4 I" y2 w. }0 w* `& _
rm -rf /mnt/sysimage/etc/yum.repos.d/*
8 P8 Z. L$ v' e# U/ X4 Y+ O7 m#mkdir -p /mnt/sysimage/mnt/iso
6 P! M7 Z! k$ L8 G2 Q) Z* y# @4 }#\cp -rf /run/install/repo/Extra/repos/* /mnt/sysimage/etc/yum.repos.d/ ! Z9 P5 M7 K/ Q- t

9 F2 z2 w2 M/ M2 V" W& b%end
# l- |; \" H" ?; A- X
, B' n& A9 p$ F7 G1 ?# Reboot after installation & ?  ]& B3 E; C3 o- n. s4 \
reboot ( K% p1 a1 i# L! u
# System timezone ; q. k2 E( e; Y' a- q
timezone Asia/Shanghai --isUtc
& Y5 ]$ P# a' J4 A5 ]* H# System bootloader configuration
) t  W) O  n3 E% o/ u" zbootloader --location=mbr --driveorder=sda --append="" 6 @# M+ R! k0 Q+ C3 E! U; r
# Clear the Master Boot Record ; R5 W4 Y* P8 O0 F' X
zerombr / ]& h% _$ k& N3 x5 x6 X% a
# Partition clearing information
& Z# w  k, `! ?  eclearpart --all --initlabel ' `8 Z- s6 B0 _! d0 E
autopart --type=lvm
2 t! P& y; z3 ^2 ~  A; [' _' m7 u# y3 a  k2 d; M
" U) d0 z) I2 W# Q% ^! K( J, y
#%packages
! `6 K7 u, F( a) j6 V#@^minimal
+ w; U) {! |' a$ @- ?( A/ v#@core
6 _8 V7 U+ O# e8 S, X; I8 k+ b. e+ h0 a0 G2 p0 U
4 W4 P# b5 X: j: I' i) F
#%end6 r: o5 Q8 p) m9 V0 Z

# Q+ r3 J2 U3 V; ?8 O
! e! X# n6 w4 Z1 d! a9 E1 x/ F& `4,重新生成镜像:, o, j/ m. j! Z6 C( N4 ^) Z
0 f2 D& q8 l8 ^5 g- Z0 H" g& j
rm -rf repodata/*8 ^5 `/ y& q, i# n. u4 h
& ]% R% F9 M% _0 Y4 g5 M
# `" y) o, r: j2 O' M1 _
3 p  Z4 Q" p1 j# M% c3 {4 Z
createrepo -g comps.xml .1 U7 Q/ W0 v( ]2 W. G

6 f  C- v) u9 n- T, @' ~' u6 M
- M" v% U! \* q* ]0 n
; Q* u$ i5 U& S) J& 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 ./
1 d8 X: J* Y9 Z; c$ e8 b+ O8 C8 r3 o8 G0 n! W+ I7 k/ ]; Z" x
5完成   ../c76.iso 即是我们的作品。
) ^9 e( z; I7 _0 g1 ]4 G3 T
% c0 n; u& y$ L3 C. k9 U; d9 l3 J& z& m
! S! Y7 g2 n2 p

% {# o% O( A! |2 E& T, s

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 -) t/ _+ N1 R1 p5 Y+ u2 X
no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T -joliet-long -V EVGLOW /root/iso/CentOS7.4-evglow/
) Y0 p6 E3 A9 g5 i/ c. w# v; n0 s8 T" ]5 O$ u

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
    , S) k' k# D) r0 T* l" e7 l

    ; r7 |: b0 p- L( K( M/ a

/ G! N  v, a) u( D0 E
+ N) p3 J& w/ 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: ?# [, X" c" `. 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/
    ( K4 t2 L( j* h' v4 L2 r
    . W6 g* v) n8 Y8 q" z+ P

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
    * k* T  B, c. h( b% _* v% C/ d& P

两者的区别就是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命令兼容。

" a' }9 A4 C/ [" `4 d( k5 m" y2 h

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-3-16 11:01:01 | 显示全部楼层
vi /root/ks.cfg
1 y9 ]! P7 l7 {5 y5 _* a% p7 S2 m  o/ S
install
# j4 z/ y% w' B/ Mcdrom0 q4 A5 j5 Z, Y. C/ B) y
lang en_US.UTF-85 x+ ?7 Z+ G& d# i' o
keyboard us
  c6 i# u% y$ F) t6 a1 D! q6 E+ snetwork --onboot no --device eth0 --bootproto dhcp --noipv60 T6 X8 o" R: d+ @4 V
rootpw  --iscrypted $6$ZI78JvmQ56MxYSe3$dn9UV./VvFieP25R94ciYo4wg7p17sM8gCt2WQa/hqMeHiynnBqL/abF14D0AOSXjnptoBHqLYGhzun6W7Qfr1. O: w" T8 r% X
firewall --service=ssh
7 X9 i5 A6 f1 X' x$ nauthconfig --enableshadow --passalgo=sha512  b. o3 l# j: w% E  x
ignoredisk --only-use=sda7 I9 P% I9 G2 [, ~9 ]" r! v8 i
selinux --disabled
9 ~( Z/ B: M5 R+ e, w! V  c/ Ptimezone Asia/Shanghai! q( w# D7 e0 l) V3 n6 R" c/ u
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
3 u" E, x( ~6 W3 S; Y- y, J& Eclearpart --all --initlabel  --drives=sda- n6 @. y. y0 w, Q
part /boot --fstype=ext4 --size=2000 U3 f/ j: t$ z2 q9 L# K; M
part / --fstype=ext4 --size=200006 I3 v6 q# z; x7 b6 O% I; ?
part swap --size=2048( A5 p6 N1 x) S2 B; x  f
part /data --fstype=ext4 --grow --size=1! t% h  X! T( R$ X! B
reboot
8 t+ T: l. z+ H: ~; n%packages+ _2 _9 t% n4 u  f
@core
0 Z) n8 I4 l' n+ p@server-policy* p7 ~4 \+ a1 t7 g" G2 f+ `5 m7 b
@workstation-policy
8 h$ [1 f4 O! X8 t, Z9 r6 `
9 ]' m/ k( K* e4 X7 F! f+ g%post. K) [7 T* x8 `- v+ A9 u. [3 ^4 }5 D; r
#add user
/ D( y6 N' B/ A. t" i; a) D. luseradd pos5 L- A7 g8 A: z
echo "12341234" | passwd pos --stdin
: C$ k: S6 q. o7 _+ g) r% k#service
: B/ g5 P3 o& {' g( x" C1 cfor i in `chkconfig --list | grep 3:on | awk '{print $1}'`; do echo $i; chkconfig $i off; done8 [$ k, E1 H, H
for i in auditd crond network  rdma  rsyslog sshd udev-post; do echo $i ; chkconfig $i on; done- B/ K2 n5 C8 A$ C
" j( p- Z% n$ z- Q1 V; Z
#profile( X! m" m. Q) k( y  q: l9 o; d
echo "ulimit -SHn 51200">>/etc/profile$ x. {% W  ~$ S/ A
echo "TMOUT=6000" >>/etc/profile5 k( c5 W* }  G7 M

& k. K3 u9 z: |- h: C#passwd* J6 b2 l9 {6 n% P1 I8 X& x
echo "admin"  | passwd root --stdin+ ?( x- r- G5 T

) `/ K& E8 u+ S#ssh login slowly/ N& ?5 X3 g  C6 O$ G
sed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config0 [% _1 N/ u& h: l
sed -i "s/GSSAPICleanupCredentials yes/GSSAPICleanupCredentials no/" /etc/ssh/sshd_config8 I: l2 }8 \3 ~2 t( o
/etc/init.d/sshd restart
* c! O- J, b; O, x& n8 P* O9 I. ^
4 N& j6 a' h: h- |- p9 c* a, K" Y. Erm -fr /tmp/*
6 l! ^8 l, L7 [; ]6 n%end8 z- l+ n' a$ p. @/ d

9 z( \. o7 s0 Y  j3 t1 Q# V2.  yum install createrepo mkisofs isomd5sum squashfs-tools -y
/ [* x3 w/ }7 d( e& y
1 Q0 Z+ C/ k  d( y1 P    mkdir /root/os
7 X, ?' A0 ^, b! U7 W+ ]" r' o! j
* Z8 A5 u* k" h! Z& ~) w" u! ?   将以os为iso制作目录.
$ n7 y; W! v1 Q$ A  [  _$ i8 ?- X; s) l9 c* |
mount /etc/cdrom/   /media
! z* X# _" Q) R, v' a8 f1 g& `
$ i% i7 w' l* U  Nrsync -a --exclude=Packages/ --exclude=repodata/ /media/   /root/os/' p: R0 [! c# g7 y& B
, M4 P8 I; l* n; `; ~+ [9 P3 U$ S
mkdir -p /root/os/{Packages,repodata}
9 p' o6 T5 e4 r: a
! f8 M9 u) ^, N- s# L7 {3.拷贝mimi 包
" P! a) n! z- x' W$ q, T: p
; _" m, `$ \7 P5 Jcd /root
4 H) O8 M! d+ `. H1 i. M8 m
7 B4 \' p8 B: N: X2 D8 Icat install.log | grep -v "^*" |  awk '{print $2}' >package.txt
! s1 B# P- v8 {' k' h8 ]- ?5 d
8 d! J* Q  l  M" c( o; c# _+ A& D6 ffor i in $(cat package.txt); do cp /media/Packages/${i}* /root/os/ ; done
; p0 F5 m4 Y! d' |# N
, g' t7 [" u: W) y4 R$ G4.创建光驱yum仓库.4 u, O4 F$ d& g1 t( ?

2 F. ^  }7 N! ~/ @3 D4 g0 Wcp /media/repodata/*c6-x86_64-comps.xml  /root/minimal-x86_64.xml- U0 O. u1 P, t% J
' r0 F  t6 X+ f. ^+ o1 s
5.重新生成repo
# \6 X9 g7 h* U- E! H8 {$ B1 f2 I
3 \1 [$ b! G& Z5 n  declare -x discinfo=$(head -1 /root/os/.discinfo
0 S9 |/ h5 b. {( i7 h1 j/ c
$ D1 W1 D- J: o! M, ]/ T2 u  createrepo -u "media://$discinfo" -g /root/minimal-x86_64.xml /root/os/  R) C; F3 ~- b/ n

9 n+ c* Z& c/ W5 w1 J6.cp ks.cfg  /root/os/isolinux/    
- J. p% H( Y1 a$ B3 i' ^* K
& e, K' [/ x- a5 L3 s3 ?   cat  /root/os/isolinux/isolinux.cfg 
- R2 h* f# F9 m# c+ O3 c' p
! I8 n* s! U* Q; g8 m! K- M
0 M: m) E# e2 C; u! W" ]% u* d/ o5 ~/ L4 F4 I$ \, u( e
default vesamenu.c32( e/ f* \  k; W% G7 N
#prompt 1
$ L& A% G3 A) O0 S7 M/ `$ xtimeout 100
7 n# h. B3 f4 P8 e$ }. Q% ]9 f8 w' ?" j
display boot.msg
& X7 p! \; q  u7 p1 w/ k4 u
0 [3 p' I" m! l8 l# Hmenu background splash.jpg/ _2 J* t9 ^, ~0 L
menu title Welcome to CentOS 6.9!
0 ]8 t7 G- T9 O) v! xmenu color border 0 #ffffffff #00000000) z( [3 S& V- j; I. b
menu color sel 7 #ffffffff #ff0000009 p3 G# H% c" I2 `9 L
menu color title 0 #ffffffff #000000005 [1 x5 `+ u5 ?
menu color tabmsg 0 #ffffffff #00000000
$ x5 _, C& x, Z7 i* E3 gmenu color unsel 0 #ffffffff #00000000/ K1 G/ M% }2 p; T/ @% u' b, ~) i
menu color hotsel 0 #ff000000 #ffffffff
, }3 s2 e6 y- A; [6 ~) I  vmenu color hotkey 7 #ffffffff #ff0000001 w& W, A- R% T: x9 f. z! m
menu color scrollbar 0 #ffffffff #00000000
: N  q( m2 s) D* }; v! E% K  g
, z6 s) n2 q8 q9 k- v
3 H# }6 g* u. i* S$ {8 Zlabel linux
: \  [: C( E* E0 i$ A  menu label ^Install system  
4 d1 ?" B$ K' |- X8 v1 t  menu default5 X4 G& O0 M+ ~6 J3 a9 ?
  kernel vmlinuz. _5 q$ _3 N0 r: \- e4 D$ Y
  append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg/ }( R4 h/ p8 M) s" K: d( z
$ W! o0 c- Q, r# ]- D

5 q* E# g5 K# f0 ^7 I, K9 I% z! m. I/ V  f
7.制作iso) S' e6 d; ]' ~0 c+ i
. I; \" m$ l  o
cd /root+ J7 J+ T* e8 j3 [9 Y$ t
$ u3 _6 ?( u+ M; _- u' W
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/( v' g$ C4 d, d' ]) W
6 \4 h$ ]2 F2 [* y2 f
* w7 q* y9 v1 M# X' |) X% h1 p

1 g2 H7 y, i3 e. Y* o% z8.生成iso文件md5值! z3 `  P  Q6 o7 W
7 {2 E, Z/ z/ I  T9 w
implantisomd5    OS-6.9_64.iso) z" R9 C8 \' [

' }1 D2 r- a2 n9 [9 ^# l! S% H# H. X1 I  Q0 P3 J

; z( X  i/ M) P1 l$ t, j7 o: C! G
2 E% H: L: |0 [' u! E3 |
9 D7 r# `# W# {# b" z: z2 P2 N装系统测试^_^* P3 p5 T( a6 t& q9 w, M
8 U# y7 k% {+ f7 x7 Y. q/ h
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 02:00 , Processed in 0.018248 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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