定制linux版本,定制自己的linux发行版 精简centos

定制自己的linux发行版 精简centos

我已经参考本文制作成功了,那在这儿记录一下,希望大家也能打造自己的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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值