定製自己的linux發行版 精簡centos

來源:互聯網
上載者:User

我已經參考本文製作成功了,那在這兒記錄一下,希望大家也能打造自己的linux版本。。

工欲善其事,必先利其器。在製作發行版之前,需要安裝一些軟體,最簡單的方法當然是用CentOS的yum來安裝啦!
#yum -y install anaconda-runtime createrepo yum-utils anaconda anaconda-help busybox-anaconda mkisofs
 
工具安裝完成了,可以開始製作linux了。
 
要想做好一個機遇CentOS發行版的linux,繼續要安裝一次CentOS,安裝時,將必要的包選中,比如,base,develop-tools,text-internet等等,其他的,用不到的東西最好不要選,這樣做出來的系統,可以保證體積。
 
我是在vmware workstation上完成第一次CentOS安裝的。安裝完成之後,可以在/root/目錄下,找到anaconda-ks.cfg這個檔案,可以用cat命令看一下這個檔案的內容,就大體知道之前裝了那些軟體包了。
 
# cat anaconda-ks.cfg
# Kickstart file automatically generated by anaconda.
 
install
cdrom
lang en_US.UTF-8
keyboard us
network --device eth0 --bootproto dhcp
rootpw --iscrypted $1$mrG7rARX$2zkvd4WLl2Lh5sD9aNP5Q.
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --enforcing
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --all --drives=sda
#part /boot --fstype ext3 --size=100 --ondisk=sda
#part pv.2 --size=0 --grow --ondisk=sda
#volgroup VolGroup00 --pesize=32768 pv.2
#logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=1024 --grow --maxsize=2048
#logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
 
%packages
@development-libs
@editors
@text-internet
@legacy-network-server
@dialup
@core
@base
@network-server
@admin-tools
@development-tools
kexec-tools
device-mapper-multipath
imake
 
有了上述資訊,製作linux的時候就有底了。
 
在完成上述動作之後,我們可以在/目錄下建立一些目錄,用來存放linux發行版需要的檔案,比如,我將我的系統命名為RiceOS,則,我在/目錄下建立一個rice的目錄,用來存放linux發行版製作時需要的檔案。
 
p.s.這裡的系統因為可以算是再發行版了,所以,可以自己定義,不必死板。
 
#mkdir /rice
 
我們需要將CentOS的dvd光碟片掛載到linux上來,可以通過掛載光碟機,也可以通過掛載iso檔案,在掛載之前,我們先在/mnt/目錄下建立一個目錄,用來掛載。
 
#mkdir /mnt/cdrom
 
#mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom      //掛載光碟機
 
#mount -t iso9660 -o loop /xxx/CentOS-5.3-i386-bin-DVD.iso /mnt/cdrom      //掛載iso檔案,此處的xxx是CentOS-5.3-i386-bin-DVD.iso檔案所在的絕對路徑。
 
掛載完成之後,利用tar命令將光碟機中所有的檔案複製至/rice目錄:
 
#cd /mnt/cdrom
 
#tar -cf - . | ( cd /rice ; tar -xvpf - )
 
複製完成之後,進入rice目錄,ls -al一下:
 
# ls -al
 
