成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

利用CentOS快速構建自己的發行版

系統 Linux
對于很多個人站長來說,每次業務擴容裝Linux系統都是件很麻煩的事情。有的IDC技術不會裝Linux系統,或者有的就是裝一次系統收取一定的費用。為此制作一個精簡的CentOS發行版是很重要的。

編者按:對于很多個人站長來說,每次業務擴容裝Linux系統都是件很麻煩的事情。有的IDC技術不會裝Linux系統,或者有的就是裝一次系統收取一定的費用。為此制作一個精簡的CentOS發行版是很重要的。下面就一起來看下具體制作過程吧。

一、制作LTOS具體過程

光盤結構介紹

* isolinux 目錄存放光盤啟動時的安裝界面信息

* images 目錄包括了必要的啟動映像文件

* CentOS 目錄存放安裝軟件包及信息

* .discinfo 文件是安裝價質的識別信息

* lemp.tar.gz 文件存放系統初始化及其相關程序安裝腳本.

》》環境說明:CentOS 5.3-i386 Vmware Workstation上完成制作工作.

1.安裝制作發行版所需的基本軟件包

# yum -y install anaconda-runtime createrepo yum-utils anaconda anaconda-help busybox-anaconda mkisofs

2.制作ltos源文件夾

# mkdir /ltos
# mkdir /mnt/cdrom
# mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom/ 掛載光盤鏡像
或者掛載ISO文件到/mnt/cdrom
# mount -t iso9660 -o loop centos.xxx.iso /mnt/cdrom 將CentOS的ISO文件掛載到/mnt/cdrom目錄
# cd /mnt/cdrom
# tar -cf - . | ( cd /ltos ; tar -xvpf - ) //將/mnt/cdrom里的文件利用tar全部拷貝到/ltsos這個目錄下.
#cd /ltos //進入此目錄刪除一些無關的文件,仍后進入后面的工作.
[root@server ltos]# ls -al
total 88
drwxr-xr-x 6 root root 4096 Apr 11 21:00 .
drwxr-xr-x 27 root root 4096 Apr 12 05:26 ..
drwxr-xr-x 2 root root 36864 Apr 8 16:06 CentOS
-rw-r--r-- 1 root root 97 Apr 8 16:43 .discinfo
drwxr-xr-x 4 root root 4096 Mar 21 23:04 images
drwxr-xr-x 2 root root 4096 Apr 12 00:00 isolinux
-rw-r--r-- 1 root root 14371 Apr 11 23:16 lemp.tar.gz //這個軟件包是我們后面要建立的,讀者可以分析一下后面的ks.cfg腳本就可以明白他的用途.
drwxr-xr-x 2 root root 4096 Apr 11 21:00 repodata
-r--r--r-- 1 root root 7048 Mar 21 23:05 TRANS.TBL

3.定制package.list軟件包清單

如安裝一個CentOS5.3的系統,根據自己的需求選擇軟件包;如果想你的系統很小,建議選擇最少的包。安裝完成以后,在系統里會產生日志。日文文件存放在/root/install.log。

# cat install.log | grep Installing | sed 's/Installing //g'|sed 's/^[0-9]\+://g' > packages.list
#mkdir /ltos/CentOS 建立存放rpm包的目錄.

創建自動提取相關rpm腳本:

#vi cprpms.sh
#!/bin/bash
DEBUG=0
LT_CD=/mnt/cdrom
ALL_RPMS_DIR=/mnt/cdrom/CentOS #掛載光盤存放的目錄
LT_RPMS_DIR=/ltos/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復制到/ltos/CentOS目錄

返回到/ltos目錄下,執行createrepo程序生成repodata下的comps.xml文件

#cd /ltos
#createrepo -g repodata/comps.xml .

4.配置kickstart腳本

通過CentOS5.3定制安裝系統以后,會在系統里產生一個kickstart安裝腳本(/root/anaconda-ks.cfg)

