免费注册 查看新帖 |

Chinaunix

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

[OpenBSD] 定制OpenBSD的ISO [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-05 11:43 |只看该作者 |倒序浏览
由于OpenBSD官方未提供ISO,所以很多网友除了下载别人做的ISO外,只能自己定制。
虽然麻烦了点,但定制ISO可以让你真正领略到OpenBSD的“小即是美”的强大魅力,这点
上OpenBSD倒把我们兴趣给提起来了,害得我花了好久研究怎么彻底做个适合自己使用的
ISO,呵呵。
    OpenBSD FTP的3.8/i386目录里提供了一个可启动的ISO,叫做cd38.iso,但这个只
能做启动用,里面除了一个RAMDISK的Kernel外,没别的有用的东西。在这里我们就拿这
个文件开刀,在Windows下把它做成适合我们自己使用的定制过的ISO。
    首先下载这个cd38.iso,然后准备好UltraISO——一个制作和编辑ISO文件的工具。
用UltraISO打开这个cd38.iso,可以看到里面的目录树如下:

OpenBSD/i386    3.8 boot-only CD
│  TRANS.TBL

├─3.8
│  │  TRANS.TBL
│  │
│  └─i386
│          boot.catalog
│          bsd.rd
│          cdboot
│          cdbr
│          TRANS.TBL

└─etc
        boot.conf
        TRANS.TBL

首先我来讲讲这几个文件都有什么用。

TRANS.TBL     这个文件是传统的光盘映射用的,它把每个目录下的原始文件映射为
              cd9600格式的文件名。由于在这里没有这个文件也没什么事,我就把
              它删除了,如果你不放心,保留也没什么大碍。

boot.catalog  这个文件我用UltraEdit打开看了看,只有一个copyright的信息,没
              什么用,也直接删除了。

bsd.rd        这个是用光驱引导的时候启动的一个RAMDISK的Kernel,也就是说你用
              光驱启动的时候运行的是这个内核,当你安装好后运行的是bsd内核,
              但bsd内核在这个cd38.iso里没有提供。如果你要光盘安装,就一定要
              这个文件。这个内核内含安装时所需要的可执行代码。

cdboot        这个是由光盘引导程序直接引导的文件,用来加载内核。它运行的时
              候,会提示boot>,如果你几秒钟内没动,它就会自动加载/3.8/i386/
              bsd.rd,而如果你在光盘的这个目录下没有bsd.rd这个文件,它就会
              尝试bsd.old内核文件,如果还没有,它就尝试obsd这个内核文件,如
              果还是没有……它就一直重复,我狂汗。当然,你可以在开始那几秒
              钟里手动填入自己想引导的内核,来把它中断。它默认是按上面说的
              那个路径寻找内核的,这个路径通过/etc/boot.conf来设定。知道了
              这点后,我们就来解决它!由于我不喜欢在光盘根目录下看到/etc目
              录,所以我直接把/etc目录干掉,这样boot.conf文件自然也没了,
              本来以为cdboot就不知道该在哪找bsd.rd了,结果这家伙居然还知道
              应该在/3.8/i386/bsd.rd处找,我再ft!看来它是把这个目录写进文
              件本身了,我用UltraEdit打开它看了看,果然找到一段文字:
              ./3.8/i386/bsd.rd./bsd./obsd./bsd.old
              由此看来,它一直循环查找这4个路径,这下好办了,你可以修改这个
              文件,改成你自己喜欢的,不过我没试成功,因为对改这个没经验…
              所以,就暂时老实些,把bsd.rd放到/3.8/i386/bsd.rd去吧,呵呵。

cdbr          这个文件存放的是光盘的引导信息,用UltraEdit打开也能看到,它
              的目的是定位cdboot这个文件,然后由cdboot来进一步引导内核。其
              实说起来一点也没什么。如果你要空手开始做bootable光盘,你就要
              把这个文件设置成boot file(在UltraISO里的那个齿轮按钮就是完成
              这个功能用的),这样一来,ISO就成了bootable了,呵呵。

boot.conf     里面就一行:set image /3.8/i386/bsd.rd,前面已经说了,cdboot
              没这个文件也能自己找路径,所以这个文件没什么用,直接删了。

好了,总结一下:

    如果你全新开始做ISO,就要把cdbr引入,以制作bootable的ISO,如果是修改
cd38.iso,就不用引进了,它里面已经包含了。其它的,把/etc目录删了,把那些
看着不舒服的TRANS.TBL也删了,cdbr在引入可引导信息后(或者你修改cd38.iso),
也直接删了,boot.catalog也删了。最后的目录如下:

OpenBSD
└─3.8
    └─i386
            bsd.rd
            cdboot

    注意,我把光盘名称也改了,好看一点。
    接下来,我们往里面添加必要的文件。首先当然是从FTP上下载3.8/i386目录下的
必要的文件了,下载到本地随便哪一个目录,过会儿要把它添加到ISO的3.8/i386目录
下的。至于要下哪些文件,就看你自己的需要了,各文件说明如下。

base38.tgz //一定要
bsd        //GENERIC内核,不是SMP内核都要
bsd.mp     //因为我机器没有多个处理器,所以这个就不用了
bsd.rd     //跟cd38.iso里的bsd.rd一样,所以就不用下了
cd38.iso   //前面已经下了……
cdboot     //同上,cd38.iso里已经有了
cdbr       //同上
cdemu38.iso//对一般的机器,这个没用
cdrom38.fs //我不用软盘的,不要
CKSUM      //校验和,可以用winmd5对照着检查一下,我就不下了
comp38.tgz //C与C++等编译环境,明显要,不然写个程序都没得编译
etc38.tgz  //要,/etc下的文件
floppy***  //不要,我不用floppy
game38.tgz //游戏,不玩,不要
index.txt  //就是这个目录的索引了,可以下过来看看,我是没下的
INSTALL.i386 //这个文件很详细,强烈推荐下载过来看看!
INSTALL.linux //多系统共存用的,也可以下载过来看看
man38.tgz  //man文档,明显要
MD5        //校验用,同CKSUM
misc38.tgz //杂类工具,什么字典之类的,随便,我没下
pxeboot    //网络安装用的,我不要
TRANS.TBL  //这个。。。扔了
xbase38.tgz//装x的话,要
xetc38.tgz //同上
xfont38.tgz//同上
xserv38.tgz//同上
xshare38.tgz//同上

其它的文件我就没注意了,我只下了以下几个:

base38.tgz
bsd
comp38.tgz
etc38.tgz
man38.tgz

没有X,注意了。接下来,把上面5个文件添加到cd38.iso的3.8/i386目录下,此时
cd38.iso的结构为:

OpenBSD
└─3.8
    └─i386
            base38.tgz
            bsd
            bsd.rd
            cdboot
            comp38.tgz
            etc38.tgz
            man38.tgz

就这样,一个经典简洁的OpenBSD Bootable ISO就做好了。当然如果你还有其它东
西,完全可以再添加进去。

    如果你还要再加点其它的东西呢?比如源码包——src.tar.gz和sys.tar.gz之
类的,这样的话你就在根目录下新建一个目录,比如source,然后把包放进去。可
以只下ports.tar.gz(ports的源码)、src.tar.gz(系统软件源码)、sys.tar.gz(内
核源码)。这样一来,目录结构变为:

OpenBSD

└─3.8
     │
     ├─i386
     │     base38.tgz
     │     bsd
     │     bsd.rd
     │     cdboot
     │     comp38.tgz
     │     etc38.tgz
     │     man38.tgz
     │
     └─source
            ports.tar.gz
            src.tar.gz
            sys.tar.gz

接下来直接另存这个ISO为OpenBSD-3.8-i386.iso就一切搞定。
这样做出来的ISO没有X,容量大小为197M。放入VMWare5.0里试了下,完全正常。
至于怎么安装OpenBSD,这里就不说了,推荐你看看那个INSTALL.i386文件,强
列推荐!
     
其实OpenBSD也并不像想象中的那么麻烦,捣鼓一番觉得还是挺简单的。
另外,OpenBSD的“小即是美”真的很有诱惑力,推荐大家去尝试一下:)

论坛徽章:
0
2 [报告]
发表于 2006-01-05 11:51 |只看该作者
好东西,学了一招。

我比较认同“小即是美”这一点。

论坛徽章:
0
3 [报告]
发表于 2006-01-05 14:04 |只看该作者
这个方法看着怎么觉得那么麻烦

论坛徽章:
0
4 [报告]
发表于 2006-01-05 14:09 |只看该作者
多简单啊就是用UltraISO打开cd38.iso然后加一、两个目录,目录下面加上自己想要的东西。
再打个包,刻盘ok拉。
复杂么?

论坛徽章:
0
5 [报告]
发表于 2006-01-05 14:42 |只看该作者
原帖由 ldfer 于 2006-1-5 14:09 发表
多简单啊就是用UltraISO打开cd38.iso然后加一、两个目录,目录下面加上自己想要的东西。
再打个包,刻盘ok拉。
复杂么?

我只是觉得这里的方法更简单。
http://forum.cnfug.org/index.php?showtopic=1965

论坛徽章:
0
6 [报告]
发表于 2006-01-05 15:13 |只看该作者
install mkisofs
/tmp> mkdir -p OpenBSD/3.4/i386
/tmp> cd OpenBSD/3.4/i386
mkisofs -vrTJV "OpenBSD34" -b 3.4/i386/cdrom34.fs -c boot.catalog -o OpenBSD34.iso /tmp/OpenBSD/

c:\cdrtools\mkisofs
-v
-r
-T
-l
-L
-J
-V "OpenBSD3.2-beta"
-b 3.2/I386/cdrom32.fs
-c boot.catalog
-o c:/OpenBSD3.2-beta.iso
-A "OpenBSD 3.2-beta Install"

不错,恩

论坛徽章:
0
7 [报告]
发表于 2006-01-05 19:54 |只看该作者
原帖由 MichaelBibby 于 2006-1-5 14:04 发表
这个方法看着怎么觉得那么麻烦

不知道你所说的麻烦体现在哪,我想请教一下。
我是分析了每个组成部分,在这个基础上给出相对比较精简的、适合自己的方案的。
如果你还有更好的分析方法,恳请指点

论坛徽章:
0
8 [报告]
发表于 2006-03-17 23:41 |只看该作者
thank u for ur help!

论坛徽章:
0
9 [报告]
发表于 2006-05-14 18:22 |只看该作者
我不是太懂,但还是问一下:不需要引导记录吗

论坛徽章:
0
10 [报告]
发表于 2006-05-15 19:05 |只看该作者
这样作出来的CD需要怎么做才能从光驱引导?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP