在裝 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/
在將 mfsBSD 開機之前, 有幾個重要設定要先設妥。 此時最重要的設定,很明顯就是網路設定。 到底網路怎麼設最好,則取決於所處的網路環境, 以及該網路卡會以哪一種驅動程式載入而定。 我們將會看到 mfsBSD 如何在任何網路情況下進行設定。
另一件重要事就是設定 root 密碼。 這點可以透過 conf/rootpw.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"
若已經知道網卡是哪一種,那麼要設定網路的話直接改 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"
打造 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/。
現在 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>。