drwxr-xr-x 7 root root    6144 03-21 23:05 .
drwxr-xr-x 4 root root    4096 08-12 22:03 ..
drwxr-xr-x 2 ossec ossec 407552 03-21 23:05 CentOS
-rw-r--r-- 1 root root     112 03-21 23:05 .discinfo
-rw-r--r-- 7 root root     212 2008-06-15 EULA
-rw-r--r-- 7 root root   18009 2008-06-15 GPL
drwxr-xr-x 4 root root    2048 03-21 23:04 images
drwxr-xr-x 2 root root    2048 03-21 22:46 isolinux
drwxr-xr-x 2 root root   12288 03-17 09:30 NOTES
-rw-r--r-- 2 root root     655 03-09 11:12 RELEASE-NOTES-cs
-rw-r--r-- 2 root root    1401 03-09 11:12 RELEASE-NOTES-cs.html
-rw-r--r-- 2 root root     839 03-09 11:12 RELEASE-NOTES-de
-rw-r--r-- 2 root root    1571 03-09 11:12 RELEASE-NOTES-de.html
-rw-r--r-- 2 root root     694 03-09 11:12 RELEASE-NOTES-en
-rw-r--r-- 2 root root    1367 03-09 11:12 RELEASE-NOTES-en.html
-rw-r--r-- 2 root root     694 03-09 11:12 RELEASE-NOTES-en_US
-rw-r--r-- 2 root root    1367 03-09 11:12 RELEASE-NOTES-en_US.html
-rw-r--r-- 2 root root     788 03-09 11:12 RELEASE-NOTES-es
-rw-r--r-- 2 root root    1619 03-09 11:12 RELEASE-NOTES-es.html
-rw-r--r-- 2 root root     852 03-09 11:12 RELEASE-NOTES-fr
-rw-r--r-- 2 root root    1641 03-09 11:12 RELEASE-NOTES-fr.html
-rw-r--r-- 2 root root     766 03-09 11:12 RELEASE-NOTES-ja
-rw-r--r-- 2 root root    1565 03-09 11:12 RELEASE-NOTES-ja.html
-rw-r--r-- 2 root root     706 03-09 11:12 RELEASE-NOTES-nl
-rw-r--r-- 2 root root    1433 03-09 11:12 RELEASE-NOTES-nl.html
-rw-r--r-- 2 root root     752 03-09 11:12 RELEASE-NOTES-pt_BR
-rw-r--r-- 2 root root    1480 03-09 11:12 RELEASE-NOTES-pt_BR.html
-rw-r--r-- 2 root root     801 03-09 11:12 RELEASE-NOTES-ro
-rw-r--r-- 2 root root    1473 03-09 11:12 RELEASE-NOTES-ro.html
drwxr-xr-x 2 root root    2048 03-21 22:35 repodata
-rw-r--r-- 7 root root    1512 2008-06-15 RPM-GPG-KEY-beta
-rw-r--r-- 2 root root    1504 2008-06-15 RPM-GPG-KEY-CentOS-5
-r--r--r-- 1 root root    7048 03-21 23:05 TRANS.TBL
-rw-r--r-- 2 root root     413 03-21 23:04 .treeinfo
 
這些檔案中,有需要的僅僅是顯示結果中標紅的檔案或者目錄,其餘可以全部刪除,順便說一下,在CentOS這個目錄下存放的是rpm包,在此處操作時,CentOS這個目錄下所有的內容刪除(CentOS這個目錄保留,之後有用)。
 
刪除一些不必要的檔案之後,再ls -al一下,看看/rice/目錄的結構:
 
#ls -al
 
drwxr-xr-x 2 ossec ossec 155648 09-03 01:44 CentOS
-rw-r--r-- 1 root root     112 03-21 23:05 .discinfo
drwxr-xr-x 4 root root    4096 03-21 23:04 images
drwxr-xr-x 2 root root    4096 09-03 19:51 isolinux
drwxr-xr-x 2 root root    4096 09-03 19:47 repodata
-rw-r--r-- 1 root root    1318 2009-09-04 TRANS.TBL
-rw-r--r-- 1 root root     413 03-21 23:04 .treeinfo
 
檔案這樣看起來就舒服多了。
 
在CentOS系統安裝完成之後,會將所有rpm包的安裝資訊記錄在/root/目錄下的install.log檔案中,我們可以將這個檔案輸出為我們想要的格式,在通過一些指令碼,將需要的rpm包複製到/rice/CentOS/目錄下。
 
#cd /root/
 
#cat install.log | grep Installing | sed s/Installing //g|sed s/^[0-9]+://g > packages.list //產生packages.list,以便之後複製rpm包。
 
建立自動提取相關rpm指令碼:
 
#vi cprpms.sh
 
#!/bin/bash
DEBUG=0
LT_CD=/mnt/cdrom
ALL_RPMS_DIR=/mnt/cdrom/CentOS #掛載光碟片存放的目錄
LT_RPMS_DIR=/rice/CentOS #存放RPM包的目錄
packages_list=/root/packages.list
number_of_packages=`cat $packages_list | wc -l`
i=1
while [ $i -le $number_of_packages ] ; do
line=`head -n $i $packages_list | tail -n -1`
name=`echo $line | awk {print $1}`
version=`echo $line | awk {print $3} | cut -f 2 -d :`
if [ $DEBUG -eq "1" ] ; then
echo $i: $line
echo $name
echo $version
fi
if [ $DEBUG -eq "1" ] ; then
ls $ALL_RPMS_DIR/$name-$version*
if [ $? -ne 0 ] ; then
echo "cp $ALL_RPMS_DIR/$name-$version* "
fi
else
echo "cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/"
cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/
# in case the copy failed
if [ $? -ne 0 ] ; then
echo "cp $ALL_RPMS_DIR/$name-$version* "
cp $ALL_RPMS_DIR/$name* $LT_RPMS_DIR/
fi
fi
i=`expr $i + 1`
 
done
 
執行以上指令碼將定製ltos必要的rpm

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.