注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
daicheng的个人空间 https://home.eeworld.com.cn/space-uid-78216.html [收藏] [复制] [分享] [RSS]
日志

定制自己的 linux 安装光盘

已有 4014 次阅读2010-8-20 16:05 |

上次有个网友问了这个问题于是自己也在网上找了很多资料,感觉重新做是有一定的难度,所以这个是以CentOS5 为基础做的下面是步骤:

一、   创建 /disk 目录

可以将解压好的centos镜像通过vmware拷贝进/disk目录

或者 将挂载关盘,再解压至 /disk

bash:

mount /dev/cdrom /mnt

cd /mnt

tar -cf - . | ( cd /disk ; tar -xvpf - )

umount  /dev/cdrom

cd /disk

二、   安装必要的软件包

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

三、   提取需要安装的软件包

bash:

cd /root

注:先打开install.log 查看内容,安装的RPM前是否有“Installing“如果为其它字符或者汉字将其替换。

cat install.log | grep Installing | sed ‘s/Installing //g’  | sed 's/^[0-9]\+://g'  \

 > packages.list

              cd /disk

              mv CentOS centrpm

              mkdir CentOS

             下面的脚本大家可以自己去写

              vi cprpm.sh

       -----------------------------------------------------

#!/bin/bash
DEBUG=0
ALL_RPMS_DIR=/disk/centrpm
DVD_RPMS_DIR=/disk/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* $DVD_RPMS_DIR/"
cp $ALL_RPMS_DIR/$name-$version* $DVD_RPMS_DIR/
# in case the copy failed
if [ $? -ne 0 ] ; then
echo "cp $ALL_RPMS_DIR/$name-$version* "
cp $ALL_RPMS_DIR/$name* $DVD_RPMS_DIR/
fi
fi
i=`expr $i + 1`
done

 

bash:

rm –rf centrpm

四、   生成repodata文件夹下comps.xml

bash:

createrepo –g repodata/comps.xml

五、建自动安装脚本kickstart
     如图:

六、 修改isolinux目录下isolinux.cfg

修改为

default auto

prompt 1

timeout 1

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 auto

  kernel vmlinuz

  append  ks=cdrom:/ks.cfg initrd=initrd.img  auto

label ks

  kernel vmlinuz

  append ks initrd=initrd.img

label local

  localboot 1

label memtest86

  kernel memtest

  append -

七、   生成iso文件

cd /disk

mkisofs -R -J -T -r -l -d -allow-multidot -allow-leading-dots -no-bak -o ../home/NewOS.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table

八、修改Anaconda 
Anaconda是Red Hat Linux和Fedora的安装管理程式。它以Python及C语言写成,以图形的PyGTK和文字的python-newt介面写成。它可以用来自动安装配置,使用户能够以最小的监督运行。 这个部分有兴趣的朋友 可以做一下!     

可以参考

javascript:;

javascript:;




kickstart

发表评论 评论 (1 个评论)
回复 mini2440 2011-1-15 20:00
谢谢

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章