Чи є програма Ubuntu, схожа на Deep Freeze?


10

Мені хотілося б знати, чи існує альтернатива Deep Freeze для Linux, яка все ще знаходиться в стадії розробки, тому що я читав деякі речі в Інтернеті і схоже, що та сама компанія, яка розробляла Deep Freeze, мала її версію для Linux, але проект було припинено.


Чому б ти цього хотів? Просто не дозволяйте користувачам, які не користуються коренем, змінювати системні файли.
Девід Фоерстер

@DavidFoerster Я щойно відредагував питання, щоб відповісти на ваш коментар.
Zignd

Привіт, ви можете спробувати цю альтернативу sourceforge.net/projects/dafturnofris-id

2
Звичайні "гості" користувачі в (останніх?) Ubuntu створені під час руху, мають своє житло /tmpта прибираються після виходу з системи ... Чи цього недостатньо?
Рмано

Відповіді:


8

OFRIS - це програма з відкритим кодом, яка може заморозити ваш Linux, це як Deep Freeze в операційній системі Microsoft Windows.

Для версій Ubuntu 9.10, 10.04 та 10.10. Щоб встановити OFRIS, просто натисніть Ctrl+ Alt+ Tна клавіатурі, щоб відкрити Terminal. Коли він відкриється, запустіть команди (и) нижче:

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

Для версій Ubuntu 11.04, 11.10, 12.04 та 13.04. Щоб встановити OFRIS, просто натисніть Ctrl+ Alt+ Tна клавіатурі, щоб відкрити Terminal. Коли він відкриється, запустіть команди (и) нижче:

