Из руководства администратора прочитал много.
Наконец решил сделать новую FreeBSD согласно моим представлениям и приступить к практическим испытаниям. Дистрибутив взял FreeBSD 9.0 RC2. Так как дефолтный инсталлятор не поддерживает установку на zfs, то пришлось искать инструкцию по установке. После неудачных попыток выполнить ту или иную инструкцию, нашел инструкцию, которая работает для данного дистрибутива абсолютно четко. Вот ссылка на эту драгоценную статью: http://www.aisecure.net/2011/11/28/root-zfs-freebsd9/Согласно этой статье у меня получилось несколько файловых систем (да, после чтения руководства zfs я понимаю этот термин в данном контексте). То есть отдельные фс для /usr, /var, /usr/ports и т.д.
Делать снимки оказалось очень легко: "zfs snapshot -r zroot@snap1". А вот откатываться на какой-то снепшот из под запущенной системы как выяснилось, нельзя. Потому что только отмонтированную фс можно откатывать. Разве отдельную фс можно откатить, которая системой не используется. Для таких же фс, как /, /usr или /var попытка отмонтирования, сами понимаете, вызывает у системы недоверие:) Соответственно встал вопрос. "Растет медовый вереск, а меда мы не пьем".. То есть снепшоты я делаю, а как их откатывать? И тут я вспомнил о диске с дистрибутивом, в котором есть режим LiveCD. Загружаемся. Имеем работающую операционку, с включенной поддержкой zfs, но при этом мой драгоценный zfs пул совершенно не задействован и отмонтирован.
"man zpool" подсказал мне, что же делать теперь. Команда "zpool import" выведет список доступных для импортирования пулов. Мой пул там значится. И я его импортирую "zpool import -f zroot". Не совсем понимаю, почему без опции -f импорт начинает выводить предупреждения, ну да бог с ним. И теперь наш пул готов для выполнения отката на нужный нам снепшот. Здесь тоже ждал меня сюрприз. Оказывается рекурсивный откат одновременно всех фс невозможен. Необходимо откатывать каждую фс персональной командой. Для чего я написал скрипт с командами типа "zfs rollback zroot@snap1", "zfs rollback zroot/usr@snap1" для каждой фс, какие у меня есть (всего с десяток). Ну это имеется в виду тотальный роллбек, когда ты не хочешь дать перхоти ни малейшего шанса. Если допустим я что-то кривое пропишу например в файле /etc/fstab и система из-за этого перестает нормально загружаться, то подобный "тотальный" откат бессмысленен. Мне достаточно выполнить роллбек рутовой фс, в которой /etc/fstab расположен, что делается одной командой "zfs rollback zroot@snap1".
Я пишу здесь историю своих неумелых изысканий для таких же новичков во FreeBSD и zfs, как я сам. Описал здесь команды и конкретные советы в том виде, в каком я желал бы получить ответ на свой топик на момент, когда я его создавал. И если вдруг найдутся еще такие же неопытные искатели, как я, то надеюсь они извлекут пользу из моего скромного опыта.