# cp anaconda-ks.cfg /ltos/isolinux/ks.cfg
# vi /ltos/isolinux/ks.cfg 并修改腳本如下:
# Kickstart file automatically generated by anaconda.
# Install CentOS instead of Upgrade
install
text
#install from cd-rom
cdrom
lang en_US.UTF-8
keyboard us
# Skip the X Configuration
skipx
network --device eth0 --bootproto dhcp --hostname ltos.linuxtone.org
rootpw --iscrypted $1$jPZf0P0r$JRe7pd.5wq9k.VZEMOgdq/
# Setup the firewall with SSH, HTTP/S, Syslog, Webmin, and Netflow enabled
firewall --enabled --port=22:tcp --port=69:udp --port=80:tcp --port=443:tcp
authconfig --enableshadow --enablemd5
# Disable SELinux
selinux --disabled
timezone --utc Asia/Shanghai
# Clear the Bootloader and load it to the Master Boot Record
bootloader --location=mbr
zerombr yes
# Set the Mouse
mouse generic3ps/2
# 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 --initlabel
part /boot --fstype ext3 --size=100 --asprimary
part / --fstype ext3 --size=25000
part swap --size=4096
part /data --fstype ext3 --size=1 --grow
#--- Reboot the host after installation is done
reboot
%packages
@development-libs
@editors
@system-tools
@text-internet
@legacy-network-server
@dialup
@core
@base
@mail-server
@development-tools
audit
net-snmp-utils
sysstat
iptraf
dstat
tftp
lynx
device-mapper-multipath
imake
-zsh
-vnc
-zisofs-tools
-xdelta
-openldap-clients
-samba-client
-fetchmail
-dovecot
-spamassassin
#
# ------- Begin LEMP Install ---------
#
%post --nochroot
# Mount CDROM
mkdir -p /mnt/cdrom
mount -r -t iso9660 /tmp/cdrom /mnt/cdrom
# Copy our tar file and extract it
cp /mnt/cdrom/lemp.tar.gz /mnt/sysimage/tmp/lemp.tar.gz > /dev/null
cd /mnt/sysimage/tmp/
tar -zxvf lemp.tar.gz > /dev/null
# Move the contents of the tar into their new locations
cp -R /mnt/sysimage/tmp/boot/* /mnt/sysimage/boot/ > /dev/null 2>/dev/null
cp -R /mnt/sysimage/tmp/etc/* /mnt/sysimage/etc/ > /dev/null 2>/dev/null
# Unmount CDROM
umount /mnt/cdrom
%post
#vim syntax on
sed -i "8 s/^/alias vi='vim'/" /root/.bashrc 2>/dev/null
echo 'syntax on' > /root/.vimrc 2>/dev/null
# Disable IPv6 until Cacti at least supports it
echo "alias net-pf-10 off" >> /etc/modprobe.conf
echo "alias ipv6 off" >> /etc/modprobe.conf
/sbin/chkconfig --level 35 ip6tables off
#init_ssh
ssh_cf="/etc/ssh/sshd_config"
sed -i -e '74 s/^/#/' -i -e '76 s/^/#/' $ssh_cf
sed -i "s/#UseDNS yes/UseDNS no/" $ssh_cf
#client
sed -i -e '44 s/^/#/' -i -e '48 s/^/#/' $ssh_cf
# Remove the ISO File translation files
find / -name TRANS.TBL -exec rm {} \; /dev/null 2>/dev/null
# Remove some unneeded services
#--------------------------------------------------------------------------------
cat << EOF
+--------------------------------------------------------------+
| === Welcome to Tunoff services === |
+--------------------------------------------------------------+
EOF
#---------------------------------------------------------------------------------
for i in `ls /etc/rc3.d/S*`
do
CURSRV=`echo $i|cut -c 15-`
echo $CURSRV
case $CURSRV in
crond | irqbalance | microcode_ctl | network | random | sendmail | sshd | syslog | local | mysqld )
echo "Base services, Skip!"
;;
*)
echo "change $CURSRV to off"
chkconfig --level 235 $CURSRV off
service $CURSRV stop
;;
esac
done
# file descriptors
ulimit -HSn 65535
echo -ne "
* soft nofile 65536
* hard nofile 65536
" >>/etc/security/limits.conf

5.讓系統從kickstart配置啟動

# vi /ltos/ isolinux/ isolinux.cfg
default auto
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 auto
kernel vmlinuz
append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img
label ks
kernel vmlinuz
append ks initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append -

#p#

二.個性化定制你的系統(問答形式)

1.如何定制安裝開機畫面:

啟動畫面用的是一種比較奇怪的格式lss16,它限制圖片使用16種顏色,除去前景和背景色只能有14種顏色。我們需要ppmtolss16 giftopnm等程序,系統一般默認都安裝了。

一般用gimp生成一個index模式的gif圖形,顏色限制為14, 然后通過如下的辦法進行轉:

安裝yum -y install syslinux

giftopnm < splash.gif | ppmtolss16 > splash.lss

另外你還需要修改isolinux/boot.msg文件,做一些個性化的提示.

?如何生成高質量的圖。

先用photoshop打開任何一張圖片,然后在文件的下拉菜單里,保存的時候選擇“保存為WEB和設備使用格式“,再然后選擇gif再選擇16色保存就OK.

仍后利用giftopnm < splash.gif | ppmtolss16 > splash.lss 轉換即可.

2.如何生成GRUP的xpm文件?

(1) 將備一張640 x 480 16色圖片,檔案類型為JPG的格式

(2)convert grub.gif -colors 14 -geometry 640x480! splash.xpm && gzip -9 splash.xpm

(3) 直接替換/boot/grup/splash.xpm.gz 文件即可.

? 利用上面方法生成的圖片可能無法顯示,或者質量不高,如何生成高質量的grub圖片呢.

利用文中后面我提供的ltospackl.tar.gz里面的grubtool.exe即可在windows平臺將jpg,bmp圖生成為.xpm.gz格式的文件,直接替換/boot/grup下的文件即可.

3.如何去掉安裝過程中的CentOS字樣?

在安裝光盤里面有兩個.buildstamp文件,一個位于stage2.img中,一個位于initrd.img中,

安裝光盤運行時讀取的是initrd.img中的那個.buildstamp文件,所以只要把initrd.img文件改了就可以了。

如何解壓initr.dimg文件:

2.6內核中的initrd.img采用cpio壓縮,不再是2.4內核使用的ext2格式,無法使用mount -o loop 掛載。需要使用gunzip解壓縮,然后再使用

利用cpio給img解包

# cd /ltos/isolinux/
# cp initrd.img /tmp/initrd.img.gz
# cd /tmp
# gunzip initrd.img.gz
# mkdir initrd
# mv initrd.img initrd
# cd initrd
# cpio -ivmd < initrd.img

仍后修改.buildstamp文件,將CentOS改為LTOS即可.

如何制作initrd.img文件:

#假設當前目錄位于準備好的initrd文件系統的根目錄下

# find . | cpio -c -o > ../initrd.img
# gzip ../initrd.img
# mv initrd.img.gz initrd.img
# cp initrd.img /ltos/isolinux/

仍后將initrd.img復制到/ltos/isolinux/

4. 如何替換安裝以后的grub ?

在安裝光盤里的ks.cfg文件里寫好替換splash.xpm.gz文件即可.

5. 如何去掉啟動過程中的"CentOS release 5 (Final)"

在安裝光盤里的ks.cfg文件里寫好腳本,直接替換/etc/redhat-release即可.#p#

三.打包生成ISO文件發布

# cd /ltos
# declare -x discinfo=`head -1 .discinfo`
# createrepo -u "media://$discinfo" -g repodata/comps.xml .

生成ISO文件

#mkisofs -R -J -T -r -l -d -allow-multidot -allow-leading-dots -no-bak -o /tmp/ltos-0.1-i386.iso \
-b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .

Md5

/usr/lib/anaconda-runtime/implantisomd5 /tmp/ltos-0.1-i386.iso

相關腳本及制作工具下載:

http://www.linuxtone.org/project/ltos/ltospack.tar.gz //相關腳本及工具下載.

四.安裝光盤效果演示圖

啟動安裝光盤

啟動安裝光盤

Grub界面

Grub界面

系統登陸界面演示

系統登陸界面演示

【編輯推薦】

  1. CentOS系統如何查看CPU
  2. 教程:在CentOS 5上安裝Git
  3. 如何在CentOS 5.5上安裝Kippo蜜罐
責任編輯:黃丹 來源: linuxtone.org
相關推薦

2011-09-09 10:49:18

2016-09-18 10:08:38

Linux發行版SUSE Studio

2009-12-21 16:27:55

2016-09-27 09:45:27

Linux發行版構建

2010-03-26 15:14:49

CentOS發行版

2010-10-14 14:31:31

Ubuntu發行版

2011-02-16 16:23:09

Debian發行版

2010-07-12 10:48:36

2023-03-10 10:47:06

Xubuntu發行版

2009-03-23 09:51:59

LinuxOracleRed Hat

2022-09-05 09:37:38

Linux發行版

2018-04-17 10:00:18

Linux發行版面向企業

2013-09-04 13:27:05

Linux發行版

2015-07-13 13:08:24

LFSLinux

2009-10-13 09:22:01

Linux發行版

2022-11-14 10:49:33

Linux發行版

2009-04-20 20:27:05

LinuxFreeNAS發行版

2009-04-10 14:32:13

LinuxSlax 6.1.0發行版

2021-09-06 11:29:59

LinuxCutefishOS操作系統

2013-12-10 21:23:07

開源Ubuntu
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 盗摄精品av一区二区三区 | 成年网站在线观看 | 久久中文字幕av | 看av片网站 | 成人一区二区三区在线观看 | 国产精品毛片一区二区在线看 | 国产真实乱全部视频 | 日韩手机在线视频 | 天天欧美 | 国产高清av免费观看 | 久久在线| 日韩中文字幕在线观看 | 日韩影院在线观看 | 日韩精品二区 | 日韩精品一区二区三区四区视频 | 在线中文字幕国产 | 免费v片| 亚州精品天堂中文字幕 | 国产一区二区欧美 | 精品国产一区二区三区在线观看 | 久久精品视频在线免费观看 | 国产激情自拍视频 | 81精品国产乱码久久久久久 | 一级免费视频 | 999免费视频| 成人午夜免费福利视频 | 国产羞羞视频在线观看 | 久久国产精品视频 | 1区2区视频 | 一级a性色生活片久久毛片 一级特黄a大片 | 一区二区成人 | 亚洲欧美日韩国产综合 | 在线a视频网站 | 黄色视频a级毛片 | 美女视频一区二区三区 | 午夜电影福利 | 成人av免费播放 | 久热久| 精品乱码一区二区 | 视频在线一区二区 | 成人亚洲片 |