3. 準備 - mfsBSD

在裝 FreeBSD 之前,要先打造最小化的 FreeBSD 作業系統 image 檔, 以便可以從硬碟上開機。 如此一來,新的系統就可以透過網路來操作, 而剩下來的安裝部分即可不必透過 console。

mfsBSD 這套工具就是用來打造小型的 FreeBSD image 檔。 mfsBSD (名字其中 “mfs” 就是 “memory file system”)所建造出來的 整套系統會透過 ramdisk 方式來運作。 由於此一特色,硬碟的部分就不受限, 因此可以用來安裝完整的 FreeBSD 作業系統。 mfsBSD 的首頁位於 http://people.freebsd.org/~mm/mfsbsd/, 其中連結有該工具的最新 release 部分。

請注意:mfsBSD 內部運作方式的細節,不 在本文介紹範圍之內。 若對這方面有興趣的讀者,可至 mfsBSD 官網查閱相關文件。

首先下載最新的 mfsBSD 並解壓縮之, 然後切到解壓縮後的工作目錄,也就是 mfsBSD script 檔所在處:

# fetch http://people.freebsd.org/~mm/mfsbsd/mfsbsd-latest.tar.gz
# tar xvzf mfsbsd-1.0-beta1.tar.gz
# cd mfsbsd-1.0-beta1/

3.1. 設定 mfsBSD

在將 mfsBSD 開機之前, 有幾個重要設定要先設妥。 此時最重要的設定,很明顯就是網路設定。 到底網路怎麼設最好,則取決於所處的網路環境, 以及該網路卡會以哪一種驅動程式載入而定。 我們將會看到 mfsBSD 如何在任何網路情況下進行設定。

另一件重要事就是設定 root 密碼。 這點可以透過 conf/rootpw.conf 來完成。 請切記:該檔密碼是以明文方式存放,因此不建議放真正平常有在用的密碼。 然而這密碼只是臨時密碼而已,可以在之後開機時再做更換。

3.1.1. 設定網路(conf/interfaces.conf 方式)

若對要裝的機器網卡為何還不知道是哪一款,但可以善加利用 mfsBSD 的自動偵測功能。 mfsBSD 的開機 script 會根據網卡的 MAC 位址範圍來偵測正確的驅動程式,像是下列的 conf/interfaces.conf 設定內容:

initconf_interfaces="ext1"
initconf_mac_ext1="00:00:00:00:00:00"
initconf_ip_ext1="192.168.0.2"
initconf_netmask_ext1="255.255.255.0"

別忘了在 conf/rc.conf 內要加上 defaultrouter 的相關設定:

defaultrouter="192.168.0.1"

3.1.2. 設定網路(conf/rc.conf 方式)

若已經知道網卡是哪一種,那麼要設定網路的話直接改 conf/rc.conf 會比較方便。 該檔設定語法與 FreeBSD 標準的 rc.conf(5) 是一致的。

舉個例子,若知道該機器網卡是用 re(4),那麼就在 conf/rc.conf 做下列類似設定:

defaultrouter="192.168.0.1"
ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"

3.2. 打造 mfsBSD image

打造 mfsBSD image 檔的過程相當簡單。

首先是把 FreeBSD 安裝光碟或者安裝用的 ISO image 檔丟到 /cdrom。 為維持所有例子的一致,本文假設都是用 FreeBSD 7.0-RELEASE ISO。 而把 ISO image 檔掛載到 /cdrom 目錄相當簡單, 就是用 mdconfig(8)

# mdconfig -a -t vnode -u 10 -f 7.0-RELEASE-amd64-disc1.iso
# mount_cd9660 /dev/md10 /cdrom

接著就開始打造可開機的 mfsBSD image:

# make BASE=/cdrom/7.0-RELEASE

注: 上述的 make 指令要在 mfsBSD 的最上層目錄執行,比方說 ~/mfsbsd-1.0-beta1/

3.3. mfsBSD 開動

現在 mfsBSD image 已經備妥, 要上傳到遠端機器的救急系統或者預先安裝的 Linux® distribution。 要完成這工作最適合的工具就是 scp

# scp disk.img root@192.168.0.2:.

為了能順利啟動 mfsBSD image, 要把檔案放在欲安裝機器的第一顆(可開機)硬碟上。 假設例子的第一顆開機硬碟代號為 sda, 那麼作法就類似下面這樣:

# dd if=/root/disk.img of=/dev/sda bs=1m

若一切順利,該 image 檔現在應該會在第一顆硬碟的 MBR 磁區並可以開始進行重開機了。 可以用 ping(8) 工具來檢測該機器開機完畢與否。 一旦 ping 到之後, 就可以透過 ssh(1) 連進去,並且用 root 以及剛設定的密碼登入。

本文及其他文件,可由此下載:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

若有 FreeBSD 方面疑問,請先閱讀 FreeBSD 相關文件,如不能解決的話,再洽詢 <questions@FreeBSD.org>。
關於本文件的問題,請洽詢 <doc@FreeBSD.org>。