GNU/Linux开源,这个意义实在是非常的广泛,目前在distrowatch上表现活跃的300个发行版代表了GNU/Linux的主流,然而细心的Linux爱好者会发现CentOS-based distribution designed 、based on Slackware Linux、a distribution built from source software packages for Red Hat Enterprise Linux、a user-friendly Ubuntu-based distribution、an Debian-based distribution等关键词汇,目前大多数的发行版基本上都是源于Redhat、Debian/Ubuntu, Suse, Slackware等版本的衍生态,而构建Based Distribution的目的有很多,不乏有技术交流、功能完善、以及管理、更新Bug软件包等需求,同样这些Based Distribution也为Linux爱好者构建自己的Linux发行版本提供了很好的参照。本文作为独辟蹊径的系列文章,将带领大家初探基于Cenotos 5.2的Linux发行版构建方式,为进一步深入研究提供一个基础。 要实现基于Centos的Linux发行版本的构建,首先需要了解一下Linux启动过程以及Linux启动文件相关的了解,同时要对Linux发行版本的光盘结构以及软件包的结构进行了解分析。从主机加电到系统服务加载运行,Linux的启动(Linux安装的过程雷同)大致需要经历如下的过程:
# Kickstart file automatically generated by anaconda.
install cdrom lang en_US.UTF-8 keyboard us network --device eth0 --bootproto static --ip 172.16.1.148 --netmask 255.255.0.0 --gateway 172.16.1.9 --nameserver 172.16.1.9 --hostname trs.lvs.local reboot rootpw --iscrypted $1$t5sWRB7u$MJAcDD0IBMivcTMP65YBC. 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 zerombr yes 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=1000 --grow --maxsize=1984 logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
%packages @editors @text-internet @core @base @development-libs @development-tools device-mapper-multipath -sysreport %post mount /dev/cdrom /mnt cp -rf /mnt/lvsheat /usr/local/src cd /usr/local/src/lvsheat tar zxvf lzo-2.03.tar.gz -C /usr/src cd /usr/src/lzo-2.03 ./configure && make && make install cd - tar zxvf openvpn-2.0.9.tar.gz -C /usr/src cd /usr/src/openvpn-2.0.9 ./configure && make && make install