[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

Зображення нижче показує OFRIS, що працює 13.04

введіть тут опис зображення

Джерело: XGeek


Я встановив це в 15.10, тоді я застосував Freeze, натиснувши 3, він підтвердив, що система знаходиться в замороженому режимі. Потім я перезавантажився, я зробив файл / var / tmp / myname зі значенням, потім знову перезавантажився, але файл все ще є. Як це заморожування?

Що ви точно маєте на увазі? Також мені потрібно перевірити, чи працює це 15.10. Заморожування системи скидає все так, як було до заморожування. Будь ласка, дай мені знати.
Мітч

3

Попередження: я реалізував це рішення, і воно спрацьовує, але час злиття для повернення до знімка може призвести до тривалого завантаження процесу завантаження, якщо в систему відбулися великі зміни під час останнього завантаження. У цей період очікування користувачам може здатися, що система висить!

Також майте на увазі, що кожен, хто має достатньо знань для монтажу знімка, може внести зміни до «замороженого» стану. Я скористався цією можливістю оновити "заморожені" системи, але знову ж таки, це теж може збільшити час, необхідний для злиття (повернення до) знімка!


Знімки LVM + cron + script = "заморожений" стан

Нещодавно я почав копатися в LVM, і мені здалося, що можна було б створити "заморожений" стан на машині, використовуючи LVM, і це можливості знімка. Звичайно, для цього методу потрібна система, яка налаштована за допомогою LVM (або принаймні LVM на розділах, які потрібно заморозити).

Підсумок:

  • Встановіть систему на LVM-розділи, зарезервувавши достатньо місця на PV для зйомки
  • Налаштуйте систему так, як вам потрібно.
  • Створіть роботу cron, яка працює під час завантаження як root, щоб об'єднати знімок, і створити новий знімок, який замінить об'єднаний
  • Усі послідовні перезавантаження повертаються до знімка. Усі створені знімки приймаються із системи в тому стані, в якому ви її створили.
  • Як додатковий бонус, знімок можна змонтувати та змінити (за умови, що у вас є кореневі привілеї), а стан "замороженого" можна оновити за потреби.

Доказ концепції: Заморожте все, крім однієї секції, з чистої установки

Встановлення:

  • Завантажтесь з живого диска Ubuntu / USB та оберіть опцію "Спробуйте Ubuntu без встановлення". Це важливо для налаштування розділів за допомогою LVM вручну
  • Коли Ubuntu завантажує розділ на диск, використовуючи вибраний інструмент, щоб він мав один розділ, який займає весь простір диска. Ось з чим я працюю:
    • /dev/sda (розмір 1T)
      • /dev/sda1 (розмір 1T)
  • Далі в терміналі встановлено LVM увімкнено /dev/sda1. Я збираюся розмістити більшу частину системи на одному розділі, але вам цього не доведеться.
    • 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
  • Тепер, якщо ви будете запускатись sudo vgsза ним, sudo lvsви повинні мати можливість бачити, що кількість вільного простору, залишеного у групі томів "ubuntu-vg" (VFree під виведенням vgs), дорівнює кількості простору, зайнятого коренем логічного обсягу " "(LSize під lvs виведенням). У моєму випадку у ubuntu-vg у мене 506,44 г безкоштовно, а мій кореневий розділ на 506,44 г великий. Якщо вільний простір, залишений у групі томів, дорівнює розміру розділу, який я хочу заморозити, я повинен мати змогу стерти весь розділ і все-таки мати можливість відновити за допомогою перезавантаження. Залиште решту вільного місця в ubuntu-vg невикористаною наразі. Ми будемо використовувати його пізніше.
  • Тепер встановіть Ubuntu за допомогою ручного розділення image.png
  • По завершенні установки йдіть вперед і перезавантажте в нещодавно встановлену систему.
  • Завантажившись у нову систему, налаштуйте її так, щоб це було саме так, як ви хочете, коли комп'ютер завантажується кожного разу.
    • Якщо ви не випадково змінили знімок і не хочете, щоб розділ знімка відображався на панелі меню ...
      • mkdir /steady
      • Відредагуйте /etc/fstab, додавши (це все в один рядок) /dev/ubuntu-vg/steadystate /steady ext4 defaults,ro,nofail 0 1як останній рядок файлу
    • Оскільки такі речі, як оновлення, будуть завантажуватися з кожним перезавантаженням, ви можете вимкнути їх.
    • Якщо у вас є заморожений розділ, такий як мій, в / не заморожений, не забудьте зробити його доступним для користувачів, які потребують доступу до нього
  • Після того, як система налаштована саме так, як вам потрібно, створіть наступний скрипт (вам знадобляться привілеї root) та збережіть, як /root/steadystate.shу вашому улюбленому редакторі. Зауважте, що якщо ви змінили ім'я групи томів під час налаштування LVM, вам також потрібно буде оновити його в сценарії нижче.
    #!/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
  • Нарешті запустіть sudo crontab -e, виберіть редактор і поставте @reboot /bin/bash /root/steadystate.shв кінці файлу. Зберегти та закрити ( Ctrl+ X; відповідь Yдля збереження)
  • Перезавантажте систему, і у вас повинна бути система, яка заморожена, за винятком розділу, встановленого в / unrozen

Це працює тому, що знімок створюється під час завантаження, і навіть якщо ми передаємо команду злити знімок відразу після цього, знімок не може бути об'єднаний, поки активний логічний том для root. Тому він відкладає дію злиття до наступного разу, коли не буде активовано / dev / ubuntu-vg / root, що відбувається при наступному перезавантаженні. Ця дія також буде спровокована, якби система була завантажена з живого USB.

Тільки для ударів, я ввійшов після перезавантаження і побіг, sudo apt remove --purge firefox* libreoffice-* unity*що зазвичай не радив би робити, оскільки це видаляє деякі корисні програми і ставить систему в стан, який може бути менш бажаним! break.png Система навіть не відключиться належним чином від GUI. То як же це виправити? Перезавантажте! rebooted.png Після перезавантаження все було в порядку. Firefox, LibreOffice та Unity повернулися туди, де їм належало.

Я також спробував видалити Linux *. Це не дозволило завантажувати машину, але просто завантаження з живого диска Ubuntu, здавалося, зробило злиття. Перезапуск знову залишив систему в її "замороженому" стані

Якщо ви хочете мати змогу вносити зміни, ви можете (повторно) змонтувати знімок з правами rw, а потім перезавантажити його та внести будь-які зміни, які ви хочете залишатись постійними. Це не бездоганно, але це доказ концепції.


1

За замовчуванням Ubuntu та більшість інших Unices забороняють постійним користувачам (студентам, гостям) писати доступ до системних файлів. Лише адміністратор, що має належну авторизацію (ім'я користувача та ключ), може встановлювати програмне забезпечення, змінювати налаштування системи або видаляти розділи.

Звичайні користувачі можуть за замовчуванням записувати лише у свій домашній каталог та тимчасовий каталог системи. Поширений спосіб обробляти разові гостьові сеанси - помістити їх домашній каталог всередині тимчасового каталогу, а тимчасовий каталог - в основну пам'ять.

Якщо ви хочете переконатися, встановіть системний розділ лише для читання та накладіть на нього розділ aufs, який зберігає зміни в основній пам'яті.


1

fsprotect - це набір скриптів, що захищають існуючі файлові системи. fsprotect відмінно підходить для публічних комп'ютерів, таких як бібліотеки, Інтернет-кафе тощо.

За допомогою aufs вони пакують файлову систему tmpfs, змушуючи записувати зміни до файлової системи tmpfs.

Коренева файлова система захищена скриптом initramfs. Інші файлові системи захищені сценарієм init. Усі захищені файлові системи стають лише для читання, забезпечуючи їх незмінність навіть при відключенні живлення.

Щоб встановити fsprotect у всіх підтримуваних на даний момент версіях Ubuntu, відкрийте термінал і введіть:

sudo apt-get install fsprotect

Перевагами використання fsprotect є:

  • Файлові системи захищені, і жодні зміни ніколи не записуються на диск.
  • Захищені файлові системи монтуються лише для читання. Це означає, що при неправильному відключенні комп'ютера вони не пошкоджуються.
  • Він дуже простий у використанні.
  • У деяких випадках це робить доступ до файлової системи більш швидким.

Недоліками використання fsprotect є:

  • Зміни файлової системи не можуть бути більше заздалегідь визначеного обмеження в байтах (встановлене вами).
  • Оскільки tmpfs сильно використовується, вам потрібно мати достатній простір для заміни.

Не вдалося встановити на Ubuntu 16.04.2. Проблема - це погана посилання на touchсценарій initram. Це вказує на, /usr/bin/touchа не на /bin/touch. Це може бути змушене працювати, але навіть при встановленні мережа перестає працювати.
b_laoshi

Мережа припиняє роботу, тому що ви використовуєте неправильне ядро ​​або ядро ​​без файлів заголовка. Коли перезавантаження комп'ютера чекає, поки екран екрана виробника зникне, натисніть клавішу Shift, щоб відобразити параметри завантаження GRUB. На фіолетовому екрані GRUB виберіть Додаткові параметри для Ubuntu та натисніть Enter. З'явиться новий фіолетовий екран із зазначенням списку ядер. Виберіть інше ядро ​​і натисніть Enter.
карел

Це практично нова установка з усіма оновленнями. Я спробував старе ядро, і спочатку він завантажився мережею, але потім зрозумів, що fsprotect не входить у старе ядро. Я оновив усі ядра, і тепер у мене немає мереж, коли я завантажуюся з будь-якого ядра.
b_laoshi

1
Видалення параметра fsprotect з grub та оновлення initramfs, звичайно, відключено fsprotect, і мережа працює знову. Зрозуміло, що це щось у fsprotect, що порушує мережу.
b_laoshi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.