Чи є в Linux (Debian / Ubuntu) точка відновлення, як Windows?


17

Я працюю безпосередньо у віртуальній машині Ubuntu (VM). Деякі оновлення (наприклад, ядро) були доступні у менеджері оновлень.

Якби я не використовував VM, я б не оновлював його, оскільки це ризик щось зламати. Оскільки це VM, ви можете створити знімок або експортувати пристрій та відновити, якщо щось піде не так.

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

(Я не шукаю "привидів зображень" чи чогось подібного (Нортон Ghost, Clonezilla тощо), я шукаю щось вбудоване в системі Linux)


3
Я знаю, що це поза темою, тому я додаю це як коментар, але OpenSolaris може зробити знімок всієї файлової системи ZFS та відновити її пізніше. Це також не займає багато місця на диску через дедупликацію. Насправді стандартний спосіб зробити великі оновлення - це створити новий знімок FS та встановити оновлення на ньому. Якщо ti працює, ви можете видалити старий. Якщо ні, то можна просто повернутися до тієї, що працювала.
AndrejaKo

3
@AndrejaKo: +1 Однак це "клон" (знімний знімок, який можна записати; звичайні знімки є лише для читання), а той факт, що йому не потрібно багато місця, не має нічого спільного з дедуплікацією, а з способом обробки знімків та клонів. у файлових системах COW. Тобто ви отримуєте однаковий дисковий простір і в пулах, що не знімаються.
knweiss

@knweiss Так, саме так. Я просто подивився!
AndrejaKo

Відповіді:


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 як заборонену установку, принаймні, якщо ви користуєтеся здатністю).

  • Реєстру немає: усі дані конфігурації є у ​​файлах (в /etcієрархії), які можна легко відновити окремо, якщо щось піде не так. Навіть тоді оновлення стабільного випуску рідко впливають на файли під /etc.

  • Якщо ви встановлюєте пакунки з якогось іншого джерела, окрім стабільного випуску, можливо, ви захочете зберегти копії старих версій пакетів та зберегти резервні копії файлів конфігурації. Ось кілька підказок щодо цього в Debian та Ubuntu.

    • Завантажені пакети зберігаються в /var/cache/apt/archives. Якщо у вас є місце на диску, просто не видаляйте старі файли пакунків, поки ви не підтвердите, що новіша версія працює для вас.
    • У багатьох джерелах зберігаються старіші версії, тому ви можете легко змінити їх кількість (будь-коли, завантаживши та встановивши старішу версію вручну, або використовуючи вподобання). Про Debian дивіться на snapshot.debian.org .
    • Існує дуже простий спосіб встановити контроль над версією /etc: встановити etckeeperпакет та активувати його командою etckeeper init. (Я це роблю, але не тому, що я переживаю, щоб оновлення щось зламали, а тому, що я переживаю, щоб мої зміни щось зламали.)

Так, просто немає порівняння між стабільністю Windows та Debian / stable. Навіть якщо щось зламається (майже завжди через очевидну помилку користувача), є безліч інструментів для налагодження та виправлення проблеми.
liori

2
"Оновлення ядра є найризикованішим" - Тому я зберігаю копію Knoppix поруч зі своїм комп'ютером. 5, а не 6.
амфетамахін

Ви також можете знайти корисну [rsnapshot] (rsnapshot.org), утиліту знімків файлової системи на основі rsync .
Пабло А

5

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


2
але якщо пакунок щось зламав під час перезавантаження, зробити відкат може стати складним (особливо це стосується ревізії ядра)
warren

1
Ось чому зазвичай зберігається попереднє ядро ​​і його можна вибрати для завантаження в grub.
mbq

1
Я не згоден. Було б дуже корисно мати можливість перемикатися між оновленням ОС x та оновленням x + 1 (різниця може містити набагато більше, ніж пакет ядра) простим перезавантаженням. Це можливо за допомогою OpenSolaris.
knweiss

З Solaris все можливо, крім пошуку стабільних драйверів ;-)
mbq

5

