17

Я работаю непосредственно в виртуальной машине Ubuntu (VM). Некоторые обновления (например, ядро) были доступны в диспетчере обновлений.

Если бы я не использовал виртуальную машину, я бы не обновлял ее, поскольку есть риск что-то сломать. Поскольку это виртуальная машина, вы можете создать снимок или экспортировать устройство и восстановить его, если что-то пойдет не так.

Предположим, я не использую виртуальную машину с установкой Debian/Ubuntu. Существует ли подход установки-восстановления, который не зависит от конфигурации виртуальной машины, чтобы восстановить вашу систему точно перед обновлением (как "точка восстановления" в Windows), и его легко восстановить, как устройство виртуальной машины?

(Я не ищу «изображения-призраки» или что-то в этом роде (Norton Ghost, Clonezilla и т.д.), Я ищу что-то встроенное в систему Linux)

9 ответов9

15

В любом известном мне дистрибутиве Linux нет подобной функции. Есть несколько причин, почему это было бы намного менее полезно, чем для Windows.

  • Прежде всего, дистрибутивы Linux гораздо серьезнее, чем Microsoft, в том, что стабильные выпуски обновляются только для исправления важных ошибок и с минимальными изменениями. Например, в Ubuntu и Debian вы можете получать только обновления безопасности (-security) или только обновления безопасности и важные исправления ошибок (-updates).

  • Обновления ядра являются наиболее рискованными из-за вероятности того, что, казалось бы, полезные изменения вызовут проблемы в конкретной конфигурации оборудования. Вот почему большинство дистрибутивов позволяют устанавливать более одной версии ядра одновременно; например, на момент написания этой статьи в Ubuntu 10.04 было доступно три версии ядра: 2.6.32.21.22 из исходного выпуска, 2.6.32.22.23 с обновлениями безопасности и 2.6.32.23.24 с обновлениями без безопасности также. Если выпуск ... 24 вызывает проблемы на вашем компьютере, вы можете перезагрузиться в ... 23 (и даже пометить ... 24 как запрещенную установку, по крайней мере, если вы используете aptitude).

  • Реестра нет: все данные конфигурации находятся в файлах (в иерархии /etc), которые можно легко восстановить по отдельности, если что-то пойдет не так. Даже тогда обновления стабильной версии редко влияют на файлы в /etc

  • Если вы устанавливаете пакеты из какого-либо другого источника, кроме стабильного выпуска, то вы можете захотеть сохранить копии старых версий пакетов и сохранить резервные копии ваших файлов конфигурации. Вот несколько советов по этому поводу в Debian и Ubuntu.

    • Загруженные пакеты хранятся в /var/cache/apt/archives . Если у вас есть место на диске, просто не удаляйте старые файлы пакета, пока не убедитесь, что новая версия работает для вас.
    • Многие источники хранят более старые версии, поэтому вы можете легко понизить версию (либо загрузив и установив более старую версию вручную, либо используя подходящие настройки). Для Debian посмотрите snapshot.debian.org .
    • Существует очень простой способ настроить управление версиями для /etc: установить пакет etckeeper и активировать его с помощью команды etckeeper init . (Я делаю это, но не потому, что меня беспокоит то, что обновления что-то ломают, а потому, что я волнуюсь, что мои изменения что-то ломают.)
5

Это не нужно, поскольку менеджер пакетов заботится о том, какой файл и из какого пакета, а также может откатить обновление или установку пакета.

5

Вы можете попробовать использовать такой инструмент, как etckeeper. Этот инструмент просто хранит общесистемные файлы конфигурации в репозитории управления версиями и упрощает откат и повторное применение любых изменений.

Но, честно говоря, мне никогда не нужно было откатывать какие-либо изменения, которые произошли от обновлений в моих системах Debian / стабильной. Я использую это, чтобы исправить ошибки, которые я сделал вручную.

3

TMK, функция восстановления Windows только отменяет изменения в реестре и некоторых критических каталогах. У Linux этого нет.

Вы можете попробовать ручной подход с резервными копиями. Просто сделайте резервную копию вашего домашнего каталога и списка программ из Synaptic и используйте его в качестве точки восстановления.

3

Существует инструмент под названием Timeshift. ( http://www.teejeetech.in/p/timeshift.html ) Я этим не пользовался, но выглядит многообещающе, и я слышал от пользователей хорошие отзывы об этом. Снимки разработаны, чтобы избежать дублирования данных. И не пугайтесь малоизвестного сайта. :)

3

Обратите внимание, что Ubuntu, в частности (но, вероятно, и Debian), не будет удалять старые пакеты ядра при установке обновлений, и вы можете настроить загрузчик так, чтобы при загрузке он отображал список ядер, которые можно выбрать.

Это автоматически создает "точки восстановления" - только для ядра - потому что вы можете выбрать предыдущую версию, если более новая вызывает проблемы. Насколько я знаю, Windows не имеет ничего подобного для своих обновлений ядра. (И особенно для домашних пользователей, я бы не хотел помогать диагностировать и исправлять не загружаемую систему из-за обновления ядра.)

2

Если вы используете Диспетчер логических томов для управления содержимым ваших жестких дисков, то вы получите это бесплатно в некоторой степени, используя моментальные снимки. Процитирую великий HOWTO: «Один из примеров - сделать снимок тома, смонтировать снимок и попробовать экспериментальную программу, которая изменяет файлы на этом томе.Если вам не нравится то, что он сделал, вы можете размонтировать снимок, удалить его и смонтировать исходную файловую систему на свое место ».

1

В зависимости от вашей технологии виртуальной машины вы можете остановить / приостановить / приостановить работу виртуальной машины, выгрузить ядро и скопировать образ виртуальной машины. Если это не удалось, просто восстановите оригинал.

Если вы работаете прямо на логическом томе, вы можете создать снимок LVM на основе исходного LV. Протестируйте обновление и, если оно работает, вы переделаете его на оригинальную виртуальную машину (см. Lvcreate (8) -s)

Или используя золотую старую смолу (1). Вы создаете полный tar-архив пользовательского пространства, восстанавливаете файлы и удаляете файлы, которых не было в оригинальном tar-шарике.

1

В настоящее время Linux не предлагает такой возможности, хотя это было бы очень полезно.

Тем не менее, статья Unbreakable upgrades, ZFS и Apt описывает функцию apt-clone дистрибутива хранения Nexenta на базе Linux и предлагает ...

Существует также новая файловая система, создаваемая частично в ответ на ZFS, которая называется BTRFS, которая будет иметь много преимуществ ZFS и может быть способна включать «небьющиеся обновления» для средних дистрибутивов Linux, таких как Ubuntu, в будущем.

ИМХО, для начала нам нужна пригодная для использования файловая система Copy-On-Write (COW) для Linux, прежде чем такая функция может быть реализована в системных установщиках / обновлениях в разумном порядке.

Примечание: хотя Nexenta основана на Linux, она не использует ядро Linux. Он использует ядро OpenSolaris и ZFS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .