10.5. Adding Disks

Originally contributed by David O'Brien 26 April 1998

我們以 SCSI 硬碟為例,討論如何在 FreeBSD 上安裝一台新的磁碟機 (假設這台機器目前只有一台磁碟機)。按照說明書的指示,將磁碟機安裝 妥當(由於安裝過程太過繁雜,故其細節不在本文件中討論)。

root的身份登入系統,檢查 /var/run/dmesg.boot, 確認系統是否有找到這台新的磁碟機。在我們的例子裡,新磁碟機的 device node 為 da1,而我們要將這台磁碟機 mount 到 /1(如果是 IDE 的磁碟機,在 4.0 之前的系統是 wd1,而在 4.X 的系統中是 ad1 )。

由於 FreeBSD 是安裝在與 IBM PC 相容的電腦上,所以必須討論到 PC BIOS partition。不同於傳統的 BSD partition,PC 上的磁碟最多可以有 4 個 BIOS partition entry。我們可以將 整顆硬碟指定給 FreeBSD,也可以將 FreeBSD 裝在某一個 PC BIOS partition 上。FreeBSD 把 PC BIOS partition 稱作 slices ,以避免與傳統 BSD partition 混淆。我們可以將安裝有其他作業系統的 slice 指定給 FreeBSD ,同時不會使原作業系統的 fdisk 工具發生問題。

以 slice 的方式來安裝 FreeBSD ,這台新的磁碟機為 /dev/da1s1e,意思是 SCSI 磁碟,編號 1 (意指第二顆 SCSI 磁碟),slice 1 (即 PC BIOS partition 1),BSD partition e 。若將整顆磁碟指定給 FreeBSD ,則為 /dev/da1e

10.5.1. 使用 sysinstall

您可以使用 /stand/sysinstall 中的選單功 能來分割一顆新的磁碟。以 root 的身份 login 或利用 su 指令來執行 /stand/sysinstall ,選 Configure ,進入 FreeBSD Configuration Menu選單,選擇 Partition 這個選項,您將會看到一份硬碟清單 ,假如您沒看到 da1 , 您可能必須檢查一下您的硬碟是否正確安裝到主機,並利用 dmesg 列出並檢查 /var/run/dmesg.boot這個檔。

選擇 da1,進入 FDISK Partition Editor,假設要把整顆磁碟都給 FreeBSD 使用,選 A 。當問到 "remain cooperative with any future possible operating systems" 時,回答 YES,接著就按 W 儲存, q 離開。接下來您會被問到關於 Master Boot Record 的問題,因為您是安裝一顆磁碟到一個現成的作業系統上, 所以選 None

然後進入 Disk Label Editor來建立 traditional BSD partition 。一顆磁碟最多可以擁有 8 個 partition ,依次是 a 到 h 。某些 partition 有特殊的意義 : partition a 是指 / (root partition),只有您的開機磁碟可以擁有 partition a ,partition b 是指 swap partition ,您可以同時擁有數個具有 swap partition 的磁碟, partition c 是指整顆磁碟, 其他的都可以任意使用。

sysinstall 的 Label editor 喜歡用 e 作為非 root,非 swap 的 partition,按 C 建立一個獨立的檔案系統,接著會問您說這是 FS(file system)或 swap, 選擇FS ,然後指定一個 mount point (例如 /mnt)。在 post-install 模式下新增的磁碟, sysinstall 並不會幫您加入到 /etc/fstab 下, 這時 mount point並不重要。

按下 W 鍵,將新的 label 寫到磁碟上,並在 磁碟上建立一個檔案系統,忽略所有跟新的 partition 無關的錯誤訊息 ,然後離開 Label Editor 及 sysinstall。

最後,只要編輯 /etc/fstab ,把新磁碟加上就 OK 了。

10.5.2. 使用命令列的工具程式

10.5.2.1. 使用 Slices

This setup will allow your disk to work correctly with other operating systems that might be installed on your computer and will not confuse other operating systems' fdisk utilities. It is recommended to use this method for new disk installs. Only use dedicated mode if you have a good reason to do so!

    # dd if=/dev/zero of=/dev/rda1 bs=1k count=1
    # fdisk -BI da1 #Initialize your new disk
    # disklabel -B -w -r da1s1 auto #Label it.
    # disklabel -e da1s1 # Now edit the disklabel you just created and add any partitions.
    # mkdir -p /1
    # newfs /dev/da1s1e # Repeat this for every partition you created.
    # mount -t ufs /dev/da1s1e /1 # Mount the partition(s)
    # vi /etc/fstab # When satisfied, add the appropriate entry/entries to your /etc/fstab.

If you have an IDE disk, substitute ad for da. On pre-4.x systems use wd.

10.5.2.2. Dedicated

假如您不打算和其他的作業系統共用新的磁碟,您可以使用 dedicated 模式,要記得的是,這種模式會使 Microsoft 的作業系統產生混淆,但不致於造成損壞;而 IBM 的 OS/2 則會"佔用"所有它不認識的 partition 。

    # dd if=/dev/zero of=/dev/rda1 bs=1k count=1
    # disklabel -Brw da1 auto
    # disklabel -e da1				# create the `e' partition
    # newfs -d0 /dev/rda1e
    # mkdir -p /1
    # vi /etc/fstab				# add an entry for /dev/da1e
    # mount /1

另一個替代的方法:

    # dd if=/dev/zero of=/dev/rda1 count=2
    # disklabel /dev/rda1 | disklabel -BrR da1 /dev/stdin
    # newfs /dev/rda1e
    # mkdir -p /1
    # vi /etc/fstab					# add an entry for /dev/da1e
    # mount /1