春节繁忙于过节,而且节后一不小心生了场不大不小的病,唉这个病不是不小心就避免的,-过敏症,病的事情以后再说,接着说我的NAS的操作系统的事情,其实年前第一个马马虎虎的VMWARE上测试的版本已经做了出来,X-WINDOWS下NVDIA驱动存在一点问题,VMWARE和和真实的机器上还是有差异的,如果是我自己用,倒可以马虎一下,装好系统后yum或者手工升级一下nvdia的驱动,但是考虑要做一个正式的发布版本还是打算严谨一点。
下面将我精简centos的过程介绍一下,也许和你看到的互联网上的教材出入,但是这个我是测试过的,保证你一定能用的教程。呵呵,出了个小差,配置过程全部在家里,今天回来了,发上来给大家看看。
1、安装必要的工具查询rpm -qa|grep -E "anaconda-runtime|createrepo|yum-utils|anaconda|anaconda-help|busybox-anaconda|mkisofs"没有就安装yum -y install anaconda-runtime createrepo yum-utils anaconda anaconda-help busybox-anaconda mkisofs2、查看anaconda-ks.cfg文件,看看安装了什么东西[root@centos ~]# more anaconda-ks.cfg# Kickstart file automatically generated by anaconda.
installcdromlang zh_CN.UTF-8keyboard usxconfig --startxonbootnetwork --device eth0 --bootproto static --ip 192.168.1.110 --netmask 255.255.255.0 --gateway 192.168.1.1 --nameserver 202.103.224.68 --hostname centosrootpw --iscrypted $1$NUASfV6b$K2BNgfsGo9dn7CrPlHf54.firewall --enabled --port=22:tcpauthconfig --enableshadow --enablemd5selinux --enforcingtimezone --utc Asia/Shanghaibootloader --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 --linux#part / --fstype ext3 --size=100 --grow#part swap --size=100 --grow --maxsize=1536
%packages@admin-tools@base@chinese-support@core@ftp-server@gnome-desktop@legacy-network-server@server-cfg@sound-and-video@system-tools@web-server@smb-server@base-xkeyutilskexec-toolstpm-toolstrousersfipscheckdevice-mapper-multipathfuse-libsfuselsscsilslkauditmciptrafxorg-x11-server-Xnest-system-config-rootpassword-words-vconfig-nano-sendmail-pcmciautils-dos2unix-rp-pppoe-jwhois-smartmontools-talk-gnome-user-docs-gnome-themes-gimp-print-utils-orca-rwho-rusers-cdda2wav-cdparanoia-sound-juicer-rhythmbox-zsh-vnc-nmap-xdelta-openldap-clients-bluez-hcidump-tux-webalizer-php-ldap-squid-php-rhgb-synaptics-vnc-server@是一堆软件包组的定义,-表示不安装这个软件包
@的定义在
将虚拟机的光驱定义为centos的镜像文件,这时可以不必copy 巨大的CENTOS 安装盘到虚拟机上,直接使用挂接硬盘上的资源
挂载光驱mount -t iso9660 -o loop /dev/cdrom /mnt如果安装了autofs,缺省的时候会挂接到/media,我选择了自动挂接,呵呵工作要持续好久的,自动挂接方便
将install.log处理一下,安装的时间我选择了中文,导致在LINUX下处理很麻烦,无奈拖回WINDOWS本地,使用ulteredit处理一下,去掉中文字符“安装” “1:” “2:” “3:”“5:"...类似的行 后面几个应该是在不同运行状态下的需要安装安装包。传回/root目录改名为packages.list,注意确保 packages.list最后要有一个回车换行符,否则下面的脚本会有问题
创建一个工作目录mkdir /home/lhlinux将光盘的内容copy到我的工作目录下cp -r /media/CentOS_5.5_Final/* /home/lhlinux/删除一些没用的文件rm -rf RE*rm -rf NOTES/删除Centos目录下的所有安装包,呵呵我们要放精简后的内容rm -rf /home/lhlinux/CentOS/*
copy install.log里面必须的安装包到工作目录下的centos,套用前辈的成果
#vi cprpms.sh#!/bin/bashDEBUG=0LT_CD=/mnt/cdromALL_RPMS_DIR=/media/CentOS_5.5_Final/CentOSLT_RPMS_DIR=/home/lhlinux/CentOS/packages_list=/root/packages.listnumber_of_packages=`cat $packages_list | wc -l`i=1while [ $i -le $number_of_packages ] ; doline=`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" ] ; thenecho $i: $lineecho $nameecho $versionfiif [ $DEBUG -eq "1" ] ; thenls $ALL_RPMS_DIR/$name-$version*if [ $? -ne 0 ] ; thenecho "cp $ALL_RPMS_DIR/$name-$version* "fielseecho "cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/"cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/# in case the copy failedif [ $? -ne 0 ] ; thenecho "cp $ALL_RPMS_DIR/$name-$version* "cp $ALL_RPMS_DIR/$name* $LT_RPMS_DIR/fifii=`expr $i + 1`done 系统减肥
找出占用空间前150名的家伙rpm -q -a --qf "%{NAME} %{SOURCERPM} %{SIZE}/n"|sort -nr -k3|head -n150 >/tmp/lage.list 所有包的信息rpm -qai >/tmp/rpm.info研究不需要的包,漫长和痛苦的过程,回头我传一个附件给大家吧,有一点简单的说明,减肥300余MB。根据研究结果 删除不需要的包删除垃圾rpm包rm -f foomatic-3.0.2-38.3.el5*rm -f selinux-policy-2.4.6-279.el5*rm -f pidgin-2.6.6-1.el5*rm -f ghostscript-8.15.2-9.11.el5*rm -f gedit-2.16.0-9.el5*rm -f evolution-data-server-1.12.3-18.el5*rm -f libchewing-0.3.0-8.el5*rm -f cups-1.3.7-18.el5*rm -f poppler-0.5.4-4.4.el5_4.11*rm -f selinux-policy-2.4.6-279.el5*rm -f gthumb-2.7.8-8.el5*rm -f dejavu-lgc-fonts-2.10-1*rm -f groff-1.18.1.1-11.1*rm -f gnupg-1.4.5-14*rm -f gphoto2-2.2.0-3.el5*rm -f exim-4.63-5.el5*rm -f aspell-en-6.0-2.1*rm -f NetworkManager-0.7.0-10.el5*rm -f gnome-screensaver-2.16.1-8.el5*rm -f setools-3.0-3.el5*rm -f nss_ldap-253-25.el5*rm -f nss_ldap-253-25.el5*rm -f Deployment_Guide-5.2-11.el5.centos*rm -f ksh-20100202-1.el5*rm -f net-snmp-5.3.2.2-9.el5*rm -f nss-3.12.3.99.3-1.el5.centos.2*rm -f opensp-1.5.2-4*rm -f ncurses-5.5-24.20060715*rm -f aspell-0.60.3-7.1*rm -f ncurses-5.5-24.20060715*rm -f ntp-4.2.2p1-9.el5.centos.2.1*
回到我的发行版的根目录,生成新的文件库描述文件
createrepo -g repodata/comps.xml .注意这行后面有个点^_^
生成comps.xml之后,就可以编辑新的anaconda-ks.cfg脚本了,将这名改为nas.cfg
我的新的nas.cfgroot@centos ~]# more nas.cfg# Kickstart file automatically generated by anaconda.
installcdromlang zh_CN.UTF-8keyboard usxconfig --startxonbootnetwork --device eth0 --bootproto static --ip 192.168.1.110 --netmask 255.255.255.0 --gateway 192.168.1.1 --nameserver 202.103.224.68 --hostname centosrootpw --iscrypted $1$NUASfV6b$K2BNgfsGo9dn7CrPlHf54.firewall --enabled --port=22:tcpauthconfig --enableshadow --enablemd5selinux --disabledtimezone --utc Asia/Shanghaibootloader --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 --linux#part / --fstype ext3 --size=100 --grow#part swap --size=100 --grow --maxsize=1536
%packages@admin-tools@base@chinese-support@core@ftp-server@gnome-desktop@legacy-network-server@server-cfg@sound-and-video@system-tools@web-server@smb-server@base-xkeyutilskexec-toolstpm-toolstrousersfipscheckdevice-mapper-multipathfuse-libsfuselsscsilslkauditmciptrafxorg-x11-server-Xnest-system-config-rootpassword-words-vconfig-nano-sendmail-pcmciautils-dos2unix-rp-pppoe-jwhois-smartmontools-talk-gnome-user-docs-gnome-themes-gimp-print-utils-orca-rwho-rusers-cdda2wav-cdparanoia-sound-juicer-rhythmbox-zsh-vnc-nmap-xdelta-openldap-clients-bluez-hcidump-tux-webalizer-php-ldap-squid-php-rhgb-synaptics-vnc-server-foomatic-selinux-policy-targeted-libpurple-ghostscript-gedit-evolution-data-server-libchewing-cups-poppler-selinux-policy-gthumb-dejavu-lgc-fonts-groff-gnupg-gphoto2-exim-aspell-en-NetworkManager-gnome-screensaver-setools-nss_ldap-nss_ldap-Deployment_Guide-zh-TW-ksh-net-snmp-libs-nss-tools-opensp-ncurses-aspell-ncurses-ntp修改isolinux.cfg 让使用我们写的配置文件来启动chmod +w isolinux.cfgvi isolinux.cfg
prompt 1timeout 600display boot.msgF1 boot.msgF2 options.msgF3 general.msgF4 param.msgF5 rescue.msglabel linux kernel vmlinuz append initrd=initrd.imglabel text kernel vmlinuz append initrd=initrd.img textlabel nas kernel vmlinuz append nas=cdrom:/isolinux/nas.cfg initrd=initrd.imglabel local localboot 1label memtest86 kernel memtest append -
ok,现在可以使用mkisofs生成iso文件,回到发行版的根目录
mkisofs -R -J -T -r -l -d -allow-multidot -allow-leading-dots -no-bak -o /opt/iso/nasOS-0.01-x86_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .
等一会,ISO文件就OK了,激动吧,先看看大小,呵呵,不错不错才700多兆[root@centos iso]# ls -lh total 736M-rw-r--r-- 1 root root 735M Feb 24 07:38 nasOS-0.01-x86_64.iso
回到WINDOWS下再创建一个虚拟机来测试一下安装, 呵呵测试修正错误,此处省略数千字.......^_^
