遠端安裝 FreeBSD 作業系統而不必接 Remote Console
Prev |  | Next

# 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 畫面。

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

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

> Note: 至於 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) 指令以重開機。

Prev | Home | Next
準備 - mfsBSD |  | ZFS

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

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