定制属于自己的turbolinux光盘

2015011201
这是在2003年暑期前想完成的任务,可是一直以来没有任何进展,自从看了
linuxhowto RedHat光盘制作过程,终于有点进展,google.com真是好东东顺便
google到一个日本的turbolinux爱好者,不错他的主页
http://www.ryouto.jp/linux/index2.html ;非常棒。好了那我们开始进程了
我的系统turbolinux 8 workstation
更新:2003年12月02日首稿
制作FTP版本的Turbolinux 8 workstation
参考Turbolinux Server 8 光盘制作
http://www.ryouto.jp/linux/linux_46.html

1。获得FTP版本的turbolinux 8 workstation拷贝
ftp://ftp.turbolinux.co.jp/pub/TurboLinux/TurboLinux/ia32/Workstation/8/install

下载该目录下的所有文件
以下是FTP版本的目录形式
|-dosutils 
|-LICENSE
|-turbo
   |-base
   |-RPMS
然后我们需要一些images文件
ftp://ftp.turbolinux.co.jp/pub/TurboLinux/TurboLinux/ia32/Workstation/8/updates/images/misc

在刚才下载的目录里建个images目录,将下载到的所有文件copy进来
|-dosutils
|-LICENSE
|-images
|-turbo
   |-base    
   |-RPMS
2.执行分割
我们已经拥有完整所需的所有文件,接着需要将文件分成2份光盘
[root@ /tmp]#mkdir -p /tmp/{cdrom1,cdrom2}/turbo/{base,RPMS}
即建立以下目录结构
/tmp-
|-cdrom1
|-turbo
|-base
|-RPMS
|-cdrom2
|-turbo
|-base
|-RPMS
将FTP下载来的所有文件拷贝到/tmp/cdrom1,然后执行
[root@ /tmp]#genhdlist /tmp/cdrom1/turbo
提示:genhdlist需要安装zabom zabom-devel两个包
引用:
选择安装树
请输入安装树路径
/tmp/cdrom1/turbo
确认
选择建立CDROM
确认
请输入树路径 Install CD2
/tmp/cdrom2/turbo
确认(你会看到一些需要移动的包,就是根据comps里的设置分割的)
继续
好了一切搞定

现在/tmp/cdrom2下是不是有东东了
3,制作可引导光盘
生成可引导启动的cdrom1,mkisofs的具体参数请大家执行mkisofs –help查阅
[root@ /tmp]#mkisofs -V TL8w_Disc1 -v -b images/boot-03031701.tl8w.img -c
boot.catalog -J -r -o cdrom1.iso /tmp/cdrom1
引用:

注意要特别注意-b参数-b images/boot-03031701.tl8w.img对应的完整路径应该是
/tmp/cdrom1+images/boot/03031701.tl8w.img
你要特别注意你的/tmp/cdrom1/images/boot/是否存在03031701.tl8w.img
错误的命令行--当使用如下命令时
[root@ /tmp]# mkisofs -V TL8w_Disc1 -v -b
/tmp/cdrom1/image/boot-03031701.tl8s.img -c boot.catalog -J -r -o
/tmp/cdrom1.iso /tmp/cdrom1
就会碰到
mkisofs: Uh oh, I cant find the boot image
‘/tmp/cdrom1/image/boot-03031701.tl8w.img’ !

接着生成cdrom2
[root@ /tmp]# mkisofs -V TL8w_Disc2 -v -J -r -o cdrom2.iso /tmp/cdrom2
搞定
2015011202
Linux光盘安装系统的分析
摘自 Linux发行版制作指南 by Coolee
原文链接
http://www.linuxaid.com.cn/articles/7/1/710687494.shtml
2.1对Linux光盘安装系统的分析
  ●结构部分
  在安装光盘中,主要的目录结构和文件大致如下:
  images/ 此目录下包含了制作启动盘的映像文件(文件后缀img),
  其中boot.img是当安装介质为CD-ROM时负责引导系统的映像文件
  bootnet.img是当安装介质为FTP,NFS等时负责引导系统的映像文件
  driver.img是由一些特殊设备驱动程序模块组成的映像文件,在当前内核不支持
这些设备的情况下,提供了对它们进行访问的一种方法
  其中,boot.img映像文件中主要包含以下文件:
  boot.img
  |—-vmlinuz Linux内核
  |—-ldlinux.sys 引导Linux的系统文件
  |—-syslinux.cfg Linux内核引导参数配置文件
  |—-initrd.img 内存虚拟文件系统映像文件
  |—-*.msg文件 引导时的各种提示信息文件
  其中,initrd.img为Linux ext2文件系统,构成如下:
  initrd.img
  |—-/bin
  |—-/dev
  |—-/etc
  |—-/module
  |—-/sbin —— loader
