|
蓝森林 http://www.lslnet.com 2006年4月6日 20:18
定制OpenBSD的ISO
由于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的“小即是美”真的很有诱惑力,推荐大家去尝试一下:) |
好东西,学了一招。
我比较认同“小即是美”这一点。 |
这个方法看着怎么觉得那么麻烦 |
多简单啊就是用UltraISO打开cd38.iso然后加一、两个目录,目录下面加上自己想要的东西。
再打个包,刻盘ok拉。
复杂么? |
[quote]原帖由 [i]ldfer[/i] 于 2006-1-5 14:09 发表
多简单啊就是用UltraISO打开cd38.iso然后加一、两个目录,目录下面加上自己想要的东西。
再打个包,刻盘ok拉。
复杂么? [/quote]
我只是觉得这里的方法更简单。
http://forum.cnfug.org/index.php?showtopic=1965 |
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"
不错,恩 |
[quote]原帖由 [i]MichaelBibby[/i] 于 2006-1-5 14:04 发表
这个方法看着怎么觉得那么麻烦 [/quote]
不知道你所说的麻烦体现在哪,我想请教一下。
我是分析了每个组成部分,在这个基础上给出相对比较精简的、适合自己的方案的。
如果你还有更好的分析方法,恳请指点 |
thank u for ur help! |
我不是太懂,但还是问一下:不需要引导记录吗 |
这样作出来的CD需要怎么做才能从光驱引导? |
[quote]原帖由 [i]L0ading[/i] 于 2006-5-15 19:05 发表
这样作出来的CD需要怎么做才能从光驱引导? [/quote]
做出来的ISO本身就可以启动.
[quote]
mkisofs -r -J -v -T -V "OpenBSD-3.9" -A "OpenBSD v3.9-Release" [color=FF0000]-b 3.9/i386/cdrom39.fs[/color] -c boot.catalog -o OpenBSD-3.9-i386.iso OpenBSD-ISO
[/quote]
|
| |