Czy dla Ubuntu jest jakaś aplikacja podobna do Deep Freeze?

10

Chciałbym wiedzieć, czy istnieje jakaś alternatywa dla Deep Freeze dla systemu Linux, która jest wciąż w fazie rozwoju, ponieważ przeczytałem kilka rzeczy w Internecie i wygląda na to, że ta sama firma, która opracowała Deep Freeze, miała wersję na Linuxa, ale projekt został przerwany.

Zignd
źródło
Dlaczego miałbyś tego chcieć? Po prostu nie zezwalaj użytkownikom innym niż root na zmianę plików systemowych.
David Foerster,
@DavidFoerster Właśnie edytowałem pytanie, aby odpowiedzieć na Twój komentarz.
Zignd
Cześć, możesz spróbować tej alternatywnej sourceforge.net/projects/dafturnofris-id
2
Normalni (gotowi do użycia) użytkownicy-goście w (niedawnym?) Ubuntu są tworzeni w locie, mają swój dom /tmpi są czyszczeni po wylogowaniu ... czy to nie wystarczy?
Rmano

Odpowiedzi:

8

OFRIS to aplikacja typu open source, która może zamrozić twój system Linux, to jest jak Deep Freeze w systemie operacyjnym Microsoft Windows.

Dla wersji Ubuntu 9.10, 10.04 i 10.10. Aby zainstalować OFRIS, po prostu naciśnij Ctrl+ Alt+ Tna klawiaturze, aby otworzyć Terminal. Kiedy się otworzy, uruchom poniższe polecenia:

sudo add-apt-repository ppa:tldm217/tahutek.net -y
sudo apt-get update && sudo apt-get install ofris-en -y

Dla wersji Ubuntu 11.04, 11.10, 12.04 i 13.04. Aby zainstalować OFRIS, po prostu naciśnij Ctrl+ Alt+ Tna klawiaturze, aby otworzyć Terminal. Kiedy się otworzy, uruchom poniższe polecenia:

[Format pliku COPY]

if [ $(uname -m) == "x86_64" ]; then deb="http://goo.gl/DleLl"; else deb="http://goo.gl/V94Qs"; fi && wget -q $deb -O ofris.deb && sudo dpkg -i ofris.deb && rm ofris.deb

Zdjęcie poniżej pokazuje OFRIS działający 13.04

wprowadź opis zdjęcia tutaj

Źródło: XGeek

Mitch
źródło
Zainstalowałem to w 15.10, a następnie zastosowałem Freeze, naciskając 3, co potwierdziło, że system jest w trybie zamrożenia. Następnie zrestartowałem, utworzyłem plik / var / tmp / myname z wartością, następnie ponownie uruchomiłem ponownie, ale plik nadal tam jest. Jak się marznie?
Co dokładnie masz na myśli? Muszę też sprawdzić, czy to działa 15.10. System zamrażania resetuje wszystko tak, jak było przed zamrożeniem. Proszę daj mi znać.
Mitch
3

Ostrzeżenie: wdrożyłem to rozwiązanie i działa, ale czasy scalania, aby wrócić do migawki, mogą powodować długi proces ładowania, jeśli w systemie dokonano dużych zmian podczas ostatniego rozruchu. Podczas tego okresu oczekiwania użytkownikom może się wydawać, że system się zawiesił!

Uważaj również, aby każdy, kto ma wystarczającą wiedzę, aby zamontować migawkę, może wprowadzić zmiany w stanie „zamrożonym”. Skorzystałem z tej możliwości aktualizacji „zamrożonych” systemów, ale to także może wydłużyć czas potrzebny do scalenia (przywrócenia) migawki!


Migawki LVM + cron + skrypt = stan „zamrożony”

Niedawno zacząłem kopać w LVM i przyszło mi do głowy, że możliwe jest stworzenie „zamrożonego” stanu na maszynie za pomocą LVM i jego możliwości tworzenia migawek. Oczywiście ta metoda wymaga systemu skonfigurowanego przy użyciu LVM (lub przynajmniej LVM na partycjach do zamrożenia).

Podsumowanie:

  • Zainstaluj system na partycjach LVM, rezerwując wystarczającą ilość miejsca na PV do wykonania migawki
  • Skonfiguruj system tak, jak chcesz.
  • Utwórz zadanie CRON uruchamiane jako root podczas rozruchu, aby scalić migawkę i utwórz nową migawkę, aby zastąpić scaloną
  • Wszystkie kolejne restarty powracają do migawki. Wszystkie utworzone migawki są pobierane z systemu w stanie, w którym go utworzono.
  • Jako dodatkowy bonus, migawka może być montowana i modyfikowana (pod warunkiem, że masz uprawnienia roota), a stan „zamrożony” może być aktualizowany w razie potrzeby.

Dowód koncepcji: Zatrzymaj wszystko oprócz jednej partycji z czystej instalacji

Instalacja:

  • Uruchom z dysku Live Ubuntu / USB i wybierz opcję „Wypróbuj Ubuntu bez instalacji”. Jest to ważne przy ręcznym konfigurowaniu partycji za pomocą LVM
  • Gdy Ubuntu ładuje partycjonowanie dysku za pomocą wybranego narzędzia, tak aby miał jedną partycję, która zajmuje całą przestrzeń dysku. Oto z czym pracuję:
    • /dev/sda (rozmiar 1T)
      • /dev/sda1 (rozmiar 1T)
  • Następnie w terminalu włącz LVM /dev/sda1. Zamierzam umieścić większość systemu na jednej partycji, ale nie musiałbyś tego robić.
    • sudo pvcreate /dev/sda1
    • sudo vgcreate ubuntu-vg /dev/sda1
    • sudo lvcreate -n swap -L 1G ubuntu-vg
    • sudo lvcreate -n unfrozen -L 10G ubuntu-vg
    • sudo lvcreate -n root -l +50%free ubuntu-vg
  • Teraz, jeśli były do uruchomienia sudo vgs, a następnie przez sudo lvswas powinien być w stanie zobaczyć, że ilość wolnego miejsca w grupie woluminów „ubuntu-VG” (VFree pod wyjście VGS) jest równa ilości miejsca podjętej przez wolumin logiczny „root „(LSize poniżej wyjścia lvs). W moim przypadku mam 506,44 g za darmo w Ubuntu-vg, a moja partycja root ma 506,44 g. Jeśli wolne miejsce pozostawione w grupie woluminów jest równe rozmiarowi partycji, którą chcę zamrozić, powinienem być w stanie wymazać całą partycję i nadal móc odzyskać system po ponownym uruchomieniu. Pozostaw resztę wolnego miejsca w Ubuntu-vg na razie nieużywanym. Użyjemy go później.
  • Teraz zainstaluj Ubuntu przy użyciu ręcznego partycjonowania image.png
  • Po zakończeniu instalacji idź ponownie do nowo zainstalowanego systemu.
  • Po uruchomieniu w nowym systemie skonfiguruj go tak, aby był dokładnie taki, jak chcesz, gdy komputer uruchamia się za każdym razem.
    • Jeśli nie wprowadzisz przypadkowych zmian do migawki i nie chcesz, aby partycja migawki była wyświetlana na pasku menu ...
      • mkdir /steady
      • Edytuj /etc/fstab, dodając (to wszystko jeden wiersz) /dev/ubuntu-vg/steadystate /steady ext4 defaults,ro,nofail 0 1jako ostatni wiersz pliku
    • Ponieważ rzeczy takie jak aktualizacje będą zdmuchiwane przy każdym ponownym uruchomieniu, możesz je wyłączyć.
    • Jeśli masz niezamrożoną partycję taką jak moja w / unfrozen, nie zapomnij udostępnić jej użytkownikom, którzy potrzebują do niej dostępu
  • Po skonfigurowaniu systemu dokładnie tak, jak tego chcesz, utwórz następujący skrypt (będziesz potrzebować uprawnień roota) i zapisz jak /root/steadystate.shw swoim ulubionym edytorze. Pamiętaj, że jeśli zmieniłeś nazwę grupy woluminów podczas konfigurowania LVM, musisz zaktualizować ją również w skrypcie poniżej.
    #!/bin/bash
    LOG=/dev/kmsg

    # wait for merge in progress
    echo -n "Reverting to snapshot if present... " | tee -a $LOG
    merging=1
    while [ "$merging" == "1" ];
    do
        /usr/sbin/service lightdm stop #prevent the auto-login/login screen from loading
        [ "$(sudo lvs -a | grep steadystate)" == "" ] && merging=0
        sleep 1
    done

    # create snapshot
    echo -n "Creating new snapshot... " | tee -a $LOG
    /sbin/lvcreate -s -n steadystate -l +100%free /dev/ubuntu-vg/root

    # make sure root comes online before trying to merge
    while [ ! -e /dev/mapper/ubuntu--vg-root];
    do
        sleep .5;
    done
    echo -n "Scheduling reset to snapshot... " | tee -a $LOG
    /sbin/lvconvert --merge /dev/ubuntu-vg/steadystate

    echo -n "Starting lightdm... " | tee -a $LOG
    /usr/sbin/service lightdm start
  • Na koniec uruchom sudo crontab -e, wybierz edytor i umieść @reboot /bin/bash /root/steadystate.shna końcu pliku. Zapisz i zamknij ( Ctrl+ X; odpowiedz, Yaby zapisać)
  • Uruchom ponownie i powinieneś mieć system, który jest zamrożony, z wyjątkiem partycji zamontowanej w / unfrozen

Działa to, ponieważ migawka jest tworzona w czasie uruchamiania, i mimo że zaraz po tym przekazujemy polecenie scalenia migawki, migawki nie można scalić, gdy wolumin logiczny dla roota jest aktywny. W związku z tym odkłada akcję scalania do następnego uruchomienia / dev / ubuntu-vg / root, który jest przy następnym restarcie. Ta akcja byłaby również uruchomiona, gdyby system został uruchomiony z aktywnego USB.

Tylko dla kopnięć, wszedłem po ponownym uruchomieniu i uruchomiłem, sudo apt remove --purge firefox* libreoffice-* unity*co normalnie nie radzę robić, ponieważ usuwa niektóre przydatne programy i ustawia system w stanie, który może być mniej niż pożądany! broken.png System nawet nie zamknąłby się poprawnie z GUI. Jak to naprawić? Restart! rebooted.png Po ponownym uruchomieniu wszystko wróciło do porządku. Firefox, LibreOffice i Unity wróciły tam, gdzie były.

Próbowałem także usunąć system Linux *. To sprawiło, że maszyna nie mogła się uruchomić, jednak zwykłe uruchomienie z dysku Ubuntu na żywo sprawiało, że scalanie miało miejsce. Ponowne uruchomienie pozostawiło system w stanie „zamrożenia”

Jeśli chcesz mieć możliwość wprowadzania zmian, możesz (ponownie) zamontować migawkę z uprawnieniami rw, a następnie wykonać do niej chroot i wprowadzić wszelkie zmiany, które chcesz pozostawić na stałe. To nie jest bezbłędne, ale jest dowodem koncepcji.

b_laoshi
źródło
1

Domyślnie Ubuntu i większość innych Uników odmawia regularnym użytkownikom (studentom, gościom) dostępu do plików systemowych. Tylko administrator z odpowiednią autoryzacją (nazwa użytkownika i klucz) może instalować oprogramowanie, zmieniać ustawienia systemowe lub usuwać partycje.

Zwykli użytkownicy mogą domyślnie zapisywać tylko w swoim katalogu domowym i katalogu tymczasowym systemu. Częstym sposobem obsługi jednorazowych sesji gości jest umieszczenie ich katalogu domowego w katalogu temp, a katalogu temp w pamięci głównej.

Jeśli chcesz się upewnić, zamontuj partycję systemową tylko do odczytu i połóż na niej partycję Aufs , która przechowuje zmiany w pamięci głównej.

David Foerster
źródło
1

fsprotect to zestaw skryptów chroniących istniejące systemy plików. fsprotect jest doskonały do ​​komputerów publicznych, takich jak biblioteki, kafejki internetowe itp.

Za pomocą aufs pakują system plików tmpfs, zmuszając do zapisania zmian w systemie plików tmpfs.

Główny system plików jest chroniony przez skrypt initramfs. Inne systemy plików są chronione przez skrypt inicjujący. Wszystkie chronione systemy plików stają się tylko do odczytu, zapewniając ich niezmienność nawet po wyłączeniu zasilania.

Aby zainstalować fsprotect we wszystkich obecnie obsługiwanych wersjach Ubuntu, otwórz terminal i wpisz:

sudo apt-get install fsprotect

Korzyści ze stosowania fsprotect to:

  • Systemy plików są chronione i żadna zmiana nigdy nie jest zapisywana na dysku.
  • Chronione systemy plików są montowane tylko do odczytu. Oznacza to, że nie zostaną one uszkodzone, gdy komputer zostanie nieprawidłowo wyłączony.
  • Jest bardzo łatwy w użyciu.
  • W niektórych przypadkach powoduje to szybszy dostęp do systemu plików.

Wady korzystania z fsprotect to:

  • Zmiany w systemie plików nie mogą przekraczać określonego z góry limitu bajtów (ustawionego przez Ciebie).
  • Ponieważ tmpfs jest intensywnie używany, musisz mieć odpowiednią przestrzeń wymiany.
Karel
źródło
Instalacja kończy się niepowodzeniem w systemie Ubuntu 16.04.2. Problemem jest złe odniesienie touchw skrypcie initram. Wskazuje /usr/bin/touchraczej na niż /bin/touch. Można to zmusić do pracy, ale nawet po zainstalowaniu sieć przestaje działać.
b_laoshi,
Sieć przestaje działać, ponieważ używasz złego jądra lub jądra bez plików nagłówkowych. Gdy komputer uruchomi się ponownie, poczekaj, aż zniknie ekran powitalny producenta, a następnie naciśnij klawisz Shift, aby wyświetlić opcje rozruchu GRUB. Na fioletowym ekranie GRUB-a wybierz Zaawansowane opcje Ubuntu i naciśnij Enter. Pojawi się nowy fioletowy ekran z listą jąder. Wybierz inne jądro i naciśnij Enter.
karel
Jest to praktycznie nowa instalacja ze wszystkimi aktualizacjami. Wypróbowałem stare jądro i najpierw uruchomiłem je z siecią, ale potem zdałem sobie sprawę, że fsprotect nie był dołączony do starego jądra. Zaktualizowałem wszystkie jądra i teraz nie mam sieci po uruchomieniu z dowolnego jądra.
b_laoshi
1
Usunięcie opcji fsprotect z gruba i zaktualizowanie initramfs wyłączało oczywiście fsprotect, a sieć znów działa. Najwyraźniej jest to coś w fsprotect, który zrywa sieć.
b_laoshi