定製自己的CentOS發行版

來源:互聯網
上載者:User

1案例描述

思路的起源來自兩個,一個是CactiEZ的安裝盤,感覺很牛X,起初沒考慮到自己定製;後來肖景海提出我們自己是否也可以發行我們自己的Linux,系統硬碟裡打包好了我們的程式,使用者拿到光碟片可以直接安裝,減去我們軟體的安裝過程。後來度娘了一下,發現可行。

2案例分析

整個過程基本分為,建立一個檔案夾,用於放置光碟片內容;然後根據要安裝的包進行提取;打包第三方軟體包,然後開始製作,詳細旅程請參考“解決過程”。

3解決過程3.1準備工作

根據我們生產環境,我們使用的linux是CentOS5.564位系統,我們這次文檔以生產環境為例進行操作。下面開始準備工作。

3.1.1準備環境和掛載鏡像

安裝一個CentOS5.564位系統,以該系統為環境來完成本次案例。將CentOS5.564鏡像檔案上傳到系統“/opt”下,然後將鏡像掛載在“/mnt/CentOS-5.5-x86_64”目錄下,用於配製yum源和提取製作光碟片需要檔案。

掛載操作,用vim編輯/etc/fstab檔案,在最後一行添加如下行:

/opt/CentOS-5.5-x86_64-bin-DVD-1of2.iso/mnt/CentOS-5.5-x86_64iso9660loop,defaults00

儲存fstab檔案,執行“mount-a”掛載光碟片,後續系統啟動會自動掛載光碟片。

3.1.2配置yum源及安裝需要軟體

配製yum源,安裝建立鏡像需要的軟體。

備份系統repo檔案,並建立自訂repo檔案,操作如下:

mkdir/etc/yum.repos.d/bak

mv/etc/yum.repos.d/*.repo/etc/yum.repos.d/bak/

touch/etc/yum.repos.d/myrepo.repo

在myrepo.repo檔案插入入如下內容:

[base]

name=CentOS-5.5-x86_64

baseurl=file:///mnt/CentOS-5.5-x86_64

gpgcheck=0

安裝需要的組件包createrepo:建立yum倉庫的軟體包的comps.xml檔案;mkisofs:建立ISO檔案):

yum-yinstallcreaterepomkisofs

3.2提取鏡像需要檔案和rpm包檔案3.2.1建立光碟片檔案夾及同步檔案

在/opt目錄下建立一個檔案夾“MyCentOS”用於存放產生光碟片檔案,然後從掛載目錄下同步檔案到光碟片目錄,操作如下:

rsync-av--exclude=CentOS/mnt/CentOS-5.5-x86_64//opt/MyCentOS/

然後刪除MyCentOS下不必要的檔案,並建立一個目錄CentOS用於存放rpm包,保留如下內容7個檔案或目錄):

#ll-a

total108

drwxr-xr-x6rootroot4096Jun2510:34.

drwxr-xr-x3rootroot4096Jun2509:24..

drwxr-xr-x2rootroot36864Jun2509:23CentOS

-rw-r--r--1rootroot106May42010.discinfo

drwxr-xr-x4rootroot4096May42010images

drwxr-xr-x2rootroot4096May42010isolinux

drwxr-xr-x2rootroot4096May62010repodata

-r--r--r--1rootroot7048May62010TRANS.TBL

-rw-r--r--1rootroot417Apr272010.treeinfo

3.2.2根據install.log檔案產生安裝檔案清單

install.log檔案是系統安裝時安裝包記錄檔,實際在使用時根據需要在安裝的系統中取得,命令如下:

cat/root/install.log|grepInstalling|awk'{print$2}'|awk-F':''{if(NF==2){print$2}else{print$1}}'>/opt/packages.list

3.2.3根據檔案清單到掛載光碟片中拷貝rpm包

根據檔案清單使用for語句將rpm拷入CentOS目錄,命令如下:

foriin`cat/opt/packages.list`;docp-pv-f/mnt/CentOS-5.5-x86_64/CentOS/"$i"*/opt/MyCentOS/CentOS/;done

3.3製作光碟片3.3.1更新安裝包的xml檔案

用createrepo程式更新repodata下的comps.xml檔案

createrepo-g/opt/MyCentOS/repodata/comps.xml/opt/MyCentOS/CentOS/

3.3.2建立自動化安裝的ks檔案

製作ks檔案,ks檔案根據實際安裝要求建立,一般可以使用Kickstartsystem-config-kickstart)程式來產生,也可以從root目錄下拷貝“anaconda-ks.cfg”系統安裝過程中自動產生)直接使用,本次直接使用root下檔案,拷貝檔案並改名:

cp/root/anaconda-ks.cfg/opt/MyCentOS/isolinux/ks.cfg

ks檔案需要將分區部分內容取消注釋後才可使用,修改後如下:

#Thefollowingisthepartitioninformationyourequested

#Notethatanypartitionsyoudeletedarenotexpressed

#heresounlessyouclearallpartitionsfirst,thisis

#notguaranteedtowork

clearpart--linux--drives=sda

part/boot--fstypeext3--size=100--ondisk=sda

partpv.2--size=0--grow--ondisk=sda

volgroupVolGroup00--pesize=32768pv.2

logvol/--fstypeext3--name=LogVol00--vgname=VolGroup00--size=1024--grow

logvolswap--fstypeswap--name=LogVol01--vgname=VolGroup00--size=1000--grow--maxsize=4000

為安裝過程不提示分區操作,需將“clearpart行改為如下內容:

clearpart--all–initlabel

在實際製作光碟片過程中,ks檔案的修改是關鍵,需要單獨研究一下才使用的比較順手,ks檔案可以使用“ksvalidator”命令來檢驗檔案是否有明顯語法錯誤。

3.3.3修改系統安裝方式

修改鏡像的預設安裝方式,實現自動化安裝,這裡,修改/opt/MyCentOS/isolinux/isolinux.cfg這個檔案,達到我們的目標,值得注意的是,isolinux.cfg檔案是唯讀,要想修改,需要為其賦予可寫入權限:

chmod+w/opt/MyCentOS/isolinux/isolinux.cfg

vim/opt/MyCentOS/isolinux/isolinux.cfg

修改如下內容:

default行:此處預設為linux,修改為ks,讓linux從ks這個指令碼啟動,修改後內容;

defaultks

timeout行:此處預設600,即等待一分鐘,改為6秒鐘,即60,修改後內容:

timeout60

“labelks部分內容的append內容,修改後內容:

appendks=cdrom:/isolinux/ks.cfginitrd=initrd.imgtext

儲存檔案,下面正式開始製作光碟片。

3.3.4產生ISO檔案

製作光碟片

mkisofs-R-J-T-r-l-d-allow-multidot-allow-leading-dots-no-bak-o/opt/MyCentOS-0.1-x64.iso-bisolinux/isolinux.bin-cisolinux/boot.cat-no-emul-boot-boot-load-size4-boot-info-table/opt/MyCentOS/

產生ISO檔案在/opt目錄下,然後可以安裝測試下實際效果。

4解決結果

很方便的製作自己需要的系統硬碟,系統安裝過程不需要人工幹預,把其他需要配置的地方一起做了,對後續使用方便很多。

5總結

在日常使用其他軟體時一般都會有些新的方法或思路,如果善於發現,積極實踐運用到我們日常營運中來還是很不錯的!

6參考:

定製自己的CentOS發行版:

http://www.osedu.net/article/linux/2012-05-30/407.html

定製CentOS6.0精簡的自動安裝版:

http://kerry.blog.51cto.com/172631/646549/

定製centos的製作:

http://blog.chinaunix.net/uid-9040470-id-1939673.html

參考:GUNcp與tar拷貝檔案速度比較

http://liuyu.blog.51cto.com/183345/150408

CentOS6.2X86_64系統定製文檔詳細版

http://www.osedu.net/article/linux/2012-05-30/411.html

本文出自 “706737” 部落格,謝絕轉載!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.