日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[转]订制CentOS自安装光盘

發(fā)布時(shí)間:2023/12/15 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]订制CentOS自安装光盘 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文轉(zhuǎn)自:http://www.v2ns.cn/?post=62

?

參考了老曹的利用CentOS快速構(gòu)建自己的發(fā)行版 ,以自己的切身體會(huì),修改了kickstart腳本 文件 ,去除了全自動(dòng) 存在的問(wèn)題:不夠靈活,對(duì)于分區(qū)限制太死。
下載地址 : http://blog.freebsdsystem.org/LEMPOS/LEMPOS-0.1.3-i386.iso
下面摘錄了老曹的文章
一.制作 LEMPOS具體過(guò)程
光盤結(jié)構(gòu)介紹
* isolinux 目錄 存放光盤啟動(dòng)時(shí)的安裝界面信息
*images 目錄包括了必要的啟動(dòng)映像文件
*CentOS 目錄存放安裝軟件 包及信息
*.discinfo 文件是安裝價(jià)質(zhì)的識(shí)別信息
*lemp.tar.gz 文件存放系統(tǒng) 初始化及其相關(guān)程序安裝腳本 .
*AutoLEMP-0.1.2.tar.bz2 AutOLEMP程序
》》環(huán)境說(shuō)明: CentOS 5.3-i386 xen 上完成制作工作 .


1. 安裝制作發(fā)行版所需的基本軟件包
# yum -y install anaconda-runtime createrepo yum-utils anacondaanaconda-help busybox-anaconda mkisofs


2. 制作 LEMPOS 源文件夾
# mkdir /lempos
# 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 這個(gè)目錄下 .
#cd /ltos
//
進(jìn)入此目錄刪除一些無(wú)關(guān)的文件,仍后進(jìn)入后面的工作 .

[root@server LEMPOS]# ls -al
total 88

8 16:43 .discinfo

4096 Mar 21 23:04 images

4096 Apr 12 00:00 isolinux

1root root 14371 Apr 11 23:16 lemp.tar.gz //
這個(gè)軟件包是我們后面要建立的,讀者可以分析一下后面的 ks.cfg 腳本就可以明白他的用途 .
4096 Apr 11 21:00 repodata

7048 Mar 21 23:05 TRANS.TBL

AutoLEMP-0.1.2.tar.bz2



3. 定制 package.list 軟件包清單
如安裝一個(gè) CentOS5.3 的系統(tǒng),根據(jù)自己的需求選擇軟件包 ; 如果想你的系統(tǒng)很小,建議選擇最少的包。安裝完成以后,在系統(tǒng)里會(huì)產(chǎn)生日志 。日文文件存放在 /root/install.log
#pwd
/root
# cat install.log | grepInstalling | sed 's/Installing //g'|sed 's/^[0-9]/+://g' > packages.list
#mkdir /lempos/CentOS
建立存放 rpm 包的目錄 .

創(chuàng)建自動(dòng)提取相關(guān) rpm 腳本 :
#vi cprpms.sh
#!/bin/bash
DEBUG=0
LT_CD=/mnt/cdrom
ALL_RPMS_DIR=/mnt/cdrom/CentOS
#
掛載光盤存放的目錄
LT_RPMS_DIR=/lempos/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

執(zhí)行以上腳本將定制 ltos 必要的 rpm 復(fù)制到 /lempos/CentOS 目錄

返回到 /ltos 目錄下,執(zhí)行 createrepo 程序生成 repodata 下的 comps.xml 文件
#cd /lempos
#createrepo -g repodata/comps.xml .

4. 配置 kickstart 腳本

通過(guò) CentOS5.3 定制安裝系統(tǒng)以后,會(huì)在系統(tǒng)里站生一個(gè) kickstart 安裝腳本 (/root/anaconda-ks.cfg )
# cp anaconda-ks.cfg /lempos/isolinux/ks.cfg
# vi/ltos/isolinux/ks.cfg 并修改腳本如下 :

# Kickstart file automatically generated by anaconda.
install
text
cdrom
#lang en_US.UTF-8
#keyboard us
network --device eth0 --bootproto static --ip 192.168.1.17 --netmask 255.255.255.0 --gateway 192.168.1.1 --nameserver 202.102.154.3,202.102.152.3 --hostname autolemp
#rootpw --iscrypted $1$jPZf0P0r$JRe7pd.5wq9k.VZEMOgdq/
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone 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 /boot --fstype ext3 --size=100
#part swap --size=512 注釋掉,然后系統(tǒng)安裝時(shí)就會(huì)提示分區(qū)的
#part / --fstype ext3 --size=100 --grow


%packages
@editors
@text-internet
@core
@base
device-mapper-multipath
-acpid
-readahead
-aspell-en
-apmd
-aspell
-vconfig
-rsync
-autofs
-pcmciautils
-firstboot-tui
-cpuspeed
-NetworkManager
-tcpdump
-rsh
-nfs-utils
-smartmontools
-telnet
-bluez-utils
-usbutils

