天天看點

在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.首先建立一個虛拟機,需要帶有軟碟和CD光牒,軟碟用于存放安裝程式,CD光牒存放編譯好的應用和核心。當然,硬碟是必須要有的...

在VMware 10.0上安裝NetBSD 1.0

系統類型選擇“Other”:

在VMware 10.0上安裝NetBSD 1.0

軟碟使用的鏡像檔案就是NetBSD-1.3的啟動鏡像檔案boot.fs:

CD光牒鏡像檔案包含的檔案清單如下:

除了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退出安裝程序,檢視目前已挂載的裝置,将CD光牒挂載到系統上(不挂載的話會一直找不到檔案):

在VMware 10.0上安裝NetBSD 1.0

進入挂載的目錄之後再使用fg指令回到安裝程序,這裡如果不cd進入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 登入成功!