定制 CentOS 7 全自动安装 ISO
Synopsis: Anaconda/Kickstart安装方式支持通过本地CD-ROM、本地磁盘、或者通过NFS、FTP、HTTP来进行自动化安装CentOS系统,由于有些场景需要使用U盘或光盘,快速安装定制后的CentOS,所以出现了本文的需求,裁剪官方CentOS-7.3安装ISO中的RPM软件包,只保留部分需要的安装包,然后封装Kickstart文件到新的ISO中,并将新的ISO文件刻录到U盘中,制作U盘启动盘,实现U盘自动安装系统
Linux系统自动部署系列:
- PXE+Kickstart实现全自动批量引导安装CentOS
- Cobbler实现多系统版本全自动批量部署
- 定制CentOS-7.3全自动安装ISO [current]
1. 分析ISO内部文件
1.1 .discinfo
此文件是在执行/usr/lib/anaconda-runtime/buildinstall
时生成,包含安装盘的识别信息,如果缺少此文件,将导致使用定制后的ISO安装系统时,在初始化过程中提示找不到光盘!
1.2 .treeinfo
记录不同的安装方式下,安装程序所在的目录结构
[root@CentOS cdrom]# cat .treeinfo [general] name = CentOS Linux-7 family = CentOS Linux timestamp = 1480944027.47 variant = version = 7 packagedir = arch = x86_64 [stage2] mainimage = LiveOS/squashfs.img [images-x86_64] kernel = images/pxeboot/vmlinuz initrd = images/pxeboot/initrd.img boot.iso = images/boot.iso [images-xen] kernel = images/pxeboot/vmlinuz initrd = images/pxeboot/initrd.img
1.3 images/
启动文件和驱动盘映像文件目录,最重要的是第二阶段的引导映像
[root@CentOS cdrom]# ls -al images/ total 6291 drwxr-xr-x. 3 root root 2048 Dec 5 2016 . drwxr-xr-x. 8 root root 2048 Dec 5 2016 .. -rw-r--r--. 1 root root 6434816 Dec 5 2016 efiboot.img drwxr-xr-x. 2 root root 2048 Dec 5 2016 pxeboot -r--r--r--. 1 root root 442 Dec 5 2016 TRANS.TBL
1.4 Packages/
二进制RPM安装包目录
1.5 repodata/
RPM安装包的描述文件,如依赖关系,包含文件,校验码信息
[root@CentOS cdrom]# ls -al repodata/ total 13695 drwxrwxr-x. 2 root root 4096 Dec 5 2016 . drwxr-xr-x. 8 root root 2048 Dec 5 2016 .. -rw-rw-r--. 1 root root 1495137 Dec 5 2016 5635df73647e7bb1ac9a289c27f3a84db1db2e33d3644bf506b85562c2a3d392-primary.xml.gz -rw-rw-r--. 1 root root 3103702 Dec 5 2016 6ec2bb89ebc4b716fe62ea930164b179f2cd90e1bdf1a504cdd7832153392b1e-filelists.sqlite.bz2 -rw-rw-r--. 1 root root 3069068 Dec 5 2016 889dab2d016c523397f24315cacb947484b06607924cc7e4716017842515df52-filelists.xml.gz -rw-rw-r--. 1 root root 971157 Dec 5 2016 8d04a279fb66b24cab67e8ebc33ef0ddb4fd7d37f9d9608585598a1b80138f53-other.xml.gz -rw-rw-r--. 1 root root 3122198 Dec 5 2016 b1b2cb9f67759ef5d143a211c2399d800fa58cf3ab12c205188e3c13d1b3d41d-primary.sqlite.bz2 -rw-rw-r--. 1 root root 159099 Dec 5 2016 c55e5b7bbe933fa8dac2cffca4596c265812b74ed12ef3968d487dd6eb22ad93-c7-x86_64-comps.xml.gz -rw-rw-r--. 1 root root 748686 Dec 5 2016 d918936f5019be3fb66e9981a28cb2a41477a2963d741d454f79377a22214f43-c7-x86_64-comps.xml -rw-rw-r--. 1 root root 1339096 Dec 5 2016 e4e51f819c9dfc35ad68a2745f1e39020d003741cbb1346d93f776d13e44351c-other.sqlite.bz2 -rw-rw-r--. 1 root root 3732 Dec 5 2016 repomd.xml -r--r--r--. 1 root root 2575 Dec 5 2016 TRANS.TBL
1.6 isolinux/
[root@CentOS cdrom]# ls -al isolinux/ total 47996 drwxr-xr-x. 2 root root 2048 Dec 5 2016 . drwxr-xr-x. 8 root root 2048 Dec 5 2016 .. -r--r--r--. 1 root root 2048 Dec 5 2016 boot.cat -rw-r--r--. 1 root root 84 Dec 5 2016 boot.msg -rw-r--r--. 1 root root 293 Dec 5 2016 grub.conf -rw-r--r--. 1 root root 43372552 Dec 5 2016 initrd.img -rw-r--r--. 1 root root 24576 Dec 5 2016 isolinux.bin -rw-r--r--. 1 root root 3068 Dec 5 2016 isolinux.cfg -rw-r--r--. 1 root root 190896 Nov 6 2016 memtest -rw-r--r--. 1 root root 186 Oct 1 2015 splash.png -r--r--r--. 1 root root 2215 Dec 5 2016 TRANS.TBL -rw-r--r--. 1 root root 152976 Nov 6 2016 vesamenu.c32 -rwxr-xr-x. 1 root root 5392080 Nov 23 2016 vmlinuz
(1) vmlinuz
vmlinuz是vmlinux 经过gzip和objcopy制作出来的压缩文件,vmlinuz是一种统称,有两种具体的表现形式zImage 和bzImage。zImage和bzImage的区别在于本身的大小,以及加载到内存时的地址不同,zImage在0~640KB,而bzImage则在1M以上的位置。
[root@CentOS isolinux]# file vmlinuz vmlinuz: Linux kernel x86 boot executable bzImage, version 3.10.0-514.el7.x86_64 (builder@kbuilder.dev.centos.org) #1 SMP , RO-rootFS, swap_dev 0x5, Normal VGA
(2) initrd.img
In computing, initrd
(initial ramdisk) is a scheme for loading a temporary root file system
into memory, which may be used as part of the Linux startup process. initrd
and initramfs
refer to two different methods of achieving this. Both are commonly used to make preparations before the real root file system
can be mounted.
(3) isolinux.bin
非模拟模式下的启动引导程序,当使用mkisofs命令时,-b参数需要指向它
(4) isolinux.cfg
启动菜单(Boot Menu)配置文件
2. 先进行一次图形化定制安装
首先,一般我们需要通过虚拟机,挂载原版ISO文件,用图形化手动安装一遍CentOS-7.3。假设我们将来要部署的服务器,需要选择Basic Web Server
并勾选了Java Platform
和Python
,通过图形化安装一遍后,我们就可以实现定制后的ISO文件内只包含这些RPM包,整个镜像文件大小将只有几百兆。
3. 拷贝文件
当我们通过图形化安装完系统后,以下步骤均在刚安装好的CentOS系统内进行
3.1 挂载原版ISO
# mkdir /mnt/cdrom # mount -o loop,ro -t iso9660 CentOS-7-x86_64-DVD-1511.iso /mnt/cdrom 或者: # mount /dev/cdrom /mnt/cdrom
0 条评论
评论者的用户名
评论时间暂时还没有评论.