在 Y450A上 安裝定製的FreeBSD7 2

2021-05-10 12:22:23 字數 3046 閱讀 1501

新建一虛擬機器(vmware安裝和使用的詳細步驟可以參考其它文章),我的配置是256m記憶體、4g硬碟、帶usb和網橋、光碟設為虛擬光碟機h:

用第一張光碟啟動虛擬機器,進入安裝介面後,有一系列的選項,大多是無關緊要的,可以根據個人喜好決定,但一定要確保在選單裡選中 configure->distribution->src->sys,這是要編譯的freebsd的核心原始碼,我用的是custom 配置,先指定硬碟分割槽,設定檔案系統、掛載點,就可以開始安裝了,裝完不要忘記設定密碼和網路,重啟虛擬機器一般就可以看到freebsd的啟動選擇介面 了,到此萬事俱備,下面開始編譯核心:

1. 修改核心編譯選項

進入/usr/src/sys下,若沒有此目錄,可以執行sysinstall安裝核心原始碼,進入i386/conf子目錄下,複製配置檔案:

cp generic y450akernel

用vi或者別的編輯器開啟我們的配置檔案:y450akernel,將檔案尾部其中的device sbp注釋掉改為:

#device sbp

儲存y450kernel

2. 編譯新核心

執行config生成原始碼樹

/usr/sbin/config y450akernel

切換到編譯目錄:

cd ../complie/y450akernel

編譯核心:

make cleandepend&&make depend

make

安裝核心:

make install

以上如果沒有出錯的話,核心就已經安裝成功了,新核心被安裝到/boot/kernel 裡了,大小100多m,原來的核心儲存在kernel.old目錄裡

第二步:製作安裝光碟映象需要的檔案

重新編譯的核心可以在y450a上啟動,但編譯核心需要先有bsd,安裝光碟在真機上起不來,自然沒法編,所以要麼你把硬碟拆下來,掛到別的機子上先裝bsd,再替換核心,然後再把硬碟掛回來,要麼就只能把新核心打到安裝光碟,一步到位。

1.光碟安裝包的格式

先看看第一張光碟的結構吧,關鍵是光碟裡的兩個目錄:/boot/kernel、/7.2-release/kernels

/boot/kernel裡放的是安裝程式自己要用的核心和模組,安裝光碟自己起不來,就是因為這裡的核心打上sbp驅動,它同系統/boot/kernel下的內容是一樣的,只是少了模組符號,大小減為30多m。

/7.2-release/kernels裡是要安裝到系統的核心,不把這個替換了,安裝程式可以跑,但裝完的系統重啟就掛了,包裡有44個檔案:

有很多以generic開頭的檔案,從generic.aa到generic.bm,開始很奇怪這是什麼包?於是vi了目錄下的install.sh,看到一行命令

**:

cat $tn.?? | tar - -unlink -xpzf - -c $boot

於是在我就:cat generic.?? >generic.file

然後用file命令檢視,果然是gzip壓縮過的tarball

tar -tzf generic.file

得知這個tgz包帶個generic(大寫)目錄,檔案都是./generic/*.ko和./generic/kernel的格式

checksum.md5為目錄下所有檔案的md5校驗,checksum.sha256實際測試時可以

忽略(因為有checksum.md5),generic.mtree,是generic.file這個包,也就是核心目錄下所有檔案的校驗,generic.inf是generic.file的校驗,install.sh是要呼叫的安裝指令碼,可以不用改。

2.開始替換光碟核心

以下操作在虛擬機器裡:

1. 製作替換包:

cd /root

cp -r /boot/kernel .

rm kernel/*.symbols

mkdir kernels && cd kernels

cp -r /boot/kernel generic

tar zcvf general.aa generic

生成mtree檔案:

mtree -cp generic >generic.mtree

cksum generic.aa >generic.inf

調整inf格式為 :

pieces = 1

cksum.aa = *** *** (注意這有個等號,它折磨了我n久)

rm -rf generic

生成最後的md5檔案:

md5 * >chksum.md5

五個檔案都齊了,這樣就有了kernel 和 kernels兩個用於替換的資料夾,將這兩個資料夾打包便於傳送:

tar cvf new_kernel.tar kenel kernels

3.將vmware裡的檔案傳出來

這個本應該很簡單,我先試的是u盤,虛擬機器裡的freebsd可以識別、掛載u盤:

mount -t msdosfs /dev/da0 usbdir

拷貝到u盤,md5校驗也沒錯,但把u盤掛到真實的系統(我的xp)上時,校驗和解壓縮都出錯,也就是說把u盤拔掉重新插入後,同乙個檔案的 md5不一樣,試了n次,換了幾個u盤都一樣,最後沒轍還是走網路通過ftp傳送到xp下,校驗沒錯,搞不懂為什麼會這樣,也許是虛擬機器的問題吧,總之, 拷到真實的系統後一定要md5校驗一下,u盤行不通,就ftp吧。

第三步:用ultraiso製作新iso

這最後一步比較簡單,直接用ultraiso開啟第一張盤:7.2-release-i386-disc1.iso,

用new_kernel.tar裡的kernel 替換掉/boot/kernel資料夾,用new_kernel.tar裡的kernels替換掉/7.2-release/kernels資料夾,然後另存為:

freebsd-7.2-y450a-disk1.iso

ok,到這一步,新的iso就做好了,直接刻盤吧,從光碟啟動,開始安裝你就會看

到sysinstall那親切的介面了。

以上是我採用的方法,也許還有更方便一點的,歡迎交流哈,開始體驗freebsd的樂趣吧。

tora 在ubuntu上的安裝

配置 debian rules檔案,修改配置行為 configure prefix usr with oracle opt oracle10 oracle with oci version 10g with oracle libraries opt oracle10 oracle lib witho...

nginx在linux上的安裝

nginx簡介 而本篇部落格只是乙個安裝記錄,方便以後參照。環境 vmware 12 centos 7 材料 nginx 1.8.0.tar.gz為linux系統的 nginx 1.8.0.zip為windows系統的 解決 在 etc sysconfig network scripts 路徑下找到...

docker 在centos上的安裝

老生常談,第一篇文章來講 docker 的安裝 docker 容器的起源 docker 在centos 上的安裝 具體可以參考 docker 官網 其他版本的docker 也都可以從這裡面找 我就直接搬下來 1 首先我們需要新增我們需要的 repositories sudo yum install ...