安装程序装载器
  |—-/tmp
  |—-/var
  可执行文件/sbin/loader的任务是判断安装介质的有效性,并从中执行安装程
序。
  其实正是boot.img,在系统启动时被执行,经解析之后在内存建立起了Linux内
核,并根据配置文件syslinux.cfg装载虚拟文件系统,形成了完整的Linux System,为
后续的工作提供了必要的操作系统环境。Boot.img映像的文件系统类型为msdos,而
其中的initrd.img映像的文件系统类型必为Linux系统自己的ext2,所以对于它们的解
析操作是不同的,具体请参考附录A 。
  RedHat/ 此目录是RedHat Linux发布的核心目录,主要的目录结构都在这里,其

  RPMS/ 包含了RedHat Linux发布的主要部分,即以RPM包的形式将Linux系统中
的二进制可执行文件,配置文件,文档等等组织在一起,形成能完成一定功能的比较
独立的软件包(文件后缀rpm)。这个目录就是把这些软件包都集合在一起,形成了
RedHat Linux发布。
  base/ 包含了在安装过程中要用到的描述组织结构和安装行为的所有文件,其中
comps,hdlist和hdlist2是描述RPM包组织结构的文件。
  comps 此文件把各个RPM包按一定的原则组织成若干组,即components,这样在
安装过程中就不必对每一个包做出取舍,而以组为单位。comps文件为简单文本格式
,它的结构如下所示:
引用:
  4 表示RPM包的版本号,当前为4
  1 base { }
   base是此component名,{…}中是此component中所包含的RPM包
    的名称列表,1表示在安装中默认为选中,即默认安装。
0 ?hide IDS sensor{
        snort
   libpcap
}
    表示IDS sensor组中包含有snort和lipcap这两个RPM包。0表示
    这个组在安装中默认为不选中即默认不安装,并且由—hide指出
    不在用户界面上显示此组。
  hdlist和hdlist2 这两个文件维护从RPM包名到真实包文件名的映射过程,例如从
snort这个RPM包名到真实包文件名snort-1.8.1-1.1.2.i386.rpm的映射。这两个文件是
用特殊的程序生成的,无法用简单的方法察看其中的内容和结构。具体的生成方法请
参考附录D。
  stage2.img , hdstg1.img , hdstg2.img , netstg1.img 和netstg2.img 是描述安装行
为的映像文件,其中
  stage2.img 是当安装介质为CD-ROM时的安装程序映像文件
  hdstg1.img 是当安装介质为HardDisk时的安装程序映像文件
  hdstg2.img 是当安装介质为HardDisk时的安装程序映像文件
  netstg1.img 是当安装介质为FTP,NFS时的安装程序映像文件
  netstg2.img 是当安装介质为FTP,NFS时的安装程序映像文件
Turbolinux comps文件分析
这个文件还有些参数不明,大家一起完善,不过那些部分看起来不是很重要




#########################

#########################


###################
定义该组名TurboTools option参数
base估计是默认安装option参数hide隐藏,
###################


</desc> fscfg 。。。
。。。
。。。 mongoose #######################
例子fscfg-1.2(大版本号)-20(小版本号).i586.rpm
定义该组需要安装的包列表ver设定大版本号(1.2)安装的包名fscfg
ver参数的设定还是需要的,比如RPMS目录下同时存在
fscfg-1.1-20.i586.rpm,fscfg-1.2-20.i586.rpm fscfg 如果像这样写的话,就默认把2个版本的包都安装上去(当然这
里只是个例子)
#######################



#######################
这里应该很熟悉了,就是让你选择默认安装的组
option参数隐藏,options参数default默认安装的组
#######################
</name>


</desc>

itype-minimum.png

TurboTools
#######################
将定义好的组写在这里
#######################
Extra fonts Korea

#######################
这里就是在该itype组的mini workstation的 里的分组未包含,但需要独
立安装的。注意这里的包必须在任一 里有定义,不然安装时是不会执行的
#######################
gdm
mozilla
rxvt
usermode


#######################
定义光盘的内容,这个就是让genhdlist分割光盘时调用文件列表用的
#######################

TurboTools

Perl modules
usermode

======================================================================
End of Comps file.
======================================================================

