易陆发现互联网技术论坛

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

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

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

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

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

x
4 T3 ]$ u$ K4 m2 G
  <environment>/ T" o  c: |/ v
    <id>ceph</id>
: I* v1 h6 S  B  R1 F' `  A    <name>CEPH S3 SERVER</name>
, [% g/ I7 ]) x; w5 I    <name xml:lang="zh_CN"> ceph</name>
& q" N8 @  D) S    <description>CEPHServer</description>  G5 @/ s* n, x* e8 z* f
    <description xml:lang="zh_CN"></description>
" Q6 `+ h; f  M    <display_order>9</display_order>
' \' X+ f. X& V" U    <grouplist>
, ]4 i  o# S+ g% y& W3 ]- s5 _: O* G      <groupid>core</groupid>( n7 X6 y( J% p! f
      <groupid>gbasic</groupid>% \1 e4 q/ |: v% ~! _7 R
      <groupid>gceph</groupid>
. a. [; t/ U/ W
& Z. C! I5 ]' `* p    </grouplist>
1 r; d- T9 I0 `8 h! Q
8 X' }, F6 n) Q3 c <optionlist>+ c8 u# D& r' f

3 y: I' ^6 H& J) V: v- x& I      <groupid>gim</groupid>9 B% M, A0 a7 |' B, W% q1 I# d5 N

7 \- Q/ l) B4 Y6 b& A; l! M5 M6 f      <groupid>giam</groupid>/ T1 B6 B4 u  @3 b
  </environment>
4 p* L4 ?6 A, |5 K* W
2 d0 L6 M' _; A( D...) }$ y" Z# _; T
9 L' g0 \2 @+ \1 t1 {
:wq!保存退出  
2 |& z& c! T1 d8 v6 d
" w  i. h) }# Y6 {: B( n以上修改会在安装系统可选软件中列出自己的软件。 optionlist项为可附加可选项。自定义的软件如init-ceph。可以放在根目录的任务文件夹下。我们统一放在 Extra/mirrors/sunrunpaas/9 a& Y$ p% ^0 S: v* k5 O# ^

" B# S' ^: i- @, E! x: K" C如:. k0 n9 a. E1 @: M

# @- \1 f2 ?4 w+ ~; ^0 T" ?) n! fceph/          php5.6/        sunrundfs/     sunruniaas/    sunrunim/      sunrunvas/      3 ^8 j$ o0 M, l/ ~& b/ p
mariadb/       sunrun-common/ sunrunhac/     sunruniam/     sunrunslb/     TRANS.TBL3 k/ M& q7 Y8 B8 ~: ]

, ~3 K- P# e8 p8 Q! {4 S& O4 m  C' a) t0 E3 Q& C

, B9 l, o* K! ~' q! x# X6 R& _1 u5 K( Y. ^9 w0 T
2.2 ,定制作自己的界面
4 L  y( [# h/ {# e
, g  D8 l* g: a8 E3 Y" P( e   2.2.1定制作引导界面。
* d8 p; o! ~3 C! s! W: H2 w" ^% t/ X2 C* _: ^5 o: M
修改 isolinux/isolinux.cfg  [0 u, ~- I0 z# m- [6 p

6 Z2 b0 Q- [/ U9 Y+ ~label linux
' }( E* f7 d& F, w% q/ [" a  menu label ^Install SunrunOS 10 @/ Z+ p: u7 k8 e% S
  kernel vmlinuz
, E  n+ m2 i0 q$ ?" }0 n( t) J. b1 k
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS7 inst.ks=cdrom:/ks.cfg  quiet
9 V/ }3 ~, [3 w8 [* s
+ s; L7 ^# L1 \$ B' q) N4 w...
/ x' \; q( i9 F: |+ m9 x0 y: h, N7 ~. g4 S! g9 x. I& b4 |
2.2.2 定制图标和文字。
0 ]' N  ?$ A7 Y) `* M! o9 |; {/ u& Z7 \( h  Q+ z' Z& y
    系统安装界面里的图标与文件修改。对应的图片在LiveOS/squashfs.img中,需要解压,修改,再压缩回去。: W- f/ L( j& d2 u/ e! ^1 V" M
0 W% l3 w- z  B; }4 [( j$ r; F
    unsquashfs squashfs.img8 t% G- D5 V' O: C' o( Z5 N3 x

: X$ r& }. U/ L( _  产生squashfs-root 目录。
3 \- j4 E7 Y* U9 y! f1 i( K% l! {! g1 b
  squashfs-root/LiveOS/
. X/ E7 ^: M0 H4 g8 B
6 i" e: b" n/ I6 @0 S, N  mkdir tmp; N% c! f! w2 h6 ?! e& ?0 L

" Z  n$ y+ F. ~! c- B  mount rootfs.img tmp/
, A/ C6 A, t6 z2 [5 R
4 ?0 I+ i3 T% L" K6 _8 K  下载,修改,替换下图:/ f. _& N3 K. t' }2 {/ W2 }
! g' V  O. u8 i. Y2 O9 z
   usr/share/anaconda/pixmaps/sidebar-logo.png
. X% K; ]+ H" A+ w+ k  o
+ I& X" y9 f/ I
" Y% ]) d4 I' i2 C, D
* E9 f% ~0 _: Z& q3 z修改usr/lib64/python2.7/site-packages/pyanaconda/product.py! W* K  ~# n4 i( i# t

9 C; {+ f/ ^4 U% Tdef distributionText():
4 R- o8 j& N2 T8 |    return _("%(productName)s %(productVersion)s INSTALLATION") % \8 W: t$ h7 k& b% R: L0 H0 ?9 h
             {"productName": "SUNRUNOS", "productVersion": "1"}3 D# [+ V! h9 _1 A
1 Q5 u$ Y& B# @2 e( |6 c

  {: @! h' y' }$ z
2 z  J1 G  U8 v7 S3 u完成修改,生产新的squashfs.img* u. @3 F& x1 G6 N6 {
+ W( Z' H6 K0 Q0 {- r* m9 w: ]2 Q
umount tmp/& Q' b1 d  A- A6 Q- x+ q

5 G4 U& E1 j$ Lcd ../../7 V/ X  m* |! C8 t2 ~; Y# o$ P7 j

$ S/ ^: {2 O# w* A* grm squashfs.img
9 \& C  W* \% B: v5 m! i+ j( w( P
% Q0 e/ D& a% o8 m mksquashfs squashfs-root squashfs.img
  Q$ f; E2 c: `$ }* |! `; Y/ H: Q: i8 f) P
3, 定制安装流程4 w* g3 k3 o% O: l8 B' z
( x# p' z# Z$ ?$ ?9 u# }; j* U* T
   cp /root/anaconda-ks.cfg /cloud/iso/centos7.2/ks.cft
3 Y" W: Q/ Q* G' @, v5 g8 Y( d
- E% `3 W: g7 [/ D0 U% B2 U如下:
/ ?1 ^2 q3 @* x
. u' ^( M4 K! m& C: D: Z0 ?( V9 ^  V7 Z#version=Chen CentOS
  l3 ^# n% p& K$ K8 v* \
- W' s$ M+ J: h$ u  Z% V9 D#platform=x86, AMD64, or Intel EM64T
1 x, v; P. N. ^/ F# Install OS instead of upgrade
; V0 v( T; {" x. v#repo --name="sunrundvd"  --baseurl="file:///opt/sunrun-dvd/Extra/Packages/" ( r, f+ k! L' J8 R( R. R
install ; W2 w. q$ K5 a' W: Y5 ~
# Keyboard layouts 8 v: K/ v8 o: Y& x
keyboard --vckeymap=us --xlayouts='us'
" ?5 L4 Z! ~- x; `; P0 Q: I# Root password 5 O  e" F: @  B
rootpw --iscrypted $1$password$mV5CPMXkUkvImOukQuVs.. 7 Z& [4 T8 c6 E; f0 ]8 ?" [
# System language
6 R3 p$ a' ?+ l" A  g0 t% \8 T! q1 flang en_US.UTF-8   U5 C6 \: W/ c2 N$ ~
# Firewall configuration
; b0 n! l4 d& b8 h0 a6 \firewall --disabled
8 Y; v2 Y. T; {! V# System authorization information + u  B- W* H5 m$ y) n/ p5 O
auth  --useshadow  --passalgo=sha512 4 N; h1 Q1 U# X/ L
# Use CDROM installation media # U! J$ j( w% u' C0 _
cdrom
6 @' j8 o' Q" D; H7 ]+ X  {* y) W# Use text mode install ' E+ f, Y9 G* S7 m' t8 R
#text
; W( P0 O6 S  p" b% f) g# Run the Setup Agent on first boot * H+ D  d% |/ G! l) I2 |+ i
firstboot --enable
  |7 a+ e/ U( @# h6 Y* O8 c. e% ?ignoredisk --only-use=sda , S9 t$ [# {2 {/ E- {
# SELinux configuration
( I$ K  b: }, i; k( mselinux --disabled   _) C  {3 Z+ I/ x
# Do not configure the X Window System 4 l" `* C4 {/ K$ D. T0 |
#skipx 3 |2 p" U% u; j: q

$ n6 R) ?) q. e1 P, y8 ^# O3 F9 F( P* M4 M$ k
# Network information
8 n7 h' C  M/ Y$ c* lnetwork  --bootproto=dhcp --device=ens160 --onboot=yes --ipv6=auto --activate , L& q+ R7 q  X4 V3 S0 @1 L
#network  --device=ens160 --hostname=localhost.localdomain 9 v" J# E1 T) g: l4 G( k

( s1 t- s4 b" I4 M1 u  a# Y: `" T. G  i0 V7 J: f( O- O9 B: _( O, Q
%post --nochroot + j! Q5 Y0 g% J  C# q
# 写到rootfs里去 # m% m  `, o1 i- [8 F
rm -rf /mnt/sysimage/etc/yum.repos.d/* ) h; t# \5 e* g# R4 d) b$ Z: Y
#mkdir -p /mnt/sysimage/mnt/iso * Y: U( \# x5 D$ ]  g
#\cp -rf /run/install/repo/Extra/repos/* /mnt/sysimage/etc/yum.repos.d/
  x4 L9 O$ y6 o# N8 |! z0 J" q0 ~% f. B- ]4 x( L/ a' s5 N% ^
%end 5 S2 M! k& u3 K- J* ^6 f

$ m5 f/ c5 L/ a, }4 V# Reboot after installation
" l$ z- ]$ X5 m3 B6 i9 Z* Sreboot
1 e  j5 y. _. d# System timezone
  Q$ [6 Z* R5 ctimezone Asia/Shanghai --isUtc
2 a% \3 R6 o5 j2 ^: f- R# System bootloader configuration 3 S  G3 Q) {8 H4 T8 a2 s  M
bootloader --location=mbr --driveorder=sda --append="" . ?( M; O- H% I4 `7 @
# Clear the Master Boot Record
1 D) R% U+ X2 y' vzerombr
0 J% F5 W; q$ H- D2 d  }3 z6 b# Partition clearing information 6 F& V# k( J9 p4 E& O
clearpart --all --initlabel ) i4 {$ K& n& h
autopart --type=lvm
- W! `+ |; N6 |$ L" m( A9 [4 \
1 E. }2 g9 v- b; _, a
# r; _% P6 C, W! V0 w- o  ~#%packages
; C. ^2 L: s8 p$ }) Y% E3 c#@^minimal
, u. Z6 P. j" O: Y( M7 d2 a. }  r#@core
4 H, n) u1 }8 G
+ f3 m9 a) z. N  v- N
$ B# Z* {$ \% `- Q1 q  g. V#%end5 Q* L& V* U" p" Q/ f: r) l
3 X- J) ~9 ^2 @- b! c

6 B& ^" T9 I9 R4 Z$ c: w4,重新生成镜像:* V& \: J1 }( N. p4 O
  `; w* q% |6 K: {' p
rm -rf repodata/*) {# B  w" T. Y9 r5 O

2 w7 H0 |7 R! e# I; @
3 i/ L# |9 q6 u4 V% V
! d) C- Q5 b$ y! n. ]! G1 screaterepo -g comps.xml .5 W- v: a9 l1 {" ]
2 }% L% V) c9 Q( y; h& ]! u5 V. O

. S( Q* x+ e* V0 Z% Y" K2 f8 E9 b9 n  Q0 p" M$ P, E1 _' X
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 ./
. M/ m+ Z; z$ m6 k0 d
% k- S  R6 g3 g$ }: G5完成   ../c76.iso 即是我们的作品。
- F2 j/ ~; p* T* {5 s& u# B; j* s6 l, ^* }$ s% d  S
# j5 Z* u* a8 f/ E

* N. ?! W6 N& s6 ^7 `3 x4 H$ }/ O4 Q& ]; D# v7 N" O0 C
 楼主| 发表于 2021-3-13 22:53:46 | 显示全部楼层
mkisofs -o CentOS7.4-evglow.iso -input-charset utf-8 -b isolinux/isolinux.bin -c isolinux/boot.cat -
$ _6 p0 N# h0 ^% D8 eno-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T -joliet-long -V EVGLOW /root/iso/CentOS7.4-evglow/
6 E6 P, u9 R9 B  J! [8 g
8 {+ `8 T# C/ F4 l
 楼主| 发表于 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.txt4 Y' a  d8 f  p/ c' P

    8 v1 W/ P8 O9 x" I, z% z
- e8 a/ g  z$ t3 I, m
3 m9 p/ A5 L. R) {* p  h

二、配置 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. z. H- T" d; j

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/2 `7 B& Z9 s9 W' c5 b- n

    " P0 v4 I6 }0 `/ U5 r  E" d+ D+ S+ I- w7 \9 o

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/74 M' ?. ]! m; z& k2 j% _

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

' o6 g' C' V/ z' u, h% A
 楼主| 发表于 2021-3-16 11:01:01 | 显示全部楼层
vi /root/ks.cfg
7 |' B3 p8 a* q; `9 U% z
, F8 |1 e) p' k+ H, e! d  b. {install) k/ [) o/ i( b. p, T' S
cdrom
  D1 c7 H0 n' ?+ H; g3 Ilang en_US.UTF-8
% @+ X9 e* c( ^1 T3 pkeyboard us4 ]. [( X! |8 c1 }8 ?
network --onboot no --device eth0 --bootproto dhcp --noipv6& I! a2 p7 d! Z0 J, |9 T# c
rootpw  --iscrypted $6$ZI78JvmQ56MxYSe3$dn9UV./VvFieP25R94ciYo4wg7p17sM8gCt2WQa/hqMeHiynnBqL/abF14D0AOSXjnptoBHqLYGhzun6W7Qfr1- I  {* L1 D& Z0 J. }
firewall --service=ssh5 P( ?3 ?+ v2 O0 Z8 Y
authconfig --enableshadow --passalgo=sha512
/ s9 W) i: H4 ^2 a/ uignoredisk --only-use=sda4 }! B/ H( ?' q7 r1 Y- t
selinux --disabled
; O, E4 {# B' K# Y, T2 a! @timezone Asia/Shanghai
4 `8 d* i2 x3 g8 ~# p$ o0 N! Cbootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
8 c6 i) ^6 G. i$ ~5 E+ g: Xclearpart --all --initlabel  --drives=sda4 p# ?9 z( Y- ^
part /boot --fstype=ext4 --size=200( @$ B* f6 T' \2 K; v) v; Q7 p
part / --fstype=ext4 --size=20000
: q; q% q7 ], V; k" Spart swap --size=2048
! z7 h+ B' V/ @) Bpart /data --fstype=ext4 --grow --size=16 w2 r; R: v0 k9 a* }
reboot! ]; n# G$ x4 v; x0 n
%packages1 R4 h9 f$ ^( N: ]
@core  l* Z8 \. ^) j: w0 @- a7 q
@server-policy# a/ }; l  P8 J$ B4 R& \7 ?9 n+ S
@workstation-policy1 P' B* x* Q$ K. E# |
1 E' e2 ~* z( u2 `9 l1 V& W
%post7 ~0 q  M2 C( L+ i; Q
#add user
6 J. N8 s; v4 D3 p" v7 ouseradd pos
$ _: b8 f$ P  P" V# }echo "12341234" | passwd pos --stdin. w/ W% p  s# s
#service
) `* x0 O# v) L$ F7 r& ofor i in `chkconfig --list | grep 3:on | awk '{print $1}'`; do echo $i; chkconfig $i off; done
- K8 g* b  Q) ]; _* I( B( e3 n' S1 pfor i in auditd crond network  rdma  rsyslog sshd udev-post; do echo $i ; chkconfig $i on; done
3 q, p) G0 ?: @( R
/ n0 r) Z6 U6 ]/ t! N8 s#profile) X  m+ r! C3 x5 B4 t/ @  p1 }
echo "ulimit -SHn 51200">>/etc/profile
# g) D2 C& a* X  S/ Wecho "TMOUT=6000" >>/etc/profile1 [' _# V8 S1 Y  j

2 \. }6 F# G( m#passwd8 T: {: B0 d$ Q9 Y' Y8 C
echo "admin"  | passwd root --stdin' L  |' X4 \) l- F; l; D5 D- P5 B* c2 v

' m9 H" ?" S6 B8 q: j. W#ssh login slowly
: e- w. {: x( ^+ t. csed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config2 S# E( Y, i  I+ W
sed -i "s/GSSAPICleanupCredentials yes/GSSAPICleanupCredentials no/" /etc/ssh/sshd_config
2 J& q& Z  c4 B, g9 ~0 a/etc/init.d/sshd restart% e& J3 S3 ~5 u6 d$ i
9 h/ X! D* e) J+ K8 Y  W: J& q( ~
rm -fr /tmp/*
( I. b# u2 t- ?2 i; n% r0 `%end
3 h' R7 g. |9 _3 S$ Y$ D' q
! M* J/ L+ Q0 _) x7 O. ?3 T6 g2.  yum install createrepo mkisofs isomd5sum squashfs-tools -y9 t+ E$ t- c% J! `$ q% J

- Z1 D5 l* d- @: W    mkdir /root/os* L4 d8 d* b* ^0 ]/ ?( ?* k1 R  _2 J
8 e7 e# c* \( t1 z
   将以os为iso制作目录.: @. S0 J- s- t: S( Q, M1 I

' D) c8 w7 q# S) v4 E$ B- Omount /etc/cdrom/   /media- z% l1 E/ G3 E

) o$ A2 J, V- v+ A& J: _- xrsync -a --exclude=Packages/ --exclude=repodata/ /media/   /root/os/* T+ K2 Y# ~: T$ l

! g7 R  p, J: ^mkdir -p /root/os/{Packages,repodata}0 R6 k. H0 `  [+ L. N  Y% N

1 F* \) V/ |2 S4 g3.拷贝mimi 包
  ?/ S, C, V  y4 @8 L$ R3 w) l5 a8 m% _4 V0 m! N& L
cd /root
; A. b' n6 G! s3 J: r, `- h
/ d3 z( W* }/ t1 h8 }& fcat install.log | grep -v "^*" |  awk '{print $2}' >package.txt
" L2 Z; G* I* d- l3 N1 k
) W6 I: c$ A/ W9 `, tfor i in $(cat package.txt); do cp /media/Packages/${i}* /root/os/ ; done
4 V' Z! W7 s$ \! G  A7 s- ]# k: }
9 U) t+ z! T. i& s) T# `, R$ Q4.创建光驱yum仓库.: {) I' x( m( h+ H1 k
& a2 {$ R( ?5 M$ t; l9 ^% \* p
cp /media/repodata/*c6-x86_64-comps.xml  /root/minimal-x86_64.xml/ h+ d: e3 T+ [9 @  x  v: m+ ], \

9 Q$ b) e: |$ [6 S) y* X5.重新生成repo  l) J. B0 N+ P/ O, ]# D$ C! W
1 Z8 L6 X+ A" h6 ?
  declare -x discinfo=$(head -1 /root/os/.discinfo
5 u1 p! \+ J  N7 T9 l: N
5 ]2 J5 W! r7 u4 n. s  createrepo -u "media://$discinfo" -g /root/minimal-x86_64.xml /root/os/
5 q% @. `: J9 `1 g/ j0 E- G
9 `, i/ _# h. K" q; ~7 P6.cp ks.cfg  /root/os/isolinux/    ; ]- Z8 }; p0 R4 I; [) D) |) G
/ W# n4 D7 B& W
   cat  /root/os/isolinux/isolinux.cfg 9 e! t- S4 D' ~& V0 i
. w, E5 E% R. ^* d$ U( U

1 Y0 u6 t" M7 V3 E9 q- W. c+ t) a' p2 ^9 d
default vesamenu.c32, L. @0 E8 Z6 f
#prompt 16 U2 L7 d' w  y8 I: `
timeout 100; ~2 S' T% v2 k9 A& A3 F8 |

3 d7 y; B. |8 o& s5 A, ~display boot.msg
+ M& p( S7 C4 y% Y4 j
! q; s* ?& k& _$ k  q- Pmenu background splash.jpg
! g, B9 k( @( m9 Q* B8 Nmenu title Welcome to CentOS 6.9!
1 s( C) q9 ~+ `3 h* ^0 ]  y3 wmenu color border 0 #ffffffff #000000007 s7 B, h, K& `8 R" U4 y  D
menu color sel 7 #ffffffff #ff000000
: @6 `$ q' K# emenu color title 0 #ffffffff #00000000
2 U: }1 H' T* M; a$ omenu color tabmsg 0 #ffffffff #00000000
" y% R/ y6 r4 q" I' ~" fmenu color unsel 0 #ffffffff #00000000' H$ |3 m: l& u$ E8 b
menu color hotsel 0 #ff000000 #ffffffff
  ]! v/ b6 u- F7 W( c8 Jmenu color hotkey 7 #ffffffff #ff000000
. l+ S0 |; I( e, w* `+ fmenu color scrollbar 0 #ffffffff #00000000
! P$ y6 U6 q, {3 c$ T9 ]$ h/ V, N$ b7 g  y
' n; z1 l8 C  E8 N% w4 _& [, v
label linux
  L/ i% v5 p+ U1 [1 Y& E! ]" w  menu label ^Install system  
  v6 e0 R- o2 [8 ?( h7 f- h  menu default
' O+ g8 i$ g& _/ j# n( A/ _2 F1 Y  kernel vmlinuz: g( m9 {; a1 `9 R0 P) `7 A9 I
  append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg, y8 U5 I3 y8 V/ V5 F5 e% J2 g! d" j

0 B9 m; R9 z6 R& |: M
1 J' N/ ?+ e6 y8 t6 ~, Q0 z, f) }# Y
7.制作iso
, j5 {3 @6 `5 V8 L! a3 w
9 M3 P9 x  a+ O8 fcd /root$ h8 a/ v8 G4 F. `, L6 A

. ]1 P6 v% q( m4 Ymkisofs -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/" p0 d9 R) }1 ]$ ^0 D

: F2 N, E3 ^/ C2 }3 l8 q: _1 w# L0 D  e$ S  T

2 T, F4 K& a% o  U, Q8.生成iso文件md5值
2 S+ ^2 \1 h, \5 Y3 S6 A) K3 L) x5 z. |
implantisomd5    OS-6.9_64.iso
0 `. t$ [6 S7 l! U' m; Z) s- K, a# R. B. \' L
9 h+ h! v, i6 b$ ~& s' ~, h4 N
1 U. ]1 o) `+ |3 Y

7 \, W* i; ^+ y% _* o( q  N: h* Q" G$ G  t& [
装系统测试^_^( A8 \2 c7 m' _; C2 c
& s/ P& u  }6 C7 O% Z3 ?* ~, i
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

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

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-9 01:04 , Processed in 0.058757 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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