製作自己定製的centos7安裝光盤、U盤

定製centos 7 鏡像
1. 下載最新centos 7 mini, 我下載的版本是CentOS-7-x86_64-Minimal-1908.iso。

2. 安裝系統(使用下載的iso)。

3. 生產install.log

#rpm -qa >> /root/install.log

清空ISO製作目錄裏的Packages和repodata兩個目錄裏的所有內容,並根據install.log將所需安裝包放入Packages文件夾內:

# awk '{print $2}'  /root/install.log |xargs -i cp /mnt/Packages/{}.rpm /root/PathISO/Packages/

 注:如果是手動生成的install.log,將'{print $2}' 改爲'{print $0}' 。

因爲需要自定製iso,需要預安裝其他的包,將解決好依賴關係的包全部放入/root/PathISO/Packages/中:

多數情況下我們會根據yum來下載安裝包,下面介紹兩種獲取下載安裝包的方法:

1.修改yum的配置文件,將yum下載的安裝包保存起來

#vim /etc/yum.conf

修改keepcache=1 (1爲保存,0爲不保存,默認是0)

修改後使用yum安裝的包會保存在“/var/cache/yum/”下。

2.通過yum指令的--downloadonly可以只下載安裝包,不進行安裝

#yum -y install --downloadonly --downloaddir=/root/test/ vim  wget net-tools

該指令我會將安裝的包統一放在/root/test/目錄下,yum update同樣可以使用該方法,這樣定製後的ISO中RPM包都是最新版本的。
注:這裏如果提前安裝了組件就不能下載安裝包了,所以 要先打開keepcache這個選項,依賴包要拷貝過去,我前面沒拷貝全vim的依賴包造成後面安裝的vim組件沒有安裝成功,也可能沒有寫全稱vim-enhanced這是vim的全稱

4. 掛載iso
#mount /dev/cdrom /media

注意:如果你想用Centos7.3的ISO進行掛載也是可以的

#mount -o loop /root/CentOS-7-x86_64-Minimal-1908.iso /mnt

#cp -r /mnt/* /root/PathISO/

#cp  /mnt/.discinfo /root/PathISO/

#cp  /mnt/.treeinfo /root/PathISO/

修改isolinux.cfg文件(文件位置:/root/PathISO/isolinux/isolinux.cfg

# Command prompt text
menu color cmdmark 0 #84b8ffff #00000000 none
menu color cmdline 0 #ffffffff #00000000 none

# Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message.

menu tabmsg Press Tab for full configuration options on menu items.

menu separator # insert an empty line
menu separator # insert an empty line

label linux
  menu label ^Install My Linux
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS7 ks=cdrom:/isolinux/ks.cfg

#append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg //適用於光盤製作

#append initrd=initrd.img inst.stage2=hd:LABEL=CentOS7 inst.ks=hd:LABEL=CentOS7:/isolinux/ks.cfg //適用與usb製作

label linux
  menu label ^Install CentOS 7
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS7 quiet

label check
  menu label Test this ^media & install CentOS 7
  menu default
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS7 rd.live.check quiet

 

cp /root/anaconda-ks.cfg /root/PathISO/isolinux/ks.cfg

編輯/root/PathISO/isolinux/ks.cfg

# Root password
rootpw --iscrypted $6$VrjQrY4WNa7cMc/m$k2tePtJU0N.0gcbG5XbP.X3KjQxXApRrue79XYyiKveZ3waOnIoJnSr/0y3AXZ.uqKhvL8VCDjRez4AGXiSXt1
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --all --initlabel --drives=sda

%packages
@^minimal
@core
@my linux
kexec-tools

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
 

修改comp.xml文件,定義RPM包組

cd /root/PathISO

cp  repodata/xxx-comps.xml ./comps.xml

編輯comps.xml文件,在第三行的<comps>之後,添加以下內容

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE comps PUBLIC "-//CentOS//DTD Comps info//EN" "comps.dtd">
<comps>
  <group>
   <id>my linux</id>
   <name>My Linux</name>
   <description>My Linux</description>
   <default>true</default>
   <uservisible>true</uservisible>
   <packagelist>
      <packagereq type="default">vim</packagereq>
      <packagereq type="default">wget</packagereq>
      <packagereq type="default">net-tools</packagereq>
   </packagelist>
  </group>

在最後一行的</comps>之前,添加以下內容

  <category>
   <id>tools</id>
   <name>tools</name>
   <description>tools Packages</description>
   <grouplist>
    <groupid>my linux</groupid>
   </grouplist>
  </category>

#cd PathISO

#createrepo -g comps.xml .

注:確認repodata目錄是新生成的目錄

製作ISO

#cd /root

genisoimage -joliet-long -V CentOS7 -o mylinux.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -cache-inodes -T -eltorito-alt-boot -e images/efiboot.img -no-emul-boot /root/PathISO/

或者

# mkisofs -o MyLinux.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/PathISO/

注:這裏生成會提示各種目錄或者路徑錯誤,需要仔細檢查多試幾次

要在efi啓動,需要添加如下參數:(這個後期再試驗)

-eltorito-alt-boot -b images/efiboot.img -no-emul-boot

#implantisomd5 mylinux.iso

生成你的光盤md5校驗碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章