Czy w Linuksie (Debian / Ubuntu) istnieje „punkt przywracania”, taki jak Windows?


17

Pracuję bezpośrednio na maszynie wirtualnej Ubuntu (VM). Niektóre aktualizacje (takie jak jądro) były dostępne w menedżerze aktualizacji.

Gdybym nie używał maszyny wirtualnej, nie zaktualizowałbym jej, ponieważ istnieje ryzyko, że coś zepsuje. Ponieważ jest to maszyna wirtualna, możesz utworzyć migawkę lub wyeksportować urządzenie i przywrócić, jeśli coś pójdzie nie tak.

Załóżmy, że nie używam maszyny wirtualnej z instalacją Debian / Ubuntu. Czy istnieje podejście polegające na instalacji i przywracaniu, które nie zależy od konfiguracji maszyny wirtualnej w celu przywrócenia systemu dokładnie przed aktualizacją (jak „punkt przywracania” w systemie Windows) i jest łatwe do przywrócenia jak urządzenie maszyny wirtualnej?

(Nie szukam „obrazów duchów” ani czegoś takiego (Norton Ghost, Clonezilla itp.), Szukam czegoś wbudowanego w system Linux)


3
Wiem, że to nie na temat, więc dodaję to jako komentarz, ale OpenSolaris może zrobić migawkę całego systemu plików ZFS i przywrócić go później. Nie zajmuje też dużo miejsca na dysku z powodu deduplikacji. W rzeczywistości standardowym sposobem dokonywania poważnych aktualizacji jest utworzenie nowej migawki FS i zainstalowanie na niej aktualizacji. Jeśli ti działa, możesz usunąć stary. Jeśli nie, możesz po prostu wrócić do tego, który działał.
AndrejaKo

3
@AndrejaKo: +1 Jest to jednak „klon” (migawka do zapisu; normalne migawki są tylko do odczytu), a fakt, że nie potrzebuje dużo miejsca, nie ma nic wspólnego z deduplikacją, ale ze sposobem, w jaki obsługiwane są migawki i klony w systemach plików COW. To znaczy, że masz taką samą oszczędność miejsca na dysku także w pulach bez deduplikacji.
knweiss,

@knweiss Tak, zgadza się. Właśnie to sprawdziłem!
AndrejaKo

Odpowiedzi:


15

Nie ma podobnej funkcji wbudowanej w żadną znaną mi dystrybucję Linuksa. Istnieje kilka powodów, dla których byłby o wiele mniej przydatny niż w systemie Windows.

  • Przede wszystkim dystrybucje Linuksa są o wiele poważniejsze niż Microsoft, ponieważ aktualizacje stabilne są aktualizowane tylko w celu naprawienia ważnych błędów i przy minimalnych zmianach. Na przykład w systemach Ubuntu i Debian możesz otrzymywać tylko aktualizacje zabezpieczeń ( -security) lub tylko aktualizacje zabezpieczeń i ważne poprawki błędów ( -updates).

  • Uaktualnienia jądra są najbardziej ryzykowne, ponieważ szansa, że ​​pozornie korzystna zmiana spowoduje kłopoty na określonej konfiguracji sprzętowej. To dlatego większość dystrybucji pozwala na instalację więcej niż jednej wersji jądra; na przykład, kiedy piszę to, Ubuntu 10.04 ma dostępne trzy wersje jądra: 2.6.32.21.22z oryginalnej wersji, 2.6.32.22.23z aktualizacjami bezpieczeństwa, a także 2.6.32.23.24z aktualizacjami niezwiązanymi z bezpieczeństwem. Jeśli wydanie ... 24 powoduje problem na twoim komputerze, możesz zrestartować system pod ... 23 (a nawet oznaczyć ... 24 jako zabroniony do instalacji, przynajmniej jeśli używasz aptitude).

  • Nie ma rejestru: wszystkie dane konfiguracyjne znajdują się w plikach (w /etchierarchii), które można łatwo przywrócić indywidualnie, jeśli coś pójdzie nie tak. Nawet wtedy aktualizacje wersji stabilnej rzadko wpływają na pliki w obszarze /etc.

  • Jeśli instalujesz pakiety z innego źródła niż wersja stabilna, możesz zachować kopie starszych wersji pakietów i kopie zapasowe plików konfiguracyjnych. Oto kilka wskazówek na ten temat w Debianie i Ubuntu.

    • Pobrane pakiety są przechowywane w /var/cache/apt/archives. Jeśli masz miejsce na dysku, nie usuwaj starych plików pakietów, dopóki nie potwierdzisz, że nowsza wersja działa dla Ciebie.
    • Wiele źródeł przechowuje starsze wersje, dzięki czemu można łatwo obniżyć wersję (pobierając i instalując starszą wersję ręcznie lub korzystając z preferencji apt). W przypadku Debiana spójrz na snapshot.debian.org .
    • Istnieje bardzo łatwy sposób na skonfigurowanie kontroli wersji /etc: zainstaluj etckeeperpakiet i aktywuj go za pomocą polecenia etckeeper init. (Robię to, ale nie dlatego, że martwię się, że uaktualnienia coś zepsują, a raczej dlatego, że martwię się, że moje zmiany coś zepsują).

Tak, po prostu nie ma porównania między stabilnością Windows a Debian / stable. Nawet jeśli coś się psuje (prawie zawsze z powodu oczywistej pomyłki użytkownika), istnieje wiele narzędzi do debugowania i rozwiązywania problemów.
liori

2
„Uaktualnienia jądra są najbardziej ryzykowne” - dlatego trzymam kopię Knoppiksa obok mojego komputera. 5, a nie 6.
amfetamachina

Możesz także znaleźć przydatne [rsnapshot] (rsnapshot.org), narzędzie do tworzenia migawek systemu plików oparte na rsync .
Pablo A

5

Nie jest to konieczne, ponieważ menedżer pakietów dba o to, który plik jest z którego pakietu, a także może wycofać aktualizację lub instalację pakietu.


2
ale jeśli pakiet coś zepsuł się podczas restartu, wycofanie może być trudne (szczególnie związane z wersjami jądra)
warren

1
Właśnie dlatego zwykle zachowuje się poprzednie jądro i można je wybrać do uruchamiania w grub.
mbq

1
Nie zgadzam się. Byłoby bardzo przydatne, aby móc przełączać się między aktualizacją systemu operacyjnego x a aktualizacją x + 1 (różnica może obejmować znacznie więcej niż pakiet jądra) przy prostym ponownym uruchomieniu. Jest to możliwe dzięki OpenSolaris.
knweiss,

W Solarisie wszystko jest możliwe, z wyjątkiem znalezienia stabilnych sterowników ;-)
mbq

5

Możesz spróbować użyć narzędzia takiego jak etckeeper . To narzędzie po prostu przechowuje ogólnosystemowe pliki konfiguracyjne w repozytorium kontroli wersji i ułatwia wycofanie zmian i zastosowanie ich ponownie.

Ale, szczerze mówiąc, nigdy nie musiałem wycofywać żadnych zmian, które pojawiły się w wyniku aktualizacji moich systemów debian / stable. Używam go do naprawiania błędów, które popełniłem ręcznie.


Używam etckeeper, ale tak naprawdę bardziej przydatne jest przeglądanie osi czasu zmian niż cofanie (oczywiście masz obie umiejętności). Korzystanie z wbudowanego serwera WWW (np. Hg, git, bzr itp.) Jest często najłatwiejsze:sudo hg serve -R /etc

3

TMK, funkcja przywracania systemu Windows przywraca tylko zmiany w rejestrze i niektórych krytycznych katalogach. Linux nie ma tego.

Możesz wypróbować ręczne podejście z kopiami zapasowymi. Po prostu wykonaj kopię zapasową katalogu domowego i listy programów z Synaptic i użyj go jako punktu przywracania.


3

Zwróć uwagę, że w szczególności Ubuntu (ale prawdopodobnie także Debian) nie usunie starych pakietów jądra podczas instalowania aktualizacji, i możesz skonfigurować program ładujący, aby przedstawiał listę jąder do wyboru podczas uruchamiania.

To automatycznie tworzy „punkty przywracania” - tylko dla jądra - ponieważ możesz wybrać poprzednią wersję, jeśli nowsza powoduje problemy. O ile mi wiadomo, system Windows nie ma nic takiego w przypadku aktualizacji jądra. (A szczególnie dla użytkowników domowych, nie chciałbym pojąć, że pomogliśmy zdiagnozować i naprawić system, którego nie można uruchomić z powodu aktualizacji jądra).



2

Jeśli korzystasz z Menedżera woluminów logicznych do zarządzania zawartością dysków twardych, możesz uzyskać to za darmo w pewnym stopniu za pomocą migawek. Cytując świetne HOWTO : „Jednym z przykładów jest wykonanie migawki woluminu, zamontowanie migawki i wypróbowanie eksperymentalnego programu, który zmienia pliki na tym woluminie. Jeśli nie podoba ci się to, co zrobił, możesz odmontować migawkę, usunąć ją, i zamontuj oryginalny system plików na swoim miejscu. ”


Chciałbym zauważyć, że sugerowane partycjonowanie dysku w Ubuntu 12.04+ wykorzystuje LVM, więc jest to naprawdę najlepsza sugestia.
kevinf

1

W zależności od technologii maszyny wirtualnej możesz zatrzymać / zawiesić / wstrzymać maszynę wirtualną, zrzucić rdzeń i skopiować obraz maszyny wirtualnej. Jeśli to się nie powiedzie, po prostu przywróć oryginał.

Jeśli korzystasz bezpośrednio z woluminu logicznego, możesz utworzyć migawkę LVM na podstawie oryginalnej LV. Przetestuj aktualizację, a jeśli zadziała, powtórz ją na oryginalnej maszynie wirtualnej (zobacz lvcreate (8) -s)

Lub używając złotej starej smoły (1). Tworzysz pełną tarę przestrzeni użytkownika, przywracasz pliki i usuwasz pliki, których nie było w oryginalnej tarce.


Z pytania: „Czy istnieje metoda przywracania instalacji, która nie zależy od konfiguracji maszyny wirtualnej”?
Ben Voigt

1

Obecnie Linux tak naprawdę nie oferuje takiej funkcji, chociaż byłby bardzo przydatny.

Jednak artykuł Niezniszczalne aktualizacje, ZFS i Apt opisuje funkcję apt-clone dystrybucji magazynu Nexenta opartego na systemie Linux i sugeruje ...

Częściowo powstaje również nowy system plików w odpowiedzi na ZFS, zwany BTRFS, który będzie miał wiele zalet ZFS i może być w stanie umożliwić „niezniszczalne aktualizacje” dla średnich dystrybucji Linuksa, takich jak Ubuntu, również w przyszłości.

IMHO najpierw potrzebujemy użytecznego systemu plików Copy-On-Write (COW) dla systemu Linux, zanim taka funkcja będzie mogła zostać zaimplementowana w instalatorach / aktualizatorach systemu w rozsądny sposób.

Uwaga: Chociaż Nexenta jest oparty na systemie Linux, nie używa jądra systemu Linux. Używa jądra OpenSolaris i ZFS.


Nie chcę wybierać twoich gnid, ale oparty na systemie Linux bez jądra systemu Linux jest trochę oksymoronem.
Seamus Connor,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.