2019年3月11日月曜日

FreeBSDのbhyveで仮想ディスクイメージを拡張する

FreeBSDのbhyveで、FreeBSDの仮想ディスクイメージを拡張する方法を以下にメモします。手順は以下のサイトを参考にしました。
FreeBSD bhyve + vm-bhyve 仮想ディスクサイズを増やしてみる
https://blog.bixr.com/2016/06/1150/
手順を引用します。また、仮想環境で動作するFreeBSDのファイルシステムはzfsなので、一部、変更しています。
  1. 仮想ディスクのファイルの拡張
    “truncate -s +(増加サイズ) <イメージファイル>” で拡張する。
    次の例では200GBのdisk0.imgをさらに300GB増やして500GBにしている。
    # truncate -s +300g disk0.img
  2. 起動時に「2. Boot [S]ingle User」を選択して、ゲストOSをシングルユーザモードで起動
  3. パーティション情報を修正して拡張
    # gpart recover vtbd0
    vtbd0 recovered
    # gpart show vtbd0
    =>        40  1048575920  vtbd0  GPT  (500G)
              40        1024      1  freebsd-boot  (512K)
            1064         984         - free -  (492K)
            2048   419426304      2  freebsd-zfs  (200G)
       419428352   629147608         - free -  (300G)

    # gpart resize -i 2 vtbd0
    vtbd0p2 resized
    # gpart show vtbd0
    =>        40  1048575920  vtbd0  GPT  (500G)
              40        1024      1  freebsd-boot  (512K)
            1064         984         - free -  (492K)
            2048  1048573696      2  freebsd-zfs  (500G)
      1048575744         216         - free -  (108K)
    #
  4. zfsを拡張
    # zpool list
    NAME      SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
    zduke00   199G  9.37G   190G        -         -     1%     4%  1.00x  ONLINE  -
    zduke10  4.97T  1.70M  4.97T        -         -     0%     0%  1.00x  ONLINE  -
    # zpool online -e zduke00 gpt/zfs0
    # zpool list
    NAME      SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
    zduke00   499G  9.37G   490G        -         -     0%     1%  1.00x  ONLINE  -
    zduke10  4.97T  1.70M  4.97T        -         -     0%     0%  1.00x  ONLINE  -
  5. 再起動