man ZFS   man ZPOOL


zpool.cache

  • ブート用の一番目にあるプールはキャッシュファイル不要!
# インストーラを使わないでZFSインストールの解説サイトで
# cachefile の取扱いに工夫されていますがまったく不要です。
# -R /media は cachefile=none,altroot=/media
# -N マウントしない altroot= は保存されない
# altroot と cachefile=none がなぜセットか
# 無理に作ると思わぬ二重マウントが起きるそれが / の場合
# 別メディアで起動して修正しないといけない
  • ブート時に第一プール以外のプールを読み込んでおきたい場合は必要で
    /boot/zfs/以下にcreateやimport時に自動的に作成される。

snapshot

zfs snap -r zroot/ROOT@08         # -r で再帰的に子供スナップも作成可能

rollback

  • マウントしたままで実行出来てしまうので怖い。ルートシステムなどでは別メディアで起動して import -NR しましょう
    zfs rollback -r zroot/ROOT@05           # 直前のsnapより前に戻すときは -r が必須
    zfs rollback -r zroot/ROOT/data@05      # 再帰的に出来ないので子供スナップも

外部へのバックアップとリストア

バックアップ

zfs send -vR zroot/ROOT@40 > /mnt/20150523.zfs

リストア

gpart bootcode -p /boot/gptboot -i 1 ada0       # GPTまたは別メディアで起動する
shutdown -r now                                 #  今回はGPTから起動させる
mount /dev/ada1p1 /media                        #  バックアップしたのをマウント
file /media/20150519.zfs                        #  どんなsnapか確認
zpool import                                    # 作成しようとしているプール名が残っていたら
zpool labelclear -f /dev/ada0p3                 # 強制削除 
zpool create -R /mnt -m none zroot ada0p3       # -R で -o altroot=/mnt -o cschefile=none 
 
zpool create -R /mnt -m none zroot mirror gpt/zfs01 gpt/zfs11 # 初めからミラー

zfs recv -v zroot/ROOT < /media/20150523.zfs    # リストア 
zfs list -t all                                 #  確認
zpool set bootfs=zroot/ROOT  zroot              # ブートの設定
gpart bootcode -p /boot/gptzfsboot -i 1 ada0    # ZFSブートへ戻す
shutdown -r now
  • 注意 古いバージョンへロールバックしたらEFIのバージョン違いで認識されない /boot/loader.efi と efiパーテーションへインストールする boot1.efifat を同期の物を

ZFS GPT ブート切替

ZFSブートへ
gpart bootcode -p /boot/gptzfsboot -i 1 ada0
GPTブートへ
gpart bootcode -p /boot/gptboot -i 1 ada0

zpool作成時 予想外のzpoolの残骸削除

#  #--destroyされてる残骸
#  zpool import -D
#  zpool labelclear /dev/ada0p3
# #--普通に残ってる残骸
#  zpool import
#  zpool labelclear -f /dev/ada0p3
# #--異常な物は最終的には場所を探して
#  dd if=/dev/zero of=/dev/ada0p3 bs=1M count=10 

ZFS情報

zfs get all zroot      #全部
zfs get sharenfs       #NFSの設定状況

ZFS共有

/etc/rc.conf
rpcbind_enable="YES"
nfs_server_enable="YES"

# NFS共有設定・開始 
zfs set sharenfs="-maproot=root -network 192.168.0.0/24" zroot/ROOT/data
# 共有設定確認
zfs get -r sharenfs zroot
# 共有停止
zfs unshare zroot/ROOT/data
# 共有再開
zfs share zroot/ROOT/data
#  初期値に戻す
zfs inherit sharenfs zroot/ROOT/data

pool名を変えてインポート

zpool import -f -R /mnt oldname newname

pool の詳細確認

zpool get all zroot
zpool get bootfs    #ブートの設定

未整理

/boot/loader.conf
kern.geom.label.gptid.enable="0"
kldstat
vi /etc/sysctl.conf
kern.ipc.somaxconn=12288
kern.ipc.maxsockbuf=1048576
/etc/fstabの内容が不正で起動できな時は。。。
mountroot> 
まず、?でマウント可能な一覧を表示

ufs:/dev/ad0s1a

等で"/"をマウント。

"/"を書き込み可能にするため、再マウント

mount -uw /

viを起動するために"/usr"と"/var"をマウント

mount /dev/ad0s1f /usr
mount /dev/ad0s1e /var

/etc/fstabを編集し、上書き後に再起動
全ての歴史ごとバックアップ
zfs send -vR  zroot/ROOT/ports@002 > /back/002r
zfs receive zroot/ROOT/ports < /back/002r

その時の状態のみバックアップ
zfs send -v  zroot/ROOT/ports@000 > /back/000

zfs receive -u マウントしないオプション

差分のバックアップは差分の直前のsnapが必要
zfs send -v -i @001 zroot/ROOT/ports@003 > /back/1to3i

ZFS UEFI で ルート切り替え NEXT起動

起動させたくない側の /boot/loader.efi をリネームする
通常は UEFI が複数の場合 GTPの順に起動する
プール名の違うものをルートに zfs receive した場合
/boot/zfs/zpool.cache を削除しておかないと 起動時 fstab がないと言って起動不可

FreeBSD


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-01-18 (水) 10:46:45 (2645d)