1. Full dump
zfs snapshot -r zroot@backup
zfs send -R zroot@backup > /mnt/backup.zfs
zfs destroy -r zroot@backup
2. Bare metal restore to ZFS
Грузимся с mfsBSD или LiveCD, диски da3 и далее - неразмеченные, куда надо развернуть систему.
gpart create -s gpt da3
gpart add -s512k -t freebsd-boot da3
gpart add -s2G -t freebsd-swap -l swap0 da3
gpart add -t freebsd-zfs -l disk0 da3
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da3
Повторить для da4, если система будет на mirror, или da4, da5, если на raidz. Удобнее использовать метки (-l), а не имена физических устройств, иначе при изменении аппаратной конфигурации "буковки поедут" и пул станет UNAVAIL. Своп-разделы тоже удобнее подключать по меткам.
zpool destroy zroot
zpool create zroot mirror /dev/gpt/disk{0,1}
или
zpool create zroot raidz /dev/gpt/disk{0,1,2}
zfs receive -Fdv zroot < /mnt/backup.zfs
zpool set bootfs=zroot/ROOT/default zroot
reboot
На восстановленной системе:
zfs destroy -r zroot@backup
Если это клон, не забыть
rm /etc/hostid /etc/ssh/*key*
Спасибо за некоторые подсказки отсюда, в частности о необходимости указания дисков в zpool в виде меток в /dev/gpt, а не имен физических устройств. В частности своп в fstab указывать так:
zfs snapshot -r zroot@backup
zfs send -R zroot@backup > /mnt/backup.zfs
zfs destroy -r zroot@backup
2. Bare metal restore to ZFS
Грузимся с mfsBSD или LiveCD, диски da3 и далее - неразмеченные, куда надо развернуть систему.
gpart create -s gpt da3
gpart add -s512k -t freebsd-boot da3
gpart add -s2G -t freebsd-swap -l swap0 da3
gpart add -t freebsd-zfs -l disk0 da3
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da3
Повторить для da4, если система будет на mirror, или da4, da5, если на raidz. Удобнее использовать метки (-l), а не имена физических устройств, иначе при изменении аппаратной конфигурации "буковки поедут" и пул станет UNAVAIL. Своп-разделы тоже удобнее подключать по меткам.
zpool destroy zroot
zpool create zroot mirror /dev/gpt/disk{0,1}
или
zpool create zroot raidz /dev/gpt/disk{0,1,2}
zfs receive -Fdv zroot < /mnt/backup.zfs
zpool set bootfs=zroot/ROOT/default zroot
reboot
На восстановленной системе:
zfs destroy -r zroot@backup
Если это клон, не забыть
rm /etc/hostid /etc/ssh/*key*
Спасибо за некоторые подсказки отсюда, в частности о необходимости указания дисков в zpool в виде меток в /dev/gpt, а не имен физических устройств. В частности своп в fstab указывать так:
# Device Mountpoint FStype Options Dump Pass# /dev/gpt/swap0 none swap sw 0 0 /dev/gpt/swap1 none swap sw 0 0 /dev/gpt/swap2 none swap sw 0 0