. #
# ------- 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
cp /mnt/cdrom/AutoLEMP-0.1.2.tar.bz2 /mnt/sysimage/tmp/AutoLEMP-0.1.2.tar.bz2 > /dev/null
rm -rf /mnt/sysimage/etc/issue
cd /mnt/sysimage/tmp/
tar -zxvf lemp.tar.gz > /dev/null
tar -jxvf AutoLEMP-0.1.2.tar.bz2 -C /mnt/sysimage/usr/local
# 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

rm -rf lemp.tar.gz && rm -rf boot && rm -rf etc
rm -rf AutoLEMP-0.1.2.tar.bz2
# Unmount 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 | sshd | syslog | local )
echo "Base services, Skip!"
;;
*)
echo "change $CURSRV to off"
chkconfig --level 235 $CURSRV off
service $CURSRV stop
;;
esac
done



. 個(gè)性化定制你的系統(tǒng)(問(wèn)答形式)

1. 如何定制安裝開機(jī)畫面 :
啟動(dòng)畫面用的是一種比較奇怪的格式 lss16 ,它限制圖片使用 16 種顏色,除去前景和背景色只能有 14 種顏色。我們需要 ppmtolss16giftopnm 等程序,系統(tǒng)一般默認(rèn)都安裝了。
一般用 gimp 生成一個(gè) index 模式的 gif 圖形,顏色限制為 14, 然后通過(guò)如下的辦法進(jìn)行轉(zhuǎn) :

安裝 yum -y install syslinux
giftopnm< splash.gif | ppmtolss16 > splash.lss

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

如何生成高質(zhì)量的圖。
先用 photoshop 打開任何一張圖片,然后在文件的下拉菜單里 , 保存的時(shí)候選擇“保存為 WEB 和設(shè)備使用格式 “,再然后選擇 gif 再選擇 16 保存就 OK.
仍后利用 giftopnm < splash.gif | ppmtolss16 >splash.lss 轉(zhuǎn)換即可 .

2. 如何生成 GRUP xpm 文件 ?
(1) 將備一張 640 x 480 16 色圖片,檔案類型為 JPG 的格式
(2)convert grub.gif-colors 14 -geometry 640x480! splash.xpm && gzip -9 splash.xpm.gz
(3) 直接替換 /boot/grup/splash.xpm.gz 文件即可 .

? 利用上面方法生成的圖片可能無(wú)法顯示,或者質(zhì)量不高,如何生成高質(zhì)量的 grub 圖片呢 .
利用文中后面我提供的 ltospackl.tar.gz 里面的 grubtool.exe 即可在 windows 平臺(tái) jpg,bmp 圖生成為 .xpm.gz 格式的文件,直接替換 /boot/grup 下的文件即可 .

2. 如何去掉安裝過(guò)程中的 CentOS 字樣?
在安裝光盤里面有兩個(gè) .buildstamp 文件,一個(gè)位于 stage2.img 中,一個(gè)位于 initrd.img 中,
安裝光盤運(yùn)行 時(shí)讀取的是 initrd.img 中的那個(gè) .buildstamp
文件,所以只要把 initrd.img 文件改了就可以了。
如何解壓 initr.dimg 文件 :
2.6 內(nèi)核 中的 initrd.img 采用 cpio 壓縮,不再是 2.4 內(nèi)核使用的 ext2 格式,無(wú)法使用 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 文件 :
# 假設(shè)當(dāng)前目錄位于準(zhǔn)備好的 initrd 文件系統(tǒng)的根目錄下
# find . | cpio -c -o >../initrd.img
# gzip ../initrd.img
# cp initrd.img /ltos/isolinux/

仍后將 initrd.img 復(fù)制到 /ltos/isolinux/

3. 如何替換安裝以后的 grub?
在安裝光盤里的 ks.cfg 文件里寫好替換 splash.xpm.gz 文件即可 .

4. 如何去掉啟動(dòng)過(guò)程中的 "CentOSrelease 5 (Final)"
在安裝光盤里的 ks.cfg 文件里寫好腳本,直接替換 /etc/redhat -release 即可 .

. 打包生成 ISO 文件發(fā)布
# cd /ltos
# declare -x discinfo=`head -1 .discinfo`

# createrepo -u "media://$discinfo" -grepodata/comps.xml .


生成 ISO 文件
#mkisofs -R -J -T -r -l -d -allow-multidot-allow-leading-dots -no-bak -o /tmp/LEMPOS-0.1.3-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/LEMPOS-0.1-i386.iso

附錄:lemp.tar.gz分解

解壓后,會(huì)發(fā)現(xiàn)存在 boot etc 兩個(gè)目錄,里面總共包括network、redhat-release、splash.xpm.gz
登陸界面就是在network這個(gè)系統(tǒng)腳本中,分別在55行,149 150 151代碼,因?yàn)?etc/issue本身不是腳本文件,可以用^[[32;1m這樣的代碼來(lái)實(shí)現(xiàn)彩色。更改自己需要的信息
相關(guān)腳本及制作工具 下載 :
http://www.linuxtone.org/project/ltos/ltospack.tar.gz

?


總結(jié)

以上是生活随笔為你收集整理的[转]订制CentOS自安装光盘的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。