天天看点

在VMware 10.0上安装NetBSD 1.0

       最近开始系统的学习计算机网络,买了被奉为经典中的经典《TCP/IP详解

卷2:实现》。不过这本书确实也有点过时了,讲解的是4.4BSD-Lite的代码,和当前BSD发布版的代码已经有很大差异了。根据在网络上搜索的结果,FreeBSD-2.0、NetBSD-1.0和BSD/OS

2.0都是基于4.4BSD-Lite的,但是BSD/OS在当时是商业版,现在也没有找到这个版本的源代码。FreeBSD的i386架构的源码,最接近的只有2.0.5版本的,2.0的不知道是没有,还是已经丢失了。比较了FreeBSD-2.0.5、NetBSD-1.0的代码和4.4BSD-Lite代码的差异,FreeBSD的已经差异很大,NetBSD的则几乎没有差异!所以最后决定安装NetBSD-1.0版本的系统。安装的目的当然是为了能对系统的代码进行修改并测试,只是看代码而不能修改多没意思啊^_^.

 折腾了好几天,最后终于是安装成功并且内核的重编和更新也没有问题了。简单记录下经过千辛万苦得出来的步骤:

       1.最开始直接用1.0版本的kcaha-10.fs/kcbt-10.fs进行安装,但是这两个安装映像死活找不到内核文件netbsd,查看过1.0的内核代码,估计问题是出在打开软盘和读写软盘的部分,不过内核代码没法编译,在1.3版本的系统里编译也没通过,最后只能无奈放弃这个安装方式了。

 2.开始的时候1.0版本的没法安装成功,所以就下载了往后的版本,最后确定1.3版本是最接近可以正确启动安装程序的版本。但是比对1.3版本的代码和1.0的代码后,发现1.3版本的网络代码部分也已经改动了不少了,对查看源代码不是很方便。尝试过在1.3版本的系统下直接将内核文件netbsd换成1.0版本的,不过最后系统没法正常启动。在1.3版本的系统下编译1.0版本的内核代码,也不是很顺利。不过对1.3版本的安装过程中,发现安装程序只是将编译好的应用和内核文件直接解压到硬盘上,然后做一些配置工作,之后就可以重启并从硬盘引导安装好的系统了。所以想到使用1.3版本的安装程序,将1.0版本的系统解压到硬盘上,应该可以将1.0版本的系统安装成功。首次尝试这个方法的时候,重启之后从硬盘引导1.0版本的系统时,root文件系统居然变成只读的,其他文件系统/usr、/var和/home都没有mount成功。当时以为这个方法行不通,接着尝试了其他的方式,也都没有成功,最后又回到了这个方式上来,不过糊里糊涂的解决了文件系统挂载的问题后,一下子所有问题都迎刃而解了。

 3.首先创建一个虚拟机,需要带有软盘和光盘,软盘用于存放安装程序,光盘存放编译好的应用和内核。当然,硬盘是必须要有的...

在VMware 10.0上安装NetBSD 1.0

系统类型选择“Other”:

在VMware 10.0上安装NetBSD 1.0

软盘使用的镜像文件就是NetBSD-1.3的启动镜像文件boot.fs:

光盘镜像文件包含的文件列表如下:

除了kern.tgz外,其他的每个文件都对应NetBSD-1.0/i386/binary下的一个目录,文件生成方式如下(以base.tgz文件为例,其他文件类似):

kern.tgz文件是从NetBSD-1.0的启动镜像文件kcaha-10.fs(kcbt-10.fs应该也可以,不过我没试过这个文件)里把netbsd文件抽取出来打包压缩生成的:

8个tgz文件都创建好之后,放在同一个目录下生成iso镜像文件:

打包压缩成tgz文件格式,是为了符合NetBSD-1.3版本的安装文件格式要求。

4.启动虚拟机,开始安装过程:

在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0

自定义硬盘的分区方式,

在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0

根分区使用2G空间,交换分区使用64M,为内存的两倍,

在VMware 10.0上安装NetBSD 1.0

根据硬盘的容量进行分区安排就可以了,

在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0

回车之后就真正格式化硬盘了,

在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0

按回车后即进入软件包安转界面,选者cdrom安装方式,

在VMware 10.0上安装NetBSD 1.0

按Ctrl-Z退出安装进程,查看当前已挂载的设备,将光盘挂载到系统上(不挂载的话会一直找不到文件):

在VMware 10.0上安装NetBSD 1.0

进入挂载的目录之后再使用fg命令回到安装进程,这里如果不cd进入光盘的挂载目录的话,好像会有问题,懒得去确认了,哈哈:

在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0

忽略报错信息,继续:

在VMware 10.0上安装NetBSD 1.0

文件路径和之前输入的不一样的,要不是强制加上的,要不就是有bug了,修改路径后继续:

在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0

再次忽略报错信息,继续往下:

在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0

回车之后就会将cdrom中的文件解压到硬盘上,

在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0

输出信息有点乱,直接回车:

在VMware 10.0上安装NetBSD 1.0

回到最开始的安装界面了,这里可以直接退出了。

在VMware 10.0上安装NetBSD 1.0

把硬盘的分区都挂载到系统上,然后使用chroot命令跳转到/mnt目录下:

在VMware 10.0上安装NetBSD 1.0

跳转成功,进入/etc目录下用 vi

修改 rc 文件:

在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0

红色方框内的就是需要修改的地方。按照实际的分区输入分区挂载的命令,保存之后退出vi。

先断开软盘的连接,再reboot重启系统:

在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0
在VMware 10.0上安装NetBSD 1.0

NetBSD-1.0 登录成功!