kickstart 打包iso步骤.记录

打包iso步骤

1、安装制作工具

安装anaconda、repodata、createrepo、mkisofs等工具,执行createrepo程序生成repodata下的comps.xml文件

yum -y install anaconda repodata createrepo mkisofs rsync

2、拷贝packages.log 为 install.log

cp /var/log/anaconda/packaging.log /root/install.log

    #如果没有该文件,可以手动生成(新安装的干净系统):

rpm -qa >> /root/install.log

awk '{print $2}'  /root/install.log |xargs -i cp /media/Packages/{}.rpm /root/iso/Packages/

    注:如果是手动生成的install.log,将'{print $2}' 改为'{print $0}' 。

2、挂载磁盘

mount /dev/cdrom /mnt/

如果是虚拟机,要勾选“已连接”,否则挂载失败

创建目录

mkdir -p /root/iso/{Packages,repodata}

3、查询install 中的rpm,并拷贝到Packages中

awk '/packaging/{print $4}' install.log | awk '/-/{print $1}' | sed 's/^.*://g'|xargs -i cp /mnt/Packages/{}.rpm /root/iso/Packages/



awk '/Installing/{print $3}' vim_install.log | awk '/-/{print $1}' | sed 's/^.*://g'|xargs -i cp /var/cache/yum/x86_64/7/{updates,base}/packages/{}.rpm /root/iso/Packages/

4、拷贝comps.xml

cp /mnt/repodata/*-comps.xml /root/iso/repodata/comps.xml

5、拷贝/mnt/cdrom中,除了Packages和repodata

/usr/bin/rsync -a --exclude=Packages/ --exclude=repodata/ /mnt/  /root/iso

6、将/root/anaconda-ks.cfg拷贝到/root/iso/isolinux/ks.cfg

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

并根据自己需要修改ks.cfg中内容

7、生成新的repodata

createrepo -g /root/iso/repodata/comps.xml  /root/iso

# 2020-12-17

# 生成iso命令

mkisofs -o CentOS-7.5_64-test.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/iso

F.A.Q

 问题一:kickstart repoerror insufficient space in download directory  /run/install/repo/Packages

原因:

重新生成repo

在CentOS下需要根据'.discinfo'来设置'baseurl'(declare -x discinfo=head -1 .discinfo; createrepo -u "media://$discinfo"...); 在CentOS7中不再需要如此做,实际上如果在CentOS7中执行了这个命令,在安装的过程中,可能会报错"RepoError after 10 retries: Insufficient space in download directory /run/install/repo/Packages"

在其他版本中可执行如下指令:

# declare -x discinfo=$(head -1 /root/iso/.discinfo)

# createrepo -u "media://$discinfo" -g /root/minimal-x86_64.xml /root/iso/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微软内部镜像封装工具:CDIMAGE_2.54 参数: CDIMAGE 2.46 CD-ROM and DVD-ROM Premastering Utility Copyright (C) Microsoft, 1993-2000. All rights reserved. For Microsoft internal use only. Usage: CDIMAGE [參數] 來源目錄 目標影像檔 -l 光碟標籤,不含空白鍵 (e.g. -lMYLABEL) -t 將所有檔案和目錄都設為同一日期,不含空白鍵和任何特殊符號 (e.g. -t12/31/2000,15:01:00) -g 將時間設為 GMT 時間而非本地時間 -h 包含隱藏檔和隱藏目錄 -n 允許長檔名 (超過 8.3 檔名) -nt 允許長檔名,但受限於 NT3.51 相容性 (-nt 和 -d 不可同時使用) -d 不強制將小寫檔名改為大寫檔名 -c 使用 ANSI 檔名以對應原始目錄中的 OEM 檔名 -j1 編碼為 Joliet Unicode 檔名並在 ISO-9660 名稱空間中產生相容於 DOS 的 8.3 檔名格式. (可在 Joliet 系統或其他一般的 ISO-9660 系統中被讀取, 但某些檔名在 ISO-9660 名稱空間中可能會被改變, 以遵守 DOS 8.3 與 ISO-9660 命名限制) -j2 編碼為 Joliet Unicode 檔名而不遵守 ISO-9660 檔名規則 (必須在 Joliet 作業系統從 CD 讀取檔案) 當使用 -j1 或 -j2 參數時, -n, -nt, 和 -d 參數無法生效 並且不可使用. -js 以 -j2 參數將影像檔中的非 Joliet 檔案 "readme.txt" 編碼. (e.g. -jsc:\location\readme.txt). 這樣可以讓這張光碟的這個唯一的檔案在不支援 Joliet 格式的系統中 (Windows 3.1, NT 3.x...等)被看見. -u1 編碼為 "UDF-Bridge" 媒體 -u2 編碼為 "UDF" 檔案系統而不對映 ISO-9660 檔案系統 (必須有 UDF 相容作業系統才可讀取檔案) -ur 以 -u2 參數將影像檔中的非 UDF 檔案 "readme.txt" 編碼. (e.g. -usc:\location\readme.txt). 這樣可以讓這張光碟的這個唯一的檔案在不支援 UDF 格式的系統中 被看見. -us 分散 UDF 檔案 -ue embed file data in UDF extent entry -uf embed UDF FID entries -uv UDF Video Zone compatibility enforced -b "El Torito" 開機區段檔案,不佔檔案空間 (e.g. -bc:\location\cdboot.bin) -p Platform ID for the "El Torito" boot catalog -e 在 El Torito 開機記錄中設置不模擬軟碟。 -s 在影像檔中加入數位簽章 (不佔空間, 必須提供 RPC 伺服器與終點名稱如下 -sServerName:EndPointName) -x 在影像檔中計算與編碼 "AutoCRC" 值 -o 處理重複檔名以將影像檔大小最佳化 (譯註:縮小影像檔容量,即本程式之精華所在) -oc 使用二進位比對代替 MD5 雜湊值, 這會以較慢的速度比對重複的檔案. -oi 比對檔案時忽略高度壓縮的時間戳記 -os 建立影像檔時顯示重複的檔名 (-o 等類似參數不可簡寫為 -ocis) -w 依照數字提供不同的警告等級 (e.g. -w4) 1 回報非 ISO 或非 Joliet 相容檔名或路徑 2 回報非 DOS 相容檔名 3 回報長度為零的檔案 4 回報每一個加入影像檔中的檔名 -y 依照數字提供不同的測試選項 (e.g. -y1),用於測試用途, 可產生不遵守 ISO-966
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值