コンピュータ/ソフトウェア関連Tips

FreeBSD UFSファイルシステムパーティションの削除/ZFSファイルシステムパーティションの作成

作成日: Oct 17, 2020
更新日: Oct 17, 2020
カテゴリー: FreeBSD タグ: FreeBSD
$ gpart show ada0
=>       40  312581728  ada0  GPT  (149G)
         40       1024     1  freebsd-boot  (512K)
       1064   67108864     2  freebsd-ufs  (32G)
   67109928   16777216     3  freebsd-swap  (8.0G)
   83887144  228589568     4  freebsd-ufs  (109G)
  312476712     105056        - free -  (51M)

のような構成になっているシステムの、4番目のスライスをfreebsd-ufsからfreebsd-zfsに変更したときのメモです。freebsd-ufsを削除して、freebsd-zfsを追加するという手順です。

まず、freebsd-ufsパーティションを削除する。

$ sudo gpart delete -i 4 ada0
ada0p4 deleted
$ gpart show
=>       40  312581728  ada0  GPT  (149G)
         40       1024     1  freebsd-boot  (512K)
       1064   67108864     2  freebsd-ufs  (32G)
   67109928   16777216     3  freebsd-swap  (8.0G)
   83887144  228694624        - free -  (109G)

4番目のスライスが削除された。次に、zfsパーティションを追加する。

$ sudo gpart add -t freebsd-zfs ada0
ada0p4 added

gpartで確認する。

$ gpart show ada0
=>       40  312581728  ada0  GPT  (149G)
         40       1024     1  freebsd-boot  (512K)
       1064   67108864     2  freebsd-ufs  (32G)
   67109928   16777216     3  freebsd-swap  (8.0G)
   83887144  228694624     4  freebsd-zfs  (109G)

無事、freebsd-zfsが作成された。

おまけ

$ sudo sade

で、グラフィカルに操作できる。

sade

おまけ2

tankという名前のストレージプールを作成する。

$ sudo zpool create tank /dev/gptid/28dd3d61-1060-11eb-ab3c-e839352331df

uuidは、gpart list コマンドで確認する。(上記uuidは、実際のuuidの何文字かを別な文字に置き換えています)。

ステータスを確認する。

$ zpool status
  pool: tank
 state: ONLINE
  scan: none requested
config:

        NAME                                          STATE     READ WRITE CKSUM
        tank                                          ONLINE       0     0     0
          gptid/28cc3d61-1060-11eb-ac3c-e839352331df  ONLINE       0     0     0

errors: No known data errors

tankの中にdataという名前のファイルシステムを作成する。

$ sudo zfs create tank/data

おまけ2

zrootの中にtank/dataという名前のファイルシステムを作成し、マウントポイントを /tank/data にする。

$ sudo zfs create -o mountpoint=/tank zroot/tank
$ sudo zfs create -o mountpoint=/tank/data zroot/tank/data

一度に作成しようとすると、以下のエラーになった。

cannot create 'zroot/tank/data': parent does not exist