Ви можете спробувати скористатися таким інструментом, як etckeeper . Цей інструмент просто зберігає загальносистемні файли конфігурації у сховищі контролю версій та спрощує відкат та знову застосувати будь-які зміни.

Але, чесно кажучи, мені ніколи не потрібно було відмовляти будь-які зміни, що виникали з оновлень на моїх debian / стабільних системах. Я використовую це для виправлення помилок, які я робив вручну.


Я використовую etckeeper, але насправді вважаю кориснішим перегляд часової шкали змін, ніж відкат (звичайно, ви отримуєте обидва здібності). Використовувати вбудований веб-сервер (наприклад, hg, git, bzr тощо) найчастіше найпростіше:sudo hg serve -R /etc

3

TMK, функція відновлення Windows лише повертає зміни до реєстру та деяких критичних каталогів. У Linux цього немає.

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


3

Зауважте, що Ubuntu зокрема (але, мабуть, також Debian) не буде видаляти старі пакети ядра під час встановлення оновлень, і ви можете налаштувати завантажувач, щоб представити список ядер, які вибирати під час завантаження.

Це автоматично створює "точки відновлення" - лише для ядра - тому що ви можете вибрати попередню версію, якщо новіша спричинить проблеми. Наскільки я знаю, Windows не має нічого подібного для своїх оновлень ядра. (І особливо для домашніх користувачів, я не хотів би зрозуміти, допомагаючи одному діагностувати та виправляти незавантажувану систему через оновлення ядра.)


3

Є інструмент під назвою Timeshift. ( http://www.teejeetech.in/p/timeshift.html ) Я не користувався цим, але виглядає багатообіцяючим, і про нього чули хороші речі від користувачів. Знімки створені для уникнення дублювання даних. І не лякайтеся неясного веб-сайту. :)


2

Якщо ви використовуєте Logical Volume Manager для управління вмістом ваших жорстких дисків, ви отримуєте це безкоштовно до деякої міри за допомогою знімків. Процитуючи чудовий HOWTO : "Один із прикладів - зробити знімок тома, встановити знімок і спробувати експериментальну програму, яка змінює файли на цьому томі. Якщо вам не подобається, що він робив, ви можете зняти знімок, видалити його, і встановіть оригінальну файлову систему на її місце. "


Хочу зазначити, що запропонований розділ диска на Ubuntu 12.04+ використовує LVM, тому це справді найкраща пропозиція.
kevinf

1

Залежно від вашої технології VM, ви можете зупинити / призупинити / призупинити VM, скинути серцевину і скопіювати зображення VM. Якщо це не вдалося, просто відновіть оригінал.

Якщо ви прямо на логічному томі, ви можете створити знімок LVM на основі вихідного LV. Перевірте оновлення, і якщо воно спрацьовує, ви повторите його на оригінальній програмі VM (див. Lvcreate (8) -s)

Або використовуючи золотий старий дьоготь (1). Ви створюєте повну кулю гудрому простору користувача, відновлюєте файли та видаляєте файли, які не були в оригінальній кулі гудрону.


З питання: "Чи існує підхід до встановлення-відновлення, який не залежить від конфігурації VM"?
Ben Voigt

1

Зараз Linux насправді не пропонує такої функції, хоча це було б дуже корисно.

Однак у статті Незламні оновлення, ZFS та Apt описується особливість придатного клонування дистрибутиву пам’яті Nexenta на базі Linux та пропонує…

Існує також нова файлова система, яка створюється частково як відповідь на ZFS під назвою BTRFS, яка матиме багато переваг ZFS і може бути спроможна забезпечити "нерозбірливі оновлення" для середніх дистрибутивів Linux, таких як Ubuntu в майбутньому.

IMHO нам спочатку потрібна зручна файлова система Copy-On-Write (COW) для Linux, перш ніж така функція може бути реалізована у системних інсталяторах / оновленнях здоровим способом.

Примітка. Хоча Nexenta базується на Linux, він не використовує ядро ​​Linux. Він використовує ядро ​​OpenSolaris і ZFS.


Я не хочу вибирати ваші гниди, але на базі Linux без ядра Linux - це трохи оксиморон.
Сеамус Коннор
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.