17.3. 重設大小與擴增磁碟
前一頁 | 章 17. 儲存設備 | 下一頁

## 17.3. 重設大小與擴增磁碟

Originally contributed by Allan Jude.

磁碟的容量可以增加且不需要更動任何已存在的資料。這時常會用在虛擬機器，當虛擬磁碟太小且需要增加時。有時磁碟映像檔會被寫入到 USB 隨身碟，但卻沒有使用全部的容量。此節我們將說明如合重設大小或 擴增 磁碟內容來使用增加的容量。

要取得要重設大小的磁碟的代號可以查看 `/var/run/dmesg.boot`。在本例中，在系統上只有一個 SATA 磁碟，該磁碟會以 `ada0` 表示。

列出在磁碟上的分割區來查看目前的設定：

    # gpart show ada0
    =>      34  83886013  ada0  GPT  (48G) [CORRUPT]
            34       128     1  freebsd-boot  (64k)
           162  79691648     2  freebsd-ufs  (38G)
      79691810   4194236     3  freebsd-swap  (2G)
      83886046         1        - free -  (512B)

### 注意:

若磁碟已使用 GPT 分割表格式做格式化，可能會顯示為 “已損壞 (corrupted)” 因為 GPT 備份分割區已不存在於磁碟結尾。 使用 `gpart` 來修正備份分割區：

    # gpart recover ada0
    ada0 recovered

現在在磁碟上的額外空間已經可以被新的分割區使用，或者可以拿來擴充既有的分割區：

    # gpart show ada0
    =>       34  102399933  ada0  GPT  (48G)
             34        128     1  freebsd-boot  (64k)
            162   79691648     2  freebsd-ufs  (38G)
       79691810    4194236     3  freebsd-swap  (2G)
       83886046   18513921        - free -  (8.8G)

分割區只能在連續的未使用空間上重設大小。在這個例子中，磁碟上最後的分割區為交換 (Swap) 分割區，而第二個分割區才是需要重設大小的分割區。由於交換分割區中只會有暫存的資料，所以此時可以安全的卸載、刪除，然後在重設第二個分割區大小之後再重建最後一個分割區。

停用交換分割區：

    # swapoff /dev/ada0p3

刪除 `ada0` 磁碟上的第三個分割區，可使用 `-i` 參數來指定分割區。

    # gpart delete -i 3 ada0
    ada0p3 deleted
    # gpart show ada0
    =>       34  102399933  ada0  GPT  (48G)
             34        128     1  freebsd-boot  (64k)
            162   79691648     2  freebsd-ufs  (38G)
       79691810   22708157        - free -  (10G)

### 警告:

在掛載的檔案系統上修改分割區表可能會造成資料遺失。最好的方式是在未掛載檔案系統的情況下 (使用 Live CD-ROM 或 USB 裝置) 執行以下步驟。雖然如此，若仍要這樣做的話，在關閉 GEOM 安全性功能之後可以在掛載的檔案系統上修改分割區表：

    # sysctl kern.geom.debugflags=16

重設分割區大小並保留要用來重建交換分割區的空間，要重設大小的分割區可以用 `-i` 來指定，而要重設的大小可用 `-s` 來指定，若要對齊分割區可以使用 `-a`。這個動作只會修改分割區大小，分割區中的檔案系統需在另一個步驟擴增。

    # gpart resize -i 2 -s 47G -a 4k ada0
    ada0p2 resized
    # gpart show ada0
    =>       34  102399933  ada0  GPT  (48G)
             34        128     1  freebsd-boot  (64k)
            162   98566144     2  freebsd-ufs  (47G)
       98566306    3833661        - free -  (1.8G)

重建交換分割區並且啟動，若不使用 `-s` 指定大小則會使用所有剩餘的空間：

    # gpart add -t freebsd-swap -a 4k ada0
    ada0p3 added
    # gpart show ada0
    =>       34  102399933  ada0  GPT  (48G)
             34        128     1  freebsd-boot  (64k)
            162   98566144     2  freebsd-ufs  (47G)
       98566306    3833661     3  freebsd-swap  (1.8G)
    # swapon /dev/ada0p3

擴增 UFS 檔案系統來使用重設分割區大小之後的新容量：

    # growfs /dev/ada0p2
    Device is mounted read-write; resizing will result in temporary write suspension for /.
    It's strongly recommended to make a backup before growing the file system.
    OK to grow file system on /dev/ada0p2, mounted on /, from 38GB to 47GB? [Yes/No] Yes
    super-block backups (for fsck -b #) at:
     80781312, 82063552, 83345792, 84628032, 85910272, 87192512, 88474752,
     89756992, 91039232, 92321472, 93603712, 94885952, 96168192, 97450432

若檔案系統使用 ZFS，重設大小需執行 `online` 子指令並使用 `-e` 來觸發動作：

    # zpool online -e zroot /dev/ada0p2

現在分割區與檔案系統已透過重設大小來使用新增加的磁碟空間。

前一頁 | 上一層 | 下一頁
17.2. 加入磁碟 | 起始頁 | 17.4. USB 儲存裝置

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

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