免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1380 | 回复: 0
打印 上一主题 下一主题

基于FC5的只包含基本系统的安装光盘制作过程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-02 16:40 |只看该作者 |倒序浏览
基于FC5的只包含基本系统的安装光盘制作过程

因为教学需要,需要一个不包含桌面系统的Linux安装光盘。因为以前一直使用的是Redhat系列的Linux系统。通过搜索知道目前它的最新版本是Federa Core 5。于是就把它下载回来进行安装测试。有5张光盘,而我只想要其中最基本的系统,让学生掌握Linux的基本使用。为了节省时间,最好是让学生在尽量短的时间内完成系统的安装然后进行各种基本命令的练习。于是就有来将5张光盘浓缩成1张光盘的想法。在网上搜索来搜索去的,尽管发现一些资料,可都是基于Rh9.0和CentOS的,最新的有支持Fc2的。拿那个FC2的参考资料自己进行制作。经过反复摸索,终于成功。现将制作过程叙述如下,给有类似需要的同行们一个参考吧。

1、首先通过虚拟机(我使用的是vmware workstation 5.5.1 build-19175)来进行安装。在进行安装的时候,有些注意事项:
a、设置虚拟机的硬盘空间要大,我设置的是10G,当然,虚拟机的内存最好也是设置大点,我弄的是256M
b、在选择linux类型时,我选择的是RedHat EnterPrise Linux 4
c、在安装过程中,选择语言位简体中文,并在选择软件包的时候仅仅选择Base System中的Base和Editors中的vim-enhanced还有Servers中的vsftpd。

2、在系统安装完成以后,使用Fterm远程联入该linux系统。对系统作如下一些修改:
在/etc/fstab中,加入:
/dev/cdrom              /mnt/cdrom              udf,iso9660 noauto,owner,kudzu,ro 0 0
不明白为什么FC5不能使用mount加载光驱了,后来才发现fstab中缺少这么一行。
最好是mkdir /mnt/cdrom一下。
通过ntsysv将开机时候不需要的服务关掉。
修改完成后重新启动系统。

3、我的基本思想是一个刚刚装完的系统该是符合软件包的依赖关系的(我们都知道软件包的相互依赖关系最烦人了)。我就在那一张光盘上存放这些需要的软件包,其它的丢掉就可以了。

4、使用rpm -Va来检查刚装完的系统的软件包的依赖关系,然后通过光盘把相应的包给装上。这个过程持续到没有出现missing packages之类的提示信息为止。在我实际作的时候,需要安装的包也就一、两个而已。

5、
mkdir -p /Fedora/ONE_CD
#在虚拟机中光盘属性设置为5张光盘中的第一张光盘的ISO文件
mount /mnt/cdrom/
cp -a /mnt/cdrom/* /Fedora/ONE_CD/
cp /mnt/cdrom/.discinfo /Fedora/ONE_CD/
vi /Fedora/ONE_CD/.diskinfo

i386
1
Fedora/base
改成
i386
1,2,3,4,5
Fedora/base
这步非常关键,否则你的安装光盘弄好以后在进行测试的时候要提示你插入FC5的第2、3、4、5张光盘。我也是碰巧才发现这个东西的。然后先
######################################################
umount /mnt/cdrom
再在虚拟机中光盘属性设置为5张光盘中的第2张光盘的ISO文件
然后mount /mnt/cdrom
cp -a /mnt/cdrom/Fedora/RPMS/*.rpm /Fedora/ONE_CD/Fedora/RPMS/
######################################################
重复######################################################内包含的内容,将5张盘的软件包都集中到
/Fedora/ONE_CD/Fedora/RPMS/

在进行复制时会出现要不要将 TRANS.TBL 覆盖的信息,请输入 no.

6、cp /root/anaconda-ks.cfg /Fedora/ONE_CD/ks.cfg。

7、需要对/Fedora/ONE_CD/Fedora/RPMS/下的软件包进行筛选以移除那些我们不需要的软件包。
这里涉及两个脚本文件GetPkgs.py和removePkgs.py
网上提到的getGroupPkgs.py根本用不了。郁闷得很,大致看了看python的语法,将从网上获得的removePkgs.py作了些修改后变成来GetPkgs.py用来顶替getGroupPkgs.py这两个文件可从http://61.139.52.111:8000/ftproot/LinuxOs/那里进行获取。
我们假设将它们方在/Fedora/ONE_CD/目录中并将其执行chmod u+x *.py

8、
cd /Fedora/ONE_CD/
rpm -qa >rpms.txt
./GetPkgs.py rpms.txt >pkglist
./removePkgs.py pkglist /Fedora/ONE_CD/Fedora/RPMS/

9、
由於 removePkgs.py 並不能完全解決套件相依性之問題, 因此您必須還要花時間去處理相依性的問題, 執行下

列步驟以查看套件相依性:

cd /FC5/ONE_CD/Fedora/RPMS
mkdir /tmp/testdb
rpm --initdb --dbpath /tmp/testdb
rpm --test --dbpath /tmp/testdb -Uvh *.rpm

在执行rpm --test --dbpath /tmp/testdb -Uvh *.rpm的时候,会碰到一些莫名其妙的问题,我仅仅将我碰到的问题叙述并解决如下:
碰到的问题:
error: error reading from file kernel-2.6.15-1.2054_FC5.i686.rpm
解决办法:
将kernel-2.6.15-1.2054_FC5.i686.rpm文件从/FC5/ONE_CD/Fedora/RPMS目录暂时移动到/tmp下
等到rpm --test --dbpath /tmp/testdb -Uvh *.rpm完全通过以后再将其移回来。
当然,在执行rpm --test --dbpath /tmp/testdb -Uvh *.rpm这步时,会发现一些需要解决的依赖关系,你将

相应的软件包从FC5的光盘镜像文件中复制到/FC5/ONE_CD/Fedora/RPMS即可。
(可以mount /mnt/cdrom,然后cp进行拷贝)

10、终于要完成了哦。
vi /Fedora/ONE_CD/isolinux/isolinux.cfg将首行改成
default linux ks=cdrom:/ks.cfg

11、制作ISO文件
mkisofs -r -T -J -V "HongqtFC5" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /var/ftp/pub/FC5.iso /Fedora/ONE_CD

将最后制作的文件放到/var/ftp/pub/FC5.iso我们可以在启动vsftpd服务器后使用匿名进行下载。当然,你也可以上传到你的服务器上。

12、最后完善阶段
我们将自己制作的ISO文件在虚拟机中进行测试。在测试过程中进行安装那步也许会提示你在你制作的光盘上找不到某个软件包,没关系,通过UltraISO软件将相应的软件包增加到我们的ISO中即可,这样的步骤可能要重复几次哦,因为那个讨厌的软件包的依赖关系。

13、祝你好运

14、我制作的FC5.iso下载地址
http://61.139.52.111:8000/ourftp/LinuxOs/MyLinux/FC5.iso
该系统的管理帐号root的默认密码是52linux

15、该文章版权归作者和该网站所有。

有问题请mail:hongqt@lstc.edu.cn,欢迎探讨相关技术问题。

[ 本帖最后由 hongqt 于 2006-9-14 15:37 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP