4. FreeBSD 作業系統的安裝
前一頁 |  | 下一頁

## 4. FreeBSD 作業系統的安裝

現在 mfsBSD 已順利啟動，並且應該可以透過 ssh(1) 方式來連。 本節將介紹如何建立 slice 分割、設定 gmirror 以作 RAID-1、如何以 sysinstall 來安裝 FreeBSD 作業系統的最小化安裝。

### 4.1. 準備硬碟

首先要作的是配置硬碟空間給 FreeBSD，像是建立 slice 跟分割區。 很明顯地，目前在跑的作業系統是載入到系統記憶體內執行， 因此要對硬碟配置並無任何問題。 這些工作可以用 sysinstall 或者以 fdisk(8) 搭配 bsdlabel(8) 來完成。

首先先把各硬碟都先清空。 請對各硬碟作下列指令：

`#` `dd if=/dev/zero of=/dev/`ad0` count=2`

接著，以您慣用的工具來建立 slice 以及設定 label。 通常會建議以 的 sysinstall 工具來作會比較輕鬆， 或者是強而又不太會出槌的文字介面 UNIX® 標準工具(像是 fdisk(8), bsdlabel(8))，這部分稍後也會一併介紹。 前者部分在 FreeBSD Handbook 的 安裝 FreeBSD 章節有相當詳盡的介紹，所以這邊主要要介紹的是如何建立 RAID-1 系統以及 ZFS。 這邊會介紹建立以 gmirror(8) 做成的小型 mirrored 檔案系統： `/` (根目錄), `/usr` 以及 `/var`，而硬碟的其餘剩餘空間則通通以 zpool(8) 做成 ZFS 的 mirrored 檔案系統 。 請注意：必須要先把 FreeBSD 作業系統裝好並開完機後，才能進行設定 ZFS 檔案系統。

下面的例子會介紹如何建立 slice 以及 label、在每個分割區上啟用 gmirror(8)、如何在每個 mirrored 分割區上建立 UFS2 檔案系統：

`#` `fdisk -BI /dev/ad0` `#` `fdisk -BI /dev/ad1` `#` `bsdlabel -wB /dev/ad0s1` `#` `bsdlabel -wB /dev/ad1s1` `#` `bsdlabel -e /dev/ad0s1` `#` `bsdlabel /dev/ad0s1 > /tmp/bsdlabel.txt && bsdlabel -R /dev/ad1s1 /tmp/bsdlabel.txt` `#` `gmirror label root /dev/ad[01]s1a` `#` `gmirror label var /dev/ad[01]s1d` `#` `gmirror label usr /dev/ad[01]s1e` `#` `gmirror label -F swap /dev/ad[01]s1b` `#` `newfs /dev/mirror/root` `#` `newfs /dev/mirror/var` `#` `newfs /dev/mirror/usr`

| 對該硬碟建立 slice 並且在第零軌處將開機表作初始。 請對該機器所有硬碟都作此一動作。
| 對各硬碟寫入 label 以及 bootstrap 碼。
| 現在手動修改該硬碟的 label，至於如何建立分割區(partitions) 請參閱 bsdlabel(8) 說明。 分割區分別建立：`a` 是給 `/` (根目錄)， `b` 給 swap， `d` 給 `/var`， `e` 給 `/usr`， 最後，會在稍後步驟把 `f` 給 ZFS 使用。
| 把剛剛的 label 設定先匯出，再匯入到第二顆硬碟上， 如此一來兩邊的硬碟 label 設定就會同樣。
| 在各分割區上啟用 gmirror(8)
| 請注意：`-F` 選項是用在 swap 上。 這參數會讓 gmirror(8) 認為該硬體是處於可靠狀態， 即使發生電源故障或系統當掉，也不會去同步。
| 在各個有做 mirror 的分割區上建立 UFS2 檔案系統

### 4.2. 系統安裝

這裡是最重要的一環， 本節介紹實際上如何在先前一節所做好的硬碟安裝最小化的 FreeBSD， 為了完成此一目標，所有檔案系統都必須掛載妥當，才能讓 sysinstall 可以把 FreeBSD 裝到硬碟內：

`#` `mount /dev/mirror/root /mnt` `#` `mkdir /mnt/var /mnt/usr` `#` `mount /dev/mirror/var /mnt/var` `#` `mount /dev/mirror/usr /mnt/usr`

做完上述動作之後，請執行 sysinstall(8)。 請從主選單中選擇 Custom 安裝，選 Options 按 Enter。 然後以方向鍵移動到 `Install Root` 處，按 Space 鍵然後改為 `/mnt`，再按 Enter 鍵以將修改值存起來，然後按 q 鍵即可離開這個 Options 畫面。

### 警告:

請注意：本步驟極為重要，若忽略的話那麼 sysinstall 就沒辦法安裝 FreeBSD。

接著選 Distributions，然後移動游標到 `Minimal` 處，按 Space 鍵。 本文之所以介紹最小化安裝是為了要節省網路流量，因為系統安裝是透過 ftp 方式來進行。 要離開本畫面，請選 `Exit` 即可。

### 注意:

至於 Partition 及 Label 步驟則可略過， 因為這些目前已經都設定完畢了。

在 Media 選單中請選 `FTP`。 請選最近的 mirror 站，並且讓 sysinstall 假設網路已經設妥。 接下來就會回到 Custom 選單。

最後，按下 Commit 即可開始進行安裝。 完成安裝後，即可離開 sysinstall。

### 4.3. 後續安裝步驟

此時 FreeBSD 作業系統應該已經裝完，然而還有些後續流程要做。 必須要做一些後續設定，才能讓 FreeBSD 可以開機跟登入。

現在必須要用 chroot(8) 以切到剛剛新裝好的系統內。 指令如下：

`#` `chroot /mnt`

然後再打下列指令以繼續完成：

- 把 `GENERIC` kernel 複製到 `/boot/kernel` 目錄：

  `#` `cp -Rp /boot/GENERIC/* /boot/kernel`

- 建立 `/etc/rc.conf`, `/etc/resolv.conf` 及 `/etc/fstab` 檔案。 別忘了，要記得在 `/etc/rc.conf` 檔設相關網路設定，以及把 sshd 啟用。 此外， `/etc/fstab` 檔應該會長像下面這樣：

  # Device Mountpoint FStype Options Dump Pass# /dev/mirror/swap none swap sw 0 0 /dev/mirror/root / ufs rw 1 1 /dev/mirror/usr /usr ufs rw 2 2 /dev/mirror/var /var ufs rw 2 2 /dev/cd0 /cdrom cd9660 ro,noauto 0 0

- 新增 `/boot/loader.conf` 檔， 並且內容填入下列：

  geom_mirror_load="YES" zfs_load="YES"

- 執行下列指令，以在下次開機時啟用 ZFS ：

  `#` `echo 'zfs_enable="YES"' >> /etc/rc.conf`

- 使用 adduser(8) 工具來新增其他使用者帳號。 別忘了， 至少要有一個帳號得加入 `wheel` 群組， 才能在重開機後以該帳號切換為 root。

- 再次檢查上述相關的設定，是否有遺漏或打錯。

現在該系統終於可以重開機了，請用 reboot(8) 指令以重開機。

前一頁 |  | 下一頁
3. 準備 - mfsBSD | 起始頁 | 5. ZFS

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

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