Глубокая заморозка как программное обеспечение для Fedora

Довольно просто протестировать это. С -e:

% bash -e -c 'false & echo waiting; if wait $!; then echo success; else echo failure; fi'
waiting
failure

Таким образом, если фоновая команда перестанет работать, то оболочка не выйдет автоматически (-e недостаточно).

Если Вы wait вне явного теста, wait возвратит код возврата неудавшегося фонового процесса. В этом случае, если -e указан, оболочка выйдет:

% bash -e -c 'false & echo waiting; wait $!; echo returned'   
waiting

Те же результаты с bash или sh или zsh.

4
22.07.2018, 06:29
3 ответа

Вы могли настроить aufs на корневом разделе и иметь исходное изображение, только для чтения, и все изменения хранятся в RAM. Тем путем студенты могут внести любые изменения, которые они любят (как раз когда корень) после перезагрузки восстанавливается, чистое четко определенное состояние системы.

Я сделал точно это использование установки Debian, но то же должно быть возможным без слишком большой модификации на Fedora также. Так как клиенты работали бездисковый, я использовал начальную загрузку PXE. Вот основные шаги, инструкции главным образом взяты из Бездискового Linux Debian, загружающегося через dhcp/pxe/nfs/tftp/aufs и Устанавливающего Debian, использующий сетевую начальную загрузку.

Сервер начальной загрузки PXE имеет IP-адрес 192.168.1.10, и он также служит сервер NFS и TFTP. Это использует aufs, и корневая файловая система смонтирована только для чтения. Из-за aufs у клиентов есть доступ для записи. Все изменения находятся в памяти и вытерты на перезагрузке.

Установите необходимые пакеты

apt-get install isc-dhcp-server tftp-hpa nfs-kernel-server debootstrap syslinux

Настройте сервер DHCP для обслуживания загрузочного образа PXE

cat >/etc/dhcp/dhcpd.conf <<EOF
next-server 192.168.1.10;  # address of the TFTP server
allow bootp;
allow booting;

subnet 192.168.1.0 netmask 255.255.255.0 {
  # clients get a dynamic IP address
  range dynamic-bootp 192.168.1.20 192.168.1.254;
  filename "pxelinux.0";
  option domain-name-servers 192.168.0.10;
  option broadcast-address 192.168.1.255;
  option routers 192.168.0.10;
}
EOF

Это настраивает DHCP для использования сервера TFTP на адресе 192.168.1.10 и загрузите загрузочный образ PXE pxelinux.0.

Настройте сервер TFTP

mkdir /srv/tftp

Настройте сервер NFS.

Корневая файловая система смонтирована только для чтения через NFS.

mkdir /srv/nfsroot
cat >/etc/exports <<EOF
/srv/nfsroot 192.168.1.10/24(ro,no_root_squash,no_subtree_check)
EOF

Заполните каталог NFS с установкой Debian

debootstrap stable /srv/nfsroot <mirror>
# e.g.
debootstrap stable /srv/nfsroot \
  http://ftp.sunet.se/pub/Linux/distributions/debian/

Ядро установки и initramfs инструменты:

chroot /srv/nfsroot apt-get update
chroot /srv/nfsroot apt-get install initramfs-tools linux-image-amd64

Настройте его initramfs для генерации начальной загрузки NFS initrds:

sed 's/BOOT=local/BOOT=nfs/' \
  -i /srv/nfsroot/etc/initramfs-tools/initramfs.conf

Загрузитесь aufs модуль:

echo aufs >> /srv/nfsroot/etc/initramfs-tools/modules

Настроить aufs:

cat >/srv/nfsroot/etc/initramfs-tools/scripts/init-bottom/aufs <<EOF
modprobe aufs
mkdir /ro /rw /aufs
mount -t tmpfs tmpfs /rw -o noatime,mode=0755
mount --move $rootmnt /ro
mount -t aufs aufs /aufs -o noatime,dirs=/rw:/ro=ro
mkdir -p /aufs/rw /aufs/ro
mount --move /ro /aufs/ro
mount --move /rw /aufs/rw
mount --move /aufs /root
exit 0
EOF

Сделайте исполняемый файл файла:

chmod +x /srv/nfsroot/etc/initramfs-tools/scripts/init-bottom/aufs

Генерируйте initrd:

chroot /srv/nfsroot update-initramfs -k $(uname -r) -u

Предостерегитесь, если ядро хоста и chroot не соответствует. Замена $(uname -r) с корректным ядром при необходимости.

Копия генерировала initrd, изображение ядра, и загрузчик PXE к TFTP базируется и создает папку для конфигурации PXE:

cp /srv/nfsroot/boot/initrd.img-* /srv/tftp/
cp /srv/nfsroot/boot/vmlinuz-*    /srv/tftp/
cp /usr/lib/syslinux/pxelinux.0   /srv/tftp/
mkdir /srv/tftp/pxelinux.cfg

Файл pxelinux.0 программа самозагрузки PXELINUX.

Настройте загрузчик:

cat >/srv/tftp/pxelinux.cfg/default <<EOF
default Debian
prompt 1
timeout 10
label Debian
kernel vmlinuz-2.6.32-5-amd64  # <- use correct version!
append ro initrd=initrd.img-2.6.32-5-amd64 root=/dev/nfs ip=dhcp 
nfsroot=192.168.1.10:/srv/nfsroot
EOF

Измените пароль root

chroot /srv/nfsroot passwd root

Услуги по перезапуску

invoke-rc.d isc-dhcp-server restart
invoke-rc.d tftpd-hpa restart
exportfs -ra
3
27.01.2020, 20:52
  • 1
    Спасибо за Ваш ответ. Можно ли уточнить немного больше и предоставить ли мне указатели на некоторую ссылку, где я могу узнать больше? –  Ramesh 14.01.2014, 03:13
  • 2
    @Ramesh я развернул свой ответ и добавил ссылки для получения дополнительной информации. –  Marco 14.01.2014, 03:38

Во-первых, скопируйте файлы из /home/USERNAME папка (папка ИМЕНИ ПОЛЬЗОВАТЕЛЯ студенты используют.), к чему-то как /home/backup. Можно сделать это с:

cp -R /home/USERNAME/TEMPFILES /home/backup/BACKUPFILES 

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

Чтобы удостовериться, что студенты не могут получить доступ к ним, можно хотеть, чтобы они принадлежали корню путем выполнения:

sudo chown -R root:root /home/backup/BACKUPFILES 

Откройте нано редактора с sudo nano /etc/rc.local, и добавьте эти команды к rc.local.

rm -rf /home/USERNAME/TEMPFILES
cp -r /home/backup/BACKUPFILES /home/USERNAME/TEMPFILES

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

Если rc.local пуст, начинают с, добавляют в этой строке наверху:

#!/bin/sh -e

и имел эту строку внизу:

exit 0

сохраните с Ctrl+O и выходом с Ctrl+X.

Затем, сделайте исполняемый файл файла, таким образом, он выполнит команды, с:

sudo chmod +x /etc/rc.local

Перезагрузка, и это должно работать.

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

sudo chown USERNAME:USERNAME /home/USERNAME/TEMPFILES
2
27.01.2020, 20:52
  • 1
    Это - очень хорошее предложение. Но студенты будут зарегистрированы как корень в virtualbox. Они получают доступ к гостевым операционным системам как администраторы. Так, я должен достигнуть чего-то как глубокая заморозка. –  Ramesh 13.01.2014, 20:52

Если Вы смотрите на сайт alternativesto.net существует 3 приложения, перечисленные как альтернативы Глубокой заморозке.

Примечание: У меня нет опыта ни с одним из этих инструментов, таким образом, я не могу предложить Вам дополнительную информацию о том, как они работают и т.д. Я могу только предоставить Вам их, ведет.

Лета

Лета является подобным глубокой заморозке программным обеспечением замораживания раздела для GNU/Linux Debian, и GNU/Linux Lihuen (Может работать над другим находящимся в Debian GNU/дистрибутивами Linux). Лета заставляет разделы вести себя как Живой CD: все изменения, внесенные в файловой системе, не будут сохранены на диске, но в RAM и когда система перезапустит, обо всем содержании, сохраненном на предыдущей сессии, "забывают" и теряют и диск / разделы восстанавливаются своему исходному состоянию.

Лета основана на Rootaufs, первоначально записанном Nicholas Schembri, которому мы должны благодарить публиковать сценарий в соответствии с лицензией GPL и подать эту возможную заявку.

Существует также видео на YouTube, названном: Замораживание Системы Ubuntu Linux С Летой, которая демонстрирует, как это работает.

fsprotect

fsprotect является рядом сценариев, настроенных для debian систем, которые защищают существующие файловые системы.

Это использует файловую систему AUFS и некоторое initramfs волшебство защитить корневую файловую систему. Это также использует простой init сценарий для защиты других файловых систем как можно раньше.

fsprotect превосходен для общедоступных компьютеров как те, которые в библиотеках, лабораториях, и т.д. Это упростит жизнь всех администраторов с несколькими простыми шагами.

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

  • Файловые системы защищены, и никакое изменение никогда не пишется в диск
  • Защищенные файловые системы смонтированы только для чтения. Это означает, что они не> ранены, когда компьютер выключен неправильно.
  • Это очень просто в использовании. Просто добавьте "fsprotect" параметр к ядру для корневой файловой системы и перечислите файловые системы, которые будут защищены в/etc/default/fsprotect.
  • В некоторых случаях это делает доступ к файловой системе быстрее.

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

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

Dafturn Ofris

Dafturn Ofris, Замораживание из Индонезии, является приложением с открытым исходным кодом, которое может заморозить Ваш Linux, как Глубокая заморозка в операционной системе Microsoft Windows. Так, можно заблокировать систему при помощи этого приложения. Не стесняйтесь и откройтесь этим приложением.

Я нашел этот довольно хороший обзор и обсуждение использования Ofris, это названо: [КАК К] Глубокая заморозка Xubuntu с Ofris.

1
27.01.2020, 20:52
  • 1
    Большое спасибо за указатели. Я буду смотреть в них. –  Ramesh 14.01.2014, 03:14

Теги

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