–>
更新包的方法及整合KDE 314
有了前面的基础知识,这一部分也就相对容易
我们要做的就是将RPMS目录下的KDE2版本的包用KDE314的包替换,更新base目录
下的comps文件和重新生成hdlist hdlist.gz,然后在安装测试过程中发现未完成的依赖
关系,重新更新comps hdlist hdlist.gz直到成功为止。更新FTP上的update目录下的新
版本也是如此
所以迹部分需要时间和耐心,
那我干嘛要浪费这么多时间做这种东东?因为它能节省硬盘空间,KDE系统比通过升
级更新速度更快,新的包安全或者别的更新,一劳永逸。习惯了永远保持最新
用你熟悉的文本编辑器打开原先的comps和KDE314光盘base目录下的comps(注意使
用utf8编码操作)。我们对较手工操行
2015011203
我们以更新art这个包为例子将KDE光盘的arts-1.1.4-1.i586.rpm复制到
/tmp/cdrom1/turbo/RPMS,然后将arts-2.2.2-16.i586.rpm删除
用kwrite文本编辑器打开原先的comps
1。第一步先设置编码为utf8,comps一定要用utf8编码处理,不然等会genhdlist不能
读取
在菜单查看/设置编码/统一码(utf8)
通过查找art将 arts 改为arts ver这个参数请看前面的介绍
保存一个一个对较改

有些包比如libart_lgpl在KDE2里并没有,但是KDE3里又需要
那么我们在这个组里添加

。。
。。 libart_lgpl 这个包KDE3需要的不然,startx就会提示缺少libar_lgpl.so
好了,全部搞定,保存comps在/tmp/cdrom1/turbo/base
2.使用genhdlist 重新生成hdlist hdlist.gz
[root@ /tmp]#genhdlist /tmp/cdrom1/turbo
引用:

安装树
请输入安装树路径
/tmp/cdrom1/turbo
选择建立hdlist
就会重新生成hdlist和hdlist.gz
然后选择
Check adjustment of comps and packages
如果你刚才没将原先的arts-2.2.2-16.i586.rpm删除
那么在Multipul packages里就会看到 有2个arts
2015011204
Multipul packages 存在同名文件,这里的同名是指rpm -qpi *.rpm查询获得的Name
:arts相同
Lost packages comps有描述而RPMS目录下没有该包
No comps packages 这个刚好相反,RPMS目录下有,而comps文件里却没有描述

确认是否还有包没有正确设定
2015011205
一切搞定,检验的方法还是只能通过安装系统来完成
添加SCIM输入法
让我们回想一下安装SCIM输入法的过程。
1.我们需要在SCIM的主页下载
scim-0.8.2-1ul1.i386.rpm
scim-chinese-0.2.6-1ul1.i386.rpm
scim-tables-zh-0.3.0-1.noarch.rpm
http://www.turbolinux.com.cn/~suzhe/scim/download.html
2.在turbolinux的CVS下载atk glib2 pango gtk2自己解决依赖pkgconfig>=0.15
http://pkgcvs.turbolinux.co.jp/cgi-bin/cvsweb.cgi/
3.然后还需要KDE314光盘的freetype2 freetype2-devel fontconfig fontconfig-devel
Xft Xft-devel
4.一份gcc3.2
ftp://ftp.turbolinux.co.jp/pub/TurboLinux/TurboLinux/ia32/Server/8/updates/RPMS
只要这几个就够了gcc3 libgcc3 libstdc++3

安装上述RPM以后,我们还需要修改/etc/X11/xinit/xinitrc屏蔽chinainput输入法添加
引用:
scim -d
export XMODIFIERS=”@im=SCIM”
##################################
第一步我们要找到chinainput属于哪个包,删除它并在comps里注释掉
引用:
[root@ root]rpm -qf /usr/bin/chinput
ZWinPro-3.3-9

重新生成xinitrc这个包
下载xinitrc-6.0-31.src.rpm
ftp://ftp.turbolinux.co.jp/pub/TurboLinux/TurboLinux/ia32/Workstation/8/source/SRPMS
注意要先安装rpm -ivh rpm-build-4.0.2-17.i586.rpm才能自己打包做RPM
引用:
[root@ root]rpm -ivh xinitrc-6.0-31.src.rpm
[root@ SOURCES]cd /var/src/rpm/SOURCES/
用你熟悉的编辑器将xinitrc修改成
#elif [ “${LANG%%.*}” = “zh_CN” ] || [ “${LANG%%.*}” = “zh_TW” ]; then
# if [ -x /usr/bin/chinput ]; then
# /usr/bin/chinput &
# export XMODIFIERS=”@im=Chinput”
#fi
elif [ “${LANG%%.*}” = “ko_KR” ]; then
if [ -x /usr/bin/ami ]; then
/usr/bin/ami &
export XMODIFIERS=”@im=Ami”
fi
fi
scim -d
export XMODIFIERS=”@im=SCIM”
[root@ SPECS]cd ../SPECS
重新打包
[root@ root]rpm -ba xinitrc.spec
然后将/var/src/rpm/RPMS/noarch/xinitrc-6.0-31.noarch.rpm复制到
/tmp/cdrom1/turbo/RPMS并覆盖原有文件
然后修改comps
[quote]
X Window中国?アプリケ?ション
Chinese language support and input methord.
scim scim-tables-zh scim-chinese atk pango gtk2 atk-devel pango-devel

