Есть ли какое-либо Deep Freeze-подобное приложение для Ubuntu?

10

Я хотел бы знать, есть ли какая-либо альтернатива Deep Freeze для Linux, которая все еще находится в стадии разработки, потому что я читал некоторые вещи в Интернете и, похоже, той же компании, которая разработала Deep Freeze, была версия для Linux, но Проект был прекращен.

Zignd
источник
Зачем тебе это? Только не позволяйте некорневым пользователям изменять системные файлы.
Дэвид Фёрстер
@DavidFoerster Я только что отредактировал вопрос, чтобы ответить на ваш комментарий.
Zignd
Привет, ты можешь попробовать эту альтернативу sourceforge.net/projects/dafturnofris-id
2
Обычные («из коробки») «гостевые» пользователи (недавно?) В Ubuntu создаются на лету, живут дома /tmpи очищаются после выхода из системы ... разве этого недостаточно?
Rmano

Ответы:

8

OFRIS - это приложение с открытым исходным кодом, которое может заморозить ваш Linux, оно похоже на Deep Freeze в операционной системе Microsoft Windows.

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

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на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду (ы) ниже:

[COPY-FileFormat]

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 апреля

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

Источник: 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), равно количеству пространства, занимаемого логическим томом "root". Msgstr "(LSize под выводом lvs). В моем случае у меня есть 506,44 г свободного в ubuntu-vg, а мой корневой раздел имеет размер 506,44 г. Если свободное место в группе томов равно размеру раздела, который я хочу заморозить, я смогу стереть весь раздел и все равно восстановить после перезагрузки. Оставьте оставшееся свободное место в Ubuntu-VG пока неиспользованным. Мы будем использовать это позже.
  • Теперь установите Ubuntu, используя разметку вручную image.png
  • После завершения установки продолжите и перезагрузитесь во вновь установленную систему.
  • После загрузки в новую систему настройте ее так, чтобы она всегда была такой, какой вы хотите, когда компьютер загружается каждый раз.
    • Если вы не случайно изменили снимок и не хотите, чтобы раздел снимка отображался в строке меню ...
      • mkdir /steady
      • Отредактируйте /etc/fstab, добавив (это все одна строка) /dev/ubuntu-vg/steadystate /steady ext4 defaults,ro,nofail 0 1в качестве последней строки файла
    • Поскольку такие вещи, как обновления, сдуваются с каждой перезагрузкой, вы можете отключить их.
    • Если у вас есть незамерзающий раздел, такой как у меня в / unfrozen, не забудьте сделать его доступным для пользователей, которым нужен доступ к нему
  • Если у вас есть система , сконфигурированный именно так , как вы хотите его, создайте следующий скрипт (вам понадобятся права администратора) и сохранить как /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чтобы сохранить)
  • Перезагрузите компьютер, и система должна быть заморожена, за исключением раздела, смонтированного в / не замороженном

Это работает, потому что моментальный снимок создается во время загрузки, и хотя мы передаем команду на объединение моментального снимка сразу после этого, моментальный снимок не может быть объединен, пока логический том для root активен. Поэтому он откладывает действие слияния до следующей активации / dev / ubuntu-vg / root, что происходит при следующей перезагрузке. Это действие также будет запущено, если система была загружена с живого USB.

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

Я также пытался удалить Linux *. Это оставляло машину неспособной к загрузке, однако простая загрузка с живого диска Ubuntu, казалось, способствовала слиянию. Перезапуск снова оставил систему в «замороженном» состоянии

Если вы хотите иметь возможность вносить изменения, вы можете (повторно) смонтировать снимок с правами rw, а затем выполнить привязку к нему и внести любые изменения, которые вы хотите сохранить постоянными. Это не безупречно, но это доказательство концепции.

b_laoshi
источник
1

По умолчанию Ubuntu и большинство других Unix запрещают обычным пользователям (студентам, гостям) доступ к системным файлам. Только администратор с соответствующими полномочиями (имя пользователя и ключ) может устанавливать программное обеспечение, изменять системные настройки или удалять разделы.

Обычные пользователи могут по умолчанию писать только в свой домашний каталог и системный временный каталог. Обычный способ обработки одноразовых гостевых сессий - поместить их домашний каталог во временный каталог, а временный каталог - в основную память.

Если вы хотите в этом убедиться, смонтируйте системный раздел только для чтения и положите над ним раздел aufs, который хранит изменения в основной памяти.

Дэвид Фёрстер
источник
1

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

Используя aufs, они упаковывают файловую систему tmpfs, заставляя записывать изменения в файловую систему tmpfs.

Корневая файловая система защищена скриптом initramfs. Другие файловые системы защищены скриптом инициализации. Все защищенные файловые системы становятся доступными только для чтения, обеспечивая их неизменность даже при отключении питания.

Чтобы установить 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