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)
źródło
Odpowiedzi:
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.22
z oryginalnej wersji,2.6.32.22.23
z aktualizacjami bezpieczeństwa, a także2.6.32.23.24
z 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
/etc
hierarchii), 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.
/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./etc
: zainstalujetckeeper
pakiet i aktywuj go za pomocą poleceniaetckeeper init
. (Robię to, ale nie dlatego, że martwię się, że uaktualnienia coś zepsują, a raczej dlatego, że martwię się, że moje zmiany coś zepsują).źródło
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.
źródło
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.
źródło
sudo hg serve -R /etc
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.
źródło
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).
źródło
Istnieje narzędzie o nazwie Timeshift. ( http://www.teejeetech.in/p/timeshift.html ) Nie korzystałem z niego, ale wygląda obiecująco i słyszałem o nim dobre rzeczy od użytkowników. Migawki mają na celu uniknięcie powielania danych. Nie obawiaj się niejasnej strony internetowej. :)
źródło
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. ”
źródło
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.
źródło
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 ...
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.
źródło