试制OpenBSD稳定版ISO镜像
发表于 : 2010-03-16 8:14
说明:
此外如果你有很多机器需要同时新安装或更新成稳定版不一定非要采用光盘安装的形式,完全可以采用FTP或http的方式。
另外如果仅有一台主机需要更新则可以直接将这些/usr/rel目录里生成的文件拷贝到需要升级的主机根目录下释放就行了。
为什么有快照版的ISO以及为什么OB不发行稳定版的ISO呢?—— 如果它的FTP上有稳定版的ISO镜像文件你还买它的原版CD吗?
以下内容参照了 OpenBSD FAQ——制作自己的发行版:
我是先将CVS库保存在了本地的服务器上,这样在更新和重新安装系统时可以减少网络占用且速度更快,如果读者没有在本地建立CVS库,请自行修改下面CVS服务器的地址。
步骤1:
获取CVS源代码(你只需第一次运行更新时这样做,如果已经获取了源代码请直接执行的步骤2)步骤2:
(有安全补丁发布时执行此步骤) 更新系统和X源代码:
如果你要加入自行制作的port,请自行参阅FAQ
步骤3:
构建内核这是需要重新启动应用内核文件
步骤4:
构建用户岛
清空 /usr/obj 目录并且重建符号链接:确保所有相关目录已经被建立了。
构建用户岛:
步骤5:
构建发行版二进制包
现在, 我们定义我们的DESTDIR 和 RELEASEDIR 环境变量:我们现在清空DESTDIR 并创建所需目录:
RELEASEDIR目录是否清空并不您影响制作发行版, 但是如果发行版内的文件或文件名称发生了变化, 将不会覆盖原来的旧文件, 如此一来您的制作的发行版可能含有没用的文件, 所以您应该在构建发行版以前也将这个目录清空。
我们现在来制作发行版:发行版制作完毕后, 您最好再检查一下, 确保tar压缩文件和DESTDIR目录里的文件匹配, 执行这个命令后屏幕输出的内容应该很少。
步骤6:
构建 X (Xenocara)
因为我们前面已经获取并更新了X的源码,所以直接构建X:构建X的发行版二进制包
上面的步骤全完成后,会在/usr/rel目录下生成4.6稳定版的二进包
步骤7:
生成ISO镜像文件。
这些文件就可以用来制作你自己的稳定版ISO镜像,用这些文件替换掉原ISO镜像文件中的二进制包,OpenBSD下你可以用cdrtools来制作ISO,FAQ上也提供了一些工具,因为以前没有用过这些工具,加上最近没有时间,我这里采用的方法是在windows下用UltraISO将原来的intsall46.ISO里面的源文件替换掉,希望熟悉这些OpenBSD光盘操作工具的朋友可以提供具体在OpenBSD下制作ISO的方法,替换过程中发现原ISO中的文件名全为大写,但是你不需要在OpenBSD里更改,UltraISO会替你做了,此外原光盘镜像内的一些文件在/usr/rel目录内并没有提供,为了保险起见,我还是保留了,而且我没有将/usr/rel/目录里原光盘内没有文件拷贝到光盘里,例如,pxeboot,INSTALL.linux,但是估计放进去问题也不大,有兴趣的朋友可以自行试试。
镜像保存后,你可以直接刻录光盘,如果在虚拟机中运行OpenBSD也可以直接挂载这个镜像文件。
步骤8:
用生成的ISO镜像(或刻录的光盘)安装一个新系统,这里略去安装步骤,不熟悉的朋友请参阅我翻译的FAQ。
我仅提供一个安装后的截图,大家可以注意一下图中的版本号:
此外如果你有很多机器需要同时新安装或更新成稳定版不一定非要采用光盘安装的形式,完全可以采用FTP或http的方式。
另外如果仅有一台主机需要更新则可以直接将这些/usr/rel目录里生成的文件拷贝到需要升级的主机根目录下释放就行了。
为什么有快照版的ISO以及为什么OB不发行稳定版的ISO呢?—— 如果它的FTP上有稳定版的ISO镜像文件你还买它的原版CD吗?
以下内容参照了 OpenBSD FAQ——制作自己的发行版:
我是先将CVS库保存在了本地的服务器上,这样在更新和重新安装系统时可以减少网络占用且速度更快,如果读者没有在本地建立CVS库,请自行修改下面CVS服务器的地址。
步骤1:
获取CVS源代码(你只需第一次运行更新时这样做,如果已经获取了源代码请直接执行的步骤2)
代码: 全选
# cd /usr
# export CVSROOT=/home/cvs
# cvs -d$CVSROOT checkout -rOPENBSD_4_6 -P src ports xenocara
(有安全补丁发布时执行此步骤) 更新系统和X源代码:
代码: 全选
# cd /usr/src
# cvs -d$CVSROOT up -rOPENBSD_4_6 -Pd
代码: 全选
# cd/usr/xenocara
# cvs -d$CVSROOT up -rOPENBSD_4_6 -Pd
步骤3:
构建内核
代码: 全选
# cd /usr/src/sys/arch/i386/conf
# config GENERIC
# cd ../compile/GENERIC
# make clean && make depend && make
[...lots of output...]
# make install
步骤4:
构建用户岛
清空 /usr/obj 目录并且重建符号链接:
代码: 全选
# rm -rf /usr/obj/*
# cd /usr/src
# make obj
代码: 全选
# cd /usr/src/etc && env DESTDIR=/ make distrib-dirs
代码: 全选
# cd /usr/src
# make build
步骤5:
构建发行版二进制包
现在, 我们定义我们的DESTDIR 和 RELEASEDIR 环境变量:
代码: 全选
# export DESTDIR=/usr/dest
# export RELEASEDIR=/usr/rel
代码: 全选
# test -d ${DESTDIR} && mv ${DESTDIR} ${DESTDIR}.old && rm -rf ${DESTDIR}.old &
代码: 全选
# mkdir -p ${DESTDIR} ${RELEASEDIR}
我们现在来制作发行版:
代码: 全选
# cd /usr/src/etc
# make release
代码: 全选
# cd /usr/src/distrib/sets
# sh checkflist
构建 X (Xenocara)
因为我们前面已经获取并更新了X的源码,所以直接构建X:
代码: 全选
# cd /usr/xenocara
# rm -rf /usr/xobj/*
# make bootstrap
# make obj
# make build
代码: 全选
# export DESTDIR=/usr/dest
# export RELEASEDIR=/usr/rel
# test -d ${DESTDIR} && mv ${DESTDIR} ${DESTDIR}- && rm -rf ${DESTDIR}- &
# mkdir -p ${DESTDIR} ${RELEASEDIR}
# make release
代码: 全选
# cd /usr/rel
# ls -la
total 502600
drwxr-xr-x 2 root wheel 512 Mar 15 01:16 .
drwxr-xr-x 21 root wheel 512 Mar 15 01:06 ..
-rw-r--r-- 1 root wheel 97368 Mar 14 18:39 INSTALL.i386
-rw-r--r-- 1 root wheel 22356 Mar 14 18:29 INSTALL.linux
-rw-r--r-- 1 root wheel 1632 Mar 14 18:39 SHA256
-rw-r--r-- 1 root wheel 48450940 Mar 14 18:29 base46.tgz
-rwxr-xr-x 1 root wheel 7237701 Mar 14 18:29 bsd
-rwxr-xr-x 1 root wheel 7257116 Mar 14 18:29 bsd.mp
-rwxr-xr-x 1 root wheel 6059199 Mar 14 18:39 bsd.rd
-rw-r--r-- 1 root wheel 6176768 Mar 14 18:39 cd46.iso
-r-xr-xr-x 1 root wheel 44980 Mar 14 18:29 cdboot
-r-xr-xr-x 1 root wheel 2048 Mar 14 18:29 cdbr
-rw-r--r-- 1 root wheel 3012608 Mar 14 18:39 cdemu46.iso
-rw-r--r-- 1 root wheel 90686961 Mar 14 18:30 comp46.tgz
-rw-r--r-- 1 root wheel 515971 Mar 14 18:30 etc46.tgz
-rw-r--r-- 1 root wheel 1474560 Mar 14 18:39 floppy46.fs
-rw-r--r-- 1 root wheel 1474560 Mar 14 18:39 floppyB46.fs
-rw-r--r-- 1 root wheel 1474560 Mar 14 18:39 floppyC46.fs
-rw-r--r-- 1 root wheel 2619909 Mar 14 18:30 game46.tgz
-rw-r--r-- 1 root wheel 8240616 Mar 14 18:30 man46.tgz
-rw-r--r-- 1 root wheel 2936114 Mar 14 18:30 misc46.tgz
-r-xr-xr-x 1 root wheel 53532 Mar 14 18:29 pxeboot
-rw-r--r-- 1 root wheel 10428728 Mar 15 01:15 xbase46.tgz
-rw-r--r-- 1 root wheel 69162 Mar 15 01:15 xetc46.tgz
-rw-r--r-- 1 root wheel 35582050 Mar 15 01:16 xfont46.tgz
-rw-r--r-- 1 root wheel 20262208 Mar 15 01:16 xserv46.tgz
-rw-r--r-- 1 root wheel 2931302 Mar 15 01:16 xshare46.tgz
#
生成ISO镜像文件。
这些文件就可以用来制作你自己的稳定版ISO镜像,用这些文件替换掉原ISO镜像文件中的二进制包,OpenBSD下你可以用cdrtools来制作ISO,FAQ上也提供了一些工具,因为以前没有用过这些工具,加上最近没有时间,我这里采用的方法是在windows下用UltraISO将原来的intsall46.ISO里面的源文件替换掉,希望熟悉这些OpenBSD光盘操作工具的朋友可以提供具体在OpenBSD下制作ISO的方法,替换过程中发现原ISO中的文件名全为大写,但是你不需要在OpenBSD里更改,UltraISO会替你做了,此外原光盘镜像内的一些文件在/usr/rel目录内并没有提供,为了保险起见,我还是保留了,而且我没有将/usr/rel/目录里原光盘内没有文件拷贝到光盘里,例如,pxeboot,INSTALL.linux,但是估计放进去问题也不大,有兴趣的朋友可以自行试试。
镜像保存后,你可以直接刻录光盘,如果在虚拟机中运行OpenBSD也可以直接挂载这个镜像文件。
步骤8:
用生成的ISO镜像(或刻录的光盘)安装一个新系统,这里略去安装步骤,不熟悉的朋友请参阅我翻译的FAQ。
我仅提供一个安装后的截图,大家可以注意一下图中的版本号: