春节繁忙于过节,而且节后一不小心生了场不大不小的病,唉这个病不是不小心就避免的,-过敏症,病的事情以后再说,接着说我的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 mkisofs
2、查看anaconda-ks.cfg文件,看看安装了什么东西
[root@centos ~]# more anaconda-ks.cfg
# Kickstart file automatically generated by anaconda.
install
cdrom
lang zh_CN.UTF-8
keyboard us
xconfig --startxonboot
network --device eth0 --bootproto static --ip 192.168.1.110 --netmask 255.255.25
5.0 --gateway 192.168.1.1 --nameserver 202.103.224.68 --hostname centos
rootpw --iscrypted $1$NUASfV6b$K2BNgfsGo9dn7CrPlHf54.
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 --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-x
keyutils
kexec-tools
tpm-tools
trousers
fipscheck
device-mapper-multipath
fuse-libs
fuse
lsscsi
lslk
audit
mc
iptraf
xorg-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/bash
DEBUG=0
LT_CD=/mnt/cdrom
ALL_RPMS_DIR=/media/CentOS_5.5_Final/CentOS
LT_RPMS_DIR=/home/lhlinux/CentOS/
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
系统减肥
找出占用空间前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.cfg
root@centos ~]# more nas.cfg
# Kickstart file automatically generated by anaconda.
install
cdrom
lang zh_CN.UTF-8
keyboard us
xconfig --startxonboot
network --device eth0 --bootproto static --ip 192.168.1.110 --netmask 255.255.25
5.0 --gateway 192.168.1.1 --nameserver 202.103.224.68 --hostname centos
rootpw --iscrypted $1$NUASfV6b$K2BNgfsGo9dn7CrPlHf54.
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --disabled
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 --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-x
keyutils
kexec-tools
tpm-tools
trousers
fipscheck
device-mapper-multipath
fuse-libs
fuse
lsscsi
lslk
audit
mc
iptraf
xorg-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.cfg
vi isolinux.cfg
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append initrd=initrd.img
label text
kernel vmlinuz
append initrd=initrd.img text
label nas
kernel vmlinuz
append nas=cdrom:/isolinux/nas.cfg initrd=initrd.img
label local
localboot 1
label 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下再创建一个虚拟机来测试一下安装, 呵呵测试修正错误,此处省略数千字.......^_^