Есть ли какое-нибудь приложение для замораживания для Ubuntu?

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

1
задан 21 March 2014 в 08:08

3 ответа

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

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

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

1
ответ дан 24 May 2018 в 17:37

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

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

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

Чтобы установить fsprotect во все поддерживаемые в настоящее время версии Ubuntu, откройте терминал и введите:

sudo apt-get install fsprotect

Преимущества использования fsprotect:

Файловые системы защищены и никакие изменения не записываются на диск. Защищенные файловые системы монтируются только для чтения. Это означает, что они не повреждены, если компьютер выключен неправильно. Он очень прост в использовании. В некоторых случаях это ускоряет доступ к файловой системе.

Недостатки использования функции fsprotect:

Файловые системы защищены, и на диск не записано никаких изменений. Поскольку tmpfs сильно используется, вам нужно имеют достаточное пространство подкачки.
1
ответ дан 24 May 2018 в 17:37
  • 1
    Ошибка установки на Ubuntu 16.04.2. Проблема заключается в плохой ссылке на touch в сценарии initram. Он указывает на /usr/bin/touch, а не на /bin/touch. Это может быть вынуждено работать, но даже при установке сеть перестает работать. – b_laoshi 26 April 2017 в 11:55
  • 2
    Сеть перестает работать, возможно, потому, что вы используете плохое ядро ​​или ядро ​​без файлов заголовков. Когда компьютер перезагрузится, подождите, пока экран заставки производителя не исчезнет, ​​затем нажмите клавишу Shift, чтобы отобразить параметры загрузки GRUB. На фиолетовом экране GRUB выберите Дополнительные параметры для Ubuntu и нажмите Enter. Появится новый фиолетовый экран с указанием списка ядер. Выберите другое ядро ​​и нажмите Enter. – karel 26 April 2017 в 12:20
  • 3
    Это практически новая установка со всеми обновлениями. Я попробовал старое ядро, и сначала он загрузился с помощью сети, но потом я понял, что fsprotect не был связан в старом ядре. Я обновил все ядра, и теперь у меня нет сетей, когда я загружаюсь из любого ядра. – b_laoshi 27 April 2017 в 04:00
  • 4
    Удаление опции fsprotect из grub и обновление initramfs отключили fsprotect, конечно, и сеть снова работает. Очевидно, что это что-то в fsprotect, которое нарушает работу сети. – b_laoshi 27 April 2017 в 04:23

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

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

Снимки LVM + cron + script = "замороженное" состояние

Недавно я начал копаться в LVM, и мне показалось, что можно реально создать «замороженное» состояние на машине с использованием LVM и его возможностей моментального снимка. Конечно, для этого метода требуется система, которая настроена с использованием LVM (или, по крайней мере, LVM на замороженных разделах).

Предупреждение:

Установить система на разделах LVM резервирует достаточно места на PV для моментального снимка. Получите систему, настроенную так, как вы хотите. Создайте задание cron, выполняемое с правами root при загрузке, чтобы объединить снимок и создать новый снимок для замены объединенного. Все последующие перезагрузки возвращаются к снимку. Все созданные моментальные снимки принимаются системой в состоянии, в котором вы ее создали. В качестве дополнительного бонуса снимок можно смонтировать и изменить (при условии, что у вас есть права root), и при необходимости «обновленное» состояние может быть обновлено.

Доказательство концепции: заморозить все, кроме одного раздела, из чистой установки

Установка:

Установить систему на разделах LVM резервирование достаточно места на PV для моментального снимка Когда Ubuntu загружает раздел вашего диска с помощью выбранного вами инструмента, так что он имеет один раздел, который занимает все пространство диска. Вот что я работаю с: /dev/sda (размер 1T) /dev/sda1 (размер 1T) Получить систему, настроенную так, как вы хотите. Теперь, если вы должны были запустить sudo vgs, а затем sudo lvs вы должны уметь видеть, что количество свободного места, оставшегося в группе томов «ubuntu-vg» (VFree под выходом vgs), равно количеству пространства, занимаемого логическим томом «root» (LSize под lvs вывод). В моем случае у меня есть 506.44g бесплатно в ubuntu-vg, а мой корневой раздел - 506,44g. Если свободное пространство, оставшееся в группе томов, равно размеру раздела, который я хочу заморозить, я должен иметь возможность уничтожить весь раздел и все равно восстановить его при перезагрузке. Оставьте оставшуюся часть свободного пространства в ubuntu-vg неиспользованным. Мы будем использовать его позже. Создайте задание cron, выполняемое с правами root при загрузке, чтобы объединить моментальный снимок и создать новый снимок, чтобы заменить объединенный файл . Когда установка завершена, перейдите в новую систему. Все последующие перезагрузки возвращаются к снимку. Все созданные моментальные снимки принимаются системой в том состоянии, в котором вы ее создали. После того, как система настроена именно так, как вам нужно, создайте следующий скрипт (вам понадобятся права root) и сохраните как с вашим любимым редактором. Обратите внимание, что если вы изменили имя группы томов при настройке 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
Когда Ubuntu загружает раздел вашего диска с помощью инструмента по вашему выбору, так что он имеет один раздел, который занимает все пространство диска. Вот что я работаю с: /dev/sda (размер 1T) /dev/sda1 (размер 1T) Перезагрузитесь, и у вас должна быть замороженная система, за исключением раздела, установленного на / разморозке

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

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

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

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

1
ответ дан 24 May 2018 в 17:37

Другие вопросы по тегам:

Похожие вопросы: