ROSA Freeze — различия между версиями
D uragan (обсуждение | вклад) (+ Url to source, English page) |
D uragan (обсуждение | вклад) м (оформление, орфография/пунктуация) |
||
Строка 1: | Строка 1: | ||
− | ROSA является динамично развивающейся средой, постоянно получающей большие пласты обновлений. Обновления призваны привнести в систему улучшения и новый функционал, однако иногда они имеют обратный эффект, ломая что-то работающее и вызывая недовольство пользователей. Кроме того, многие члены | + | ROSA является динамично развивающейся средой, постоянно получающей большие пласты обновлений. Обновления призваны привнести в систему улучшения и новый функционал, однако иногда они имеют обратный эффект, ломая что-то работающее и вызывая недовольство пользователей. Кроме того, многие члены нашего сообщества – это энтузиасты, которых постоянно тянет попробовать что-то новое. Например, всевозможные программы из различных источников, которые не имеют прямого отношения к дистрибутиву. Рано или поздно программы могут вступить в конфликт с приложениями и политиками ОС и привести систему (по крайней мере частично) в нерабочее состояние. Как результат, для многих пользователей актуальным вопросом является автоматический возврат поломанной системы в рабочее состояние. |
Если вы знакомы с управлением пакетами RPM, то для отката системы вы можете воспользоваться инструментами [http://wiki.rosalab.ru/ru/index.php/%D0%91%D0%BB%D0%BE%D0%B3:%D0%A2%D0%BE%D1%87%D0%BA%D0%B0_%D0%A0%D0%BE%D1%81%D1%8B/Urpmi.recover_-_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8_%D0%B4%D0%BB%D1%8F_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D0%BE%D0%B9_%D0%B1%D0%B0%D0%B7%D1%8B Urpmi.recover] и [http://wiki.rosalab.ru/ru/index.php/Urpm-tools#urpm-reposync urpm-reposync]. Однако гарантировать возврат поломанной системы в работоспособное состояние эти инструменты не могут - ведь не факт, что поломка вызвана исключительно пакетами, или что пакеты можно корректно откатить до предыдущих версий. | Если вы знакомы с управлением пакетами RPM, то для отката системы вы можете воспользоваться инструментами [http://wiki.rosalab.ru/ru/index.php/%D0%91%D0%BB%D0%BE%D0%B3:%D0%A2%D0%BE%D1%87%D0%BA%D0%B0_%D0%A0%D0%BE%D1%81%D1%8B/Urpmi.recover_-_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8_%D0%B4%D0%BB%D1%8F_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D0%BE%D0%B9_%D0%B1%D0%B0%D0%B7%D1%8B Urpmi.recover] и [http://wiki.rosalab.ru/ru/index.php/Urpm-tools#urpm-reposync urpm-reposync]. Однако гарантировать возврат поломанной системы в работоспособное состояние эти инструменты не могут - ведь не факт, что поломка вызвана исключительно пакетами, или что пакеты можно корректно откатить до предыдущих версий. |
Версия 13:46, 28 августа 2014
ROSA является динамично развивающейся средой, постоянно получающей большие пласты обновлений. Обновления призваны привнести в систему улучшения и новый функционал, однако иногда они имеют обратный эффект, ломая что-то работающее и вызывая недовольство пользователей. Кроме того, многие члены нашего сообщества – это энтузиасты, которых постоянно тянет попробовать что-то новое. Например, всевозможные программы из различных источников, которые не имеют прямого отношения к дистрибутиву. Рано или поздно программы могут вступить в конфликт с приложениями и политиками ОС и привести систему (по крайней мере частично) в нерабочее состояние. Как результат, для многих пользователей актуальным вопросом является автоматический возврат поломанной системы в рабочее состояние.
Если вы знакомы с управлением пакетами RPM, то для отката системы вы можете воспользоваться инструментами Urpmi.recover и urpm-reposync. Однако гарантировать возврат поломанной системы в работоспособное состояние эти инструменты не могут - ведь не факт, что поломка вызвана исключительно пакетами, или что пакеты можно корректно откатить до предыдущих версий.
Если вы предвидите, что в рамках текущего сеанса работы с большой вероятностью сломаете систему и вам придется откатываться до рабочего состояния, то вы можете воспользоваться ROSA Freeze. При использовании ROSA Freeze, ОС может работать в двух режимах — обычном и режиме "заморозки". При использовании последнего поверх всех системных директорий верхнего уровня (/bin, /etc, /usr и так далее; список может быть скорректирован в настройках) с помощью aufs монтируются директории-«перехватчики«, находящиеся в tmpfs либо на отдельном разделе жесткого диска. Любые изменения, вносимые в «замороженные» директории, реально попадают в директории-«перехватчики», а содержимое оригинальных директорий остается неизменным. При перезагрузке машины все содержимое этих перехватчиков удаляется и системные директории возвращаются в первоначальное состояние. При этом после перезагрузки система продолжает оставаться в замороженном состоянии – выход из этого режима надо производить явно. Предусмотрена возможность переноса всех изменений из aufs, сделанных в рамках текущей сессии, в оригинальные директории.
Находится инструментарий в пакете rosa-freeze. Работает наш инструмент в консоли, только от пользователя root, и запускается командой rfreeze. Для проверки работоспособности, можно запросить текущий статус:
# rfreeze status
Для «заморозки» системы, необходимо выполнить команду
# rfreeze enable
Система переходит в замороженное состояние сразу же, то есть перезагрузки не требуется. Однако после перезагрузки она по-прежнему будет находиться в этом состоянии, и для отключения режима заморозки надо дать команду
# rfreeze disable
После этой команды уже обязательно необходима перезагрузка.
Пока система находится в «замороженном» состоянии, она ведет себя почти так же, как и в случае «Deep Freeze» — все изменения, внесенные пользователем в систему, магическим образом исчезнут после перезагрузки. Если вы вдруг осознали, что не хотите такого поворота событий, то можно слить текущее состояние системы с ее оригинальным состоянием командой
# rfreeze merge
После этого текущее состояние системы станет базовым.
Впрочем, команда «merge» потенциально опасная, будьте с ней осторожнее и делайте резервные копии. Сразу же могу сказать, что сейчас она не обработает ситуацию, когда что-то кроме /home или /tmp находится на отдельном разделе.
Что и как замораживается
по умолчанию, «заморозке» подлежат все топ-левел директории, кроме:
- /dev
- /home
- /lost+found
- /media
- /mnt
- /proc
- /run
- /sys
- /tmp
Для каждой из остальных директорий верхнего уровня создается «перехватчик» в директории /tmp/sysroot-rw, которая, в свою очередь, располагается в tmpfs (в будущем рассмотрим возможность размещения ее на отдельном разделе). Этот «перехватчик» монтируется через aufs поверх исходной директории так, что все изменения идут в /tmp/sysroot-rw.
Например, поверх директории /bin через aufs монтируется /tmp/sysroot-rw/bin. Если пользователь что-то меняет в /bin, то реально изменения происходят в /tmp/sysroot-rw/bin, а оригинальный /bin не затрагивается. Но пользователь (благодаря aufs) этого не замечает и в течение сеанса его работы (до перезагрузки/выключения) он видит в /bin все свои изменения.
Оригинальные версии всех директорий можно при этом наблюдать в директории /tmp/sysroot-ro.
Дополнительная информация
Перечень опций и возможностей, поддерживаемых установленной в системе версией ROSA Freeze, можно узнав, запустив команду
rfreeze --help
Исходный код программы распространяется под лицензией BSD и доступен по адресу https://abf.rosalinux.ru/soft/rosa-freeze