CentOS 环境一个
1 2 |
[ocloud@centos-linux ~]$ uname -a Linux centos-linux.shared 3.10.0-957.1.3.el7.x86_64 |
CentOS7 镜像一个
1 |
CentOS-7-x86_64-DVD-1810.iso |
1 |
[ocloud@centos-linux ~]$ sudo yum -y install createrepo mkisofs dosfstools syslinux |
CentOS-7-x86_64-DVD-1810.iso
到目录 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[ocloud@centos-linux ~]$ lsblk //查看磁盘设备,选择对应的光驱设备 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 64G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 63.5G 0 part ├─VolGroup-lv_root 253:0 0 50G 0 lvm / ├─VolGroup-lv_swap 253:1 0 2G 0 lvm [SWAP] └─VolGroup-lv_home 253:2 0 11.6G 0 lvm /home sr0 11:0 1 122.5M 0 rom sr1 11:1 1 4.3G 0 rom //这个即为挂载的CentOS-7-x86_64-DVD-1810.iso [ocloud@centos-linux ~]$ mkdir ~/originISO [ocloud@centos-linux ~]$ sudo mount /dev/sr1 ~/originISO [sudo] ocloud 的密码: mount: /dev/sr1 写保护,将以只读方式挂载 #如果不是通过光驱加载,则执行以下操作即可,和上面是同样的效果 [ocloud@centos-linux ~]$ sudo mount ~/CentOS-7-x86_64-DVD-1810.iso ~/originISO |
1 2 3 4 5 6 7 |
[ocloud@centos-linux ~]$ mkdir ~/customISO [ocloud@centos-linux ~]$ sudo cp -ar ~/originISO/* customISO/ [ocloud@centos-linux customISO]$ ls CentOS_BuildTag EFI EULA GPL images isolinux LiveOS Packages repodata RPM-GPG-KEY-CentOS-7 RPM-GPG-KEY-CentOS-Testing-7 TRANS.TBL #Packages目录是用来放rpm安装包 #isolinux 目录包含了启动相关的配置文件 |
rpm
包, 具体操作如下 1 2 3 4 5 6 7 8 9 |
# rpm安装有许多的依赖问题,但是我们可以通过yum获取到相关的依赖包 [ocloud@centos-linux ~]$ yum -h ... --downloadonly 仅下载而不更新 --downloaddir=DLDIR 指定一个其他文件夹用于保存软件包 ... #比如下载qemu-kvm相关的包 [ocloud@centos-linux ~]$ sudo yum -y --downloadonly --downloaddir="~/customISO/Packages" qemu-kvm qemu-kvm-tools qemu-img gpxe-roms-qemu qemu-guest-agent #这里直接包相关联的包下载到我们制作镜像的单独放rpm包的文件夹中 |
更新软件组的关联信息
由于我们添加了新的rpm包,因此需要更新软件组的关联信息,每次更新了rpm包就需要更新软件组的信息
1 2 3 4 5 6 |
[ocloud@centos-linux ~]$ cd ~/customISO [ocloud@centos-linux customISO]$ mv repodata/*comps.xml repodata/comps.xml #备份软件组的配置文件,其中包含了软件组元数据 [ocloud@centos-linux customISO]$ cd repodata/ [ocloud@centos-linux repodata]$ ls | grep -v comps.xml$|xargs rm #删除其他文件 [ocloud@centos-linux repodata]$ cd ../ [ocloud@centos-linux customISO] createrepo -g repodata/comps.xml /home/ocloud/customISO #重新生成软件组的数据信息 |
准备kickstart文件
推荐用来生成 Kickstart 文件的方法是在系统中首先执行一次手动安装。安装完成后,安装程序中的所有选择都会保存到名为
anaconda-ks.cfg
的文件中,该文件位于所安装系统的/root/
目录下。然后可以复制这个文件,根据需要进行修改,并在以后的安装中使用得到的配置文件。 —来自redhat官网内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# 这个文件是一个示例 install #表示是安装系统 cdrom #安装方式,这里是通过光驱 lang en_US.UTF-8 #设置语言 keyboard us #设置键盘 network --device eth0 --bootproto dhcp #设置网络 rootpw 4a7YAZQ1nvUHI --iscrypted #设置root密码,--iscrypted代表加密 --plaintext代表明文 firewall --service=ssh #指定ssh服务可以通过防火墙 authconfig --enableshadow --passalgo=sha512 --enablefingerprint #系统设置认证选项 selinux --enforcing #开启selinux timezone --utc Asia/Shanghai #设置时区 bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" #引导装载程序 zerombr #在使用之前初始化的磁盘的系统中执行自动安装时需要这个命令。 #磁盘分区 clearpart --all --drives=sda #EFIpart /boot/efi --fstype=efi --grow --maxsize=200 --size=20 part /boot --fstype=ext4 --size=500 part pv.raid01 --grow --size=1 volgroup VolGroup --pesize=4096 pv.raid01 logvol /home --fstype=ext4 --name=lv_home --vgname=VolGroup --grow --size=100 logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=51200 logvol swap --name=lv_swap --vgname=VolGroup --grow --size=1008 --maxsize=2016 text reboot #EFIbootloader --location=partition #OPT-6key --skip user --name=ocloud --password=4a7YAZQ1nvUHI --iscrypted --groups=wheel #添加用户 xconfig --startxonboot #安装所需要的软件包,把自定义的安装包添加进去即可在安装系统时自定义的软件 %packages --ignoremissing @base @core @debugging @basic-desktop @gnome-desktop @desktop-debugging @desktop-platform @directory-client @fonts @general-desktop @graphical-admin-tools @graphics @input-methods @java-platform @legacy-x @network-file-system-client @performance @perl-runtime @print-client @remote-desktop-clients @server-platform @virtualization @virtualization-client @virtualization-platform @x11 authconfig system-config-firewall-base mtools pax python-dmidecode oddjob sgpio genisoimage wodim abrt-gui certmonger pam_krb5 krb5-workstation nscd pam_ldap nss-pam-ldapd libXmu perl-DBD-SQLite python gcc make kernel-devel checkpolicy selinux-policy-devel %end #安装完系统后,需要做什么事情请写在%post里面 %post # Get interface up ifdown eth0 ifup eth0 /usr/bin/chfn -f 'demo' demo umount /dev/sr0 [ -e /tmp/sepolicy-devel.temp ] && rm /tmp/sepolicy-devel.temp echo "..." echo "setting network for openvswitch" scriptsUrl="/etc/sysconfig/network-scripts" if [ -e $scriptsUrl/ifcfg-eth0 ] then # disable NetworkManager systemctl disable NetworkManager # copy device eth0 configure to ovs-br0 cp $scriptsUrl/ifcfg-eth0 $scriptsUrl/ifcfg-br0 else echo "device eth0 configure isn't exist,please check it!" fi sleep 2 reboot %end |
将kickstart文件保存为ks.cfg
文件到~/customISO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[ocloud@centos-linux customISO]$ vi isolinux/isolinux.cfg ... label linux menu label ^Install CentOS 7 kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 quiet ... #将以上部分修改为以下内容,驱动进行安装 ... label linux menu label ^Install CentOS 7 kernel vmlinuz append initrd=initrd.img inst.ks=cdrom:/ks.cfg ... #使用USB进行安装修改为以下内容 ... label linux menu label ^Install CentOS 7 kernel vmlinuz append initrd=initrd.img inst.ks=hd:LABEL=CentOSx207x20x86_64:/ks.cfg ... |
1 2 |
[ocloud@centos-linux customISO] mkisofs -o /tmp/CentOS-7-x86_64-demo.iso -b isolinux/isolinux.bin -c isolinux/boot.cat --no-emul-boot --boot-load-size 4 --boot-info-table -J -R -V "CentOS 7 x86_64" . [ocloud@centos-linux customISO] isohybrid /tmp/CentOS-7-x86_64-demo.iso #使用mkisofs或genisoimage生成的ISO 9660镜像,以允许混合启动为CD-ROM或硬盘 |
将U盘插入系统
格式化U盘分区
1 2 3 4 5 6 7 8 |
[ocloud@centos-linux ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT ... sdb 8:16 1 14.3G 0 disk └─sdb4 8:20 1 14.3G 0 part #U盘分区 ... [ocloud@centos-linux ~]$ sudo mkfs.vfat -I /dev/sdb mkfs.fat 3.0.20 (12 Jun 2013) |
写入镜像
1 2 |
[ocloud@centos-linux ~]$ dd if=/tmp/CentOS-7-x86_64-demo.iso of=/dev/sdb [ocloud@centos-linux ~]$ exit #退出后拔掉U盘即可 |
完成以上步骤后,即可生成一个自己定制的CentOS7的系统,更多详情请参考参考链接,如果本文有任何问题请发Email。
kickstart