我们自己生成一份自己的配置,我就从miniworkstation做参考
引用:

最小デスクトップ
最小工作站
This selection includes only minimum packages required for your
workstation system.

必要最小限のパッケ?ジで?成したTurbolinuxワ?クステ?
ションです。

此??只包含了使用工作站所需最少的套件
itype-minimum.png

TurboTools
System utilities
Network base
Network clients
X Window System
KDE common
Extra desktop enviroment
X Window apps Chinese
Extra fonts Chinese
XFree86-devel

freetype2-devel

fontconfig-devel

Xft-devel
glibc-devel
gcc3
libgcc3
libstdc++3




pkgconfig
glib2-devel





gdm
rxvt
usermode

pkglist的用法请大家参考turbolinux comps,gcc3.1已经用gcc3.2替换了,别的像
glib2,glib2-devel所以我就直接列表使用了,
一切搞定大家就可以生成ISO文件了,(谁能告诉我不解包就能直接安装ISO文件做
法)
迹篇文档越写越多,描述上越来越麻烦,不可能面面俱到,更多还要靠大家自己实践
那建议大家尝试的时候要有充分的时间,请记住comps文件一定要用utf8编码处理
,不然嘿嘿!!最好安装一次miniworkstation有解决RPM依赖的经验,做为新手看看
就好,以后有需要的时候再做自己的光盘。完
附录1 同步FTP镜像
将这段代码保存为mirror.tl8w
给它可执行属性chmod +x mirror.tl8w
然后在终端里执行 mirror.tl8w
就开始下载了,和FTP版本保持同步,如果你需要自己定制ISO的话,
这里下载的是FTP上的tl8w版本,如果大家要别的请自己更改远端路径
嘿嘿找了N久,原来linux下的mirror最简单,不过不知道该如何对付FTP上的符号链接
引用:
#!/bin/bash
MIRROR=”/usr/bin/mirror”
OPTS=”-n”
#-n测试结果 -d执行下载并输出结果
cat > mirror.tl8w << EOF #更多规则参考这里 #http://wwwtest.sunsite.org.uk/packages/mirror/mirror.html package=tl8w comment=tl8w_jp_ftp_ver #与FTP相关的 site=ftp.turbolinux.co.jp remote_user=anonymous remote_password=anonymous@anonymous.org #远端镜像目录 remote_dir=/pub/TurboLinux/TurboLinux/ia32/Workstation/8/install #本地镜像目录 local_dir=/turbo/install #档案复制 #若远端档案比近端的档案新的的话,下载回来 get_newer=true #如果两端大小不一样,下载远端 get_size_change=true #本地文件属性 user=0 group=0 file_mode=0444 dir_mode=0755 #同步镜像 #同步2端,如果本地存在远端不存在的文件则自动删除 #do_deletes=true #远端已经不存在的文档移到save_dir save_deletes=true #相对于local_dir实际路径为/turbo/install/tmp save_dir=tmp #更新日志记录 #相对于local_dir实际路径为/turbo/install/new_update_log update_log=new_update_log local_ignore=new_update_log EOF ${MIRROR} ${OPTS} mirror.tl8w 附录2 turbolinux镜像站点 http://www.turbolinux.co.jp/download/mirror.html ftp://ftp.turbolinux.co.jp ftp://ftp.turbolinux.com ftp://ftp.dti.ad.jp/pub/Linux/TurboLinux/ ftp://ftp.iij.ad.jp/pub/linux/TurboLinux/ ftp://ftp.kddlabs.co.jp/pub/Linux/packages/turbolinux/ ftp://mirror.nucba.ac.jp/mirror/TurboLinux-J/ ftp://ftp.nuie.nagoya-u.ac.jp/pub/Linux/TurboLinux/ ftp://ftp.st.ryukoku.ac.jp/pub/Linux/TurboLinux/ ftp://ftp.u-aizu.ac.jp/pub/os/Linux/TurboLinux/ ftp://ftp.jaist.ac.jp/os/linux/TurboLinux/ ftp://ftp.airnet.ne.jp/mirror/TurboLinux/ ftp://ftp.twin.ne.jp/pub/linux/TurboLinux/ ftp://ftp.denshi.ac.jp/pub/Linux/TurboLinux/

About: dato


发表评论

邮箱地址不会被公开。 必填项已用*标注