*[[man ZFS:http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=zfs&dir=jpman-10.1.2%2Fman&sect=0]]   [[man ZPOOL:http://www.jp.freebsd.org/cgi/mroff.cgi?sect=8&cmd=&lc=1&subdir=man&dir=jpman-10.1.2%2Fman&subdir=man&man=zpool]] [#m7f7cc15]


#contents
----------------------------

** zpool.cache [#r242bd4f]
-ブート用の一番目にあるプールはキャッシュファイル不要!

 # インストーラを使わないでZFSインストールの解説サイトで
 # cachefile の取扱いに工夫されていますがまったく不要です。
 # -R /media は cachefile=none,altroot=/media
 # -N マウントしない altroot= は保存されない
 # altroot と cachefile=none がなぜセットか
 # 無理に作ると思わぬ二重マウントが起きるそれが / の場合
 # 別メディアで起動して修正しないといけない

-ブート時に第一プール以外のプールを読み込んでおきたい場合は必要で&br;/boot/zfs/以下にcreateやimport時に自動的に作成される。

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

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

** 外部へのバックアップとリストア [#t3d72672]
***バックアップ [#v9633c29]
 zfs send -vR zroot/ROOT@40 > /mnt/20150523.zfs

***リストア [#a9830ae6]
 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 ブート切替 [#s9aa3fb8]
 ZFSブートへ
 gpart bootcode -p /boot/gptzfsboot -i 1 ada0
 GPTブートへ
 gpart bootcode -p /boot/gptboot -i 1 ada0

** zpool作成時 予想外のzpoolの残骸削除 [#n47c87e4]
 #  #--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情報 [#c306cf3e]

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

** ZFS共有 [#td2a62cd]

 /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名を変えてインポート [#p9721676]
 zpool import -f -R /mnt oldname newname

** pool の詳細確認 [#x95fcbb6]
 zpool get all zroot

 zpool get bootfs    #ブートの設定
 
** 未整理 [#i18dd429]
 /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起動 [#j8ba39d2]
 起動させたくない側の /boot/loader.efi をリネームする
 通常は UEFI が複数の場合 GTPの順に起動する

 プール名の違うものをルートに zfs receive した場合
 /boot/zfs/zpool.cache を削除しておかないと 起動時 fstab がないと言って起動不可
[[FreeBSD]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS