使用場景:
特殊業(yè)務場景里在沒有網(wǎng)絡智嚷,不能使用kickstart或cobbler自動化部署卖丸,只能用U盤或光驅(qū)。
CentOS7.x后用U盤刻錄會存在招不到盤的問題所以后面所有自定義命名的路徑大小寫一定要統(tǒng)一盏道。
制作場景:
由于我們要制作centos7系統(tǒng)的定制系統(tǒng)稍浆,所以我們要在centos7宿主機上進行。避免干擾猜嘱,提高成功的幾率
第一:準備完整的安裝鏡像CentOS-7-x86_64-DVD-1708.iso衅枫,掛載到虛擬機,并同時創(chuàng)建一個用于編輯存放的目錄centos7
mkdir -p /home/centos7
mount /dev/cdrom /mnt
cd /mnt && ls -l
#常見目錄用途說明
isolinux:存放光盤啟動時的安裝界面信息
images:包含了必要的啟動映像文件
Packages:存放安裝軟件包及信息
repodata:存放rpm包的依賴信息
.discinfo:此文件是安裝介質(zhì)的識別信息
第二:復制光盤文件到可編輯目錄centos7
cp -rf /mnt/* /home/centos7 #這種復制方法不會復制.開頭的隱藏文件
#.diskinfo文件需求單獨拷貝下: #可做可不做朗伶,這是一步無意義的操作
cp /mnt/.discinfo /home
第三:編輯響應文件ks.cfg文件(系統(tǒng)安裝的時候弦撩,按照ks.cfg文件的內(nèi)容進行安裝位置可以自定義下面自己注意路徑,我們把ks.cfg文件放到isolinux目錄下:)
cd /centos7/isolinux
vim ks.cfg
#version=RHEL/CentOS7 by?
install
# Reboot after installation
reboot --eject
# Run the Setup Agent on first boot
firstboot --enable
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang zh_CN.UTF-8
# Root password
#rootpw --iscrypted 123456
rootpw "password"
# System timezone
timezone Asia/Shanghai --isUtc
# Firewall configuration
firewall --enabled --service=ssh,ntp,http,https --port=55555
# Network information
network? --bootproto=dhcp --ipv6=auto --activate
network? --hostname=xlgcOS
# System authorization information
auth --useshadow? --passalgo=sha512
services --enabled="chronyd"
user --groups=wheel --name=xlgc --password=$6$g2oZK8SNS7Zluex.$0hgDTvLvcZq7hYMHfcJw4QfYQSWbpUO09MM1bGttMVSxV9WeGngnQUa3ZoJ5SbTavdTZHrXmuzoBtUoWgLOsu0 --iscrypted --gecos="xlgc"
# Use CDROM installation media
cdrom
# Use graphical install
graphical
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Clear the Master Boot Record
zerombr
# System bootloader configuration
part /boot --fstype="ext4" --size=1024
part swap --fstype="swap" --size=16384
part / --fstype="xfs" --grow --size=1
%packages
@^minimal
@core
-abrt-addon-ccpp
-abrt-addon-python
-abrt-cli
-abrt-console-notification
-bash-completion
-blktrace
-bridge-utils
-bzip2
-chrony
-cryptsetup
-dmraid
-dosfstools
-ethtool
-fprintd-pam
-gnupg2
-hunspell
-hunspell-en
-kmod-kvdo
-kpatch
-ledmon
-libaio
-libreport-plugin-mailx
-libstoragemgmt
-lvm2
-man-pages
-man-pages-overrides
-mdadm
-mlocate
-mtr
-nano
-ntpdate
-pinfo
-plymouth
-pm-utils
-rdate
-rfkill
-rng-tools
-rsync
-scl-utils
-setuptool
-smartmontools
-sos
-sssd-client
-strace
-sysstat
-systemtap-runtime
-tcpdump
-tcsh
-teamd
-time
-unzip
-usbutils
-vdo
-vim-enhanced
-virt-what
-wget
-which
-words
-xfsdump
-xz
-yum-langpacks
-yum-utils
-zip
-net-snmp
-net-snmp-utils
-net-tools.x86_64
%end
%post
echo "welcome">> /etc/motd
echo "Use of this product is subject to the license agreement found at /usr/share/centos-release/EULA" >> /etc/motd
/usr/local/bin/patch_fd_1024.sh 200000
sed -i '/^#Port/c Port 55555' /etc/ssh/sshd_config
sed -i '/^#PermitRootLogin/c PermitRootLogin yes' /etc/ssh/sshd_config
sed -i '/^#UseDNS/c UseDNS no' /etc/ssh/sshd_config
echo "blacklist ast" > /etc/modprobe.d/ast.conf
sed -i '/^ONBOOT/c ONBOOT=no' /etc/sysconfig/network-scripts/ifcfg-e*
sed -i '/password? ? requisite/c password? ? requisite? ? pam_cracklib.so retry=3 minlen=10 minclass=2' /etc/pam.d/system-auth
sed -i "/localhost/s;$; XlgcOS;g" /etc/hosts
echo "" > /etc/yum.repos.d/CentOS-Base.repo
echo "net.ipv4.tcp_fin_timeout = 3" >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
chage -d0 root
sudo chage -d0 xlgc
echo "LANG=en_US.utf8" >> /etc/locale.conf
rpm -e NetworkManager-tui
rpm -e NetworkManager-team
rpm -e NetworkManager-wifi
rpm -e NetworkManager
rpm -e NetworkManager-libnm
# 這里我直接啟動了SNMP功能
systemctl disable snmpd.service
EOF
mkinitrd -f /boot/initramfs-3.10.0-862.11.6.el7.x86_64.img 3.10.0-862.11.6.el7.x86_64
%end
第四:配置mbr引導方式
編輯isoliuux目錄下的isolinux.cfg文件论皆,添加自己的內(nèi)容益楼,在isolinux.cfg文件中l(wèi)abel linux下面添加自己的
vim /home/centos7/isolinux/isolinux.cfg
label auto menu label ^Auto install? CentOS 7.4
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS7 inst.ks=cdrom:/isolinux/ks.cfg quiet
或則
label auto menu label ^Auto install? CentOS 7.4
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS7??ks=CENTOS7?:/isolinux/ks.cfg quiet
#注意點:
#1)memu label 后面的內(nèi)容是在光盤引導起來菜單的內(nèi)容,^后面的字母是菜單的快捷鍵点晴;
#2)通過inst.ks關(guān)鍵字指明ks.cfg文件位置感凤;
#3)inst.stages2標識的是系統(tǒng)按照介質(zhì)位置,這里使用hd:LABEL表明尋找的是label為CENTOS7的安裝介質(zhì)粒督,使用LABEL關(guān)鍵字的好處是可以精確指定安裝介質(zhì)陪竿,為什么label是CENTOS7,是因為我在制作光盤鏡像的時候指定的坠陈,方法在后面有介紹萨惑。
第五:配置EFI引導方式(在此grub.cfg文件的適當位置,添加如下信息)
vim /home/centos7/EFI/BOOT/grub.cfg
menuentry 'Auto Install CentOS 7.6' --class fedora --class gnu-linux --class gnu --class os {? ? ? linuxefi /images/pxeboot/vmlinuz inst.ks=cdrom:/isolinux/ks.cfg inst.stage2=hd:LABEL=CENTOS7 quiet?
?initrdefi /images/pxeboot/initrd.img}
也可以這樣寫(注意全文黑體加粗的一定要一樣包括大小寫)
menuentry 'Auto Install CentOS 7.6' --class fedora --class gnu-linux --class gnu --class os {? ? ? linuxefi /images/pxeboot/vmlinuz? ?ks=CENTOS7?:/isolinux/ks.cfg inst.stage2=hd:LABEL=CENTOS7?quiet
?initrdefi /images/pxeboot/initrd.img}
第六:生成ISO鏡像
? ? ? cd /home/centos7? ? ? #先進入當前目錄? ? ? genisoimage -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 images/efiboot.img -no-emul-boot .
第七:導出剛才生成的鏡像(用瀏覽器打開http://ip:8000,將鏡像通過web下載下來)
? ? ? cd /home/centos7
? ? ? python -m SimpleHTTPServer? ? ? #使用python的http模塊仇矾,將其共享出來
第八:注意事項及genisoimage的用法
#1):制作centos7的鏡像時庸蔼,要使用centos7系統(tǒng)為宿主,不要使用centos6贮匕,因為兩者系統(tǒng)的genisoimage命令的版本不一樣姐仅,6的系統(tǒng)制作出來的iso不能在efi環(huán)境啟動;
#2):如果要在efi啟動,需要添加如下參數(shù):? ? ? -eltorito-alt-boot -bimages/efiboot.img -no-emul-boot
#3):通過-V參數(shù)指定光盤label
4):#genisoimage命令參數(shù)簡介? ? ??
?-o? ? ? 指定生成的映像文件保存路徑及名稱掏膏。? ? ??
?-b? ? ? 指定在制作可開機光盤時所需的開機映像文件劳翰。? ? ?
?-c? ? ? 制作可開機光盤時,會將開機映像文件中的no-eltorito-catalog全部內(nèi)容作成一個文件馒疹。? ? ??
-no-emul-boot? ? ? 非模擬模式啟動佳簸。? ? ??
?-boot-load-size 4? 設置載入部分的數(shù)量。? ? ??
?-boot-info-table? ? ? 在啟動的圖像中現(xiàn)實信息颖变。? ? ??
?-joliet-long? ? ? 使用 joliet 格式的目錄與文件名稱生均,長文件名支持。? ? ??
?-R 或 -rock? ? ? 使用 Rock RidgeExtensions 腥刹。? ? ??
?-J 或 -joliet? ? ? 使用 Joliet 格式的目錄與文件名稱马胧。? ? ??
?-v 或 -verbose? ? ? 執(zhí)行時顯示詳細的信息。? ? ??
?-T 或-translation-table? ? ? 建立文件名的轉(zhuǎn)換表衔峰,適用于不支持 Rock Ridge Extensions 的系統(tǒng)上佩脊。
聲明:本文轉(zhuǎn)載自 xiaoli110的博客,作者為 xiaoli110垫卤,原文網(wǎng)址:http://xiaoli110.blog.51cto.com/1724/1617541/