定制OpenBSD3.8的ISO

来源:互联网 发布:王者荣耀充值网站源码 编辑:程序博客网 时间:2024/04/29 23:41
由于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的“小即是美”真的很有诱惑力,推荐大家去尝试一下:)



__________________________________