Deep freeze como software para o Fedora

4

Para um dos meus laboratórios, preciso manter sistemas de arquivos consistentes. Por isso, não quero que nenhuma alteração seja gravada no sistema de arquivos depois que o sistema for encerrado. Atualmente, estou mantendo uma imagem do sistema operacional e copiando-a manualmente após o término da sessão de laboratório.

Estou tentando descobrir se existe alguma implementação de código aberto do software Deep Freeze para sistemas baseados no Fedora. Estou tentando manter um sistema de arquivos consistente para que quaisquer alterações feitas sejam perdidas quando o sistema for reinicializado.

De este link, eu vejo lá são softwares semelhantes ao Deep Freeze, no entanto, eles estão disponíveis para sistemas baseados em Debian. Eu também me deparei com partições LVM que eu não entendi muito.

Sugira-me algum software que possa ser usado em sistemas baseados no Fedora ou alguma outra solução melhor.

    
por Ramesh 13.01.2014 / 18:00

3 respostas

3

Você pode configurar aufs na partição raiz e ter a imagem original somente para leitura e todas as alterações são armazenadas na RAM . Dessa forma, os alunos podem fazer as alterações desejadas (mesmo como root), depois de uma reinicialização, um estado de sistema limpo e bem definido é restaurado.

Eu fiz exatamente essa configuração usando o Debian, mas o mesmo deve ser possível sem muita modificação no Fedora também. Como os clientes estavam executando sem disco, usei a inicialização PXE. Aqui estão os passos básicos, as instruções são tomadas principalmente de Inicialização sem disco Debian Debian via dhcp / pxe / nfs / tftp / aufs e Instalando o Debian usando a inicialização pela rede .

O servidor de inicialização PXE tem o endereço IP 192.168.1.10 e também serve como TFTP e servidor NFS. Ele usa aufs e o sistema de arquivos raiz é montado somente para leitura. Vencimento para os aufs os clientes têm acesso de gravação. Todas as alterações residem na memória e são limpou a reinicialização.

Instalar os pacotes necessários

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

Configurar o servidor DHCP para exibir uma imagem de inicialização do 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

Isso configura o DHCP para usar o servidor TFTP no endereço 192.168.1.10 e carregar a imagem de inicialização do PXE pxelinux.0 .

Configurar servidor TFTP

mkdir /srv/tftp

Configurar o servidor NFS.

O sistema de arquivos raiz é montado somente para leitura via NFS.

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

Preencher o diretório NFS com uma instalação Debian

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

Instale as ferramentas kernel e initramfs:

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

Configure o initramfs para gerar initrds de inicialização do NFS:

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

Carregue o módulo aufs :

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

Configure 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

Torne o arquivo executável:

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

Gerar initrd:

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

Cuidado se o kernel do host e o chroot não coincidem. Substituir $(uname -r) com o kernel correto, se necessário.

Copie o initrd, a imagem do kernel e o carregador de inicialização PXE para a raiz TFTP e criar pasta para configuração do 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

O arquivo pxelinux.0 é o programa de boot do PXELINUX.

Configurar o carregador de boot:

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

Alterar senha de root

chroot /srv/nfsroot passwd root

Reiniciar serviços

invoke-rc.d isc-dhcp-server restart
invoke-rc.d tftpd-hpa restart
exportfs -ra
    
por 14.01.2014 / 02:05
2

Primeiro, copie os arquivos da pasta /home/USERNAME (a pasta de USERNAME que os alunos usam) para algo como /home/backup . Você pode fazer isso com:

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

onde TEMPFILES é a pasta com as coisas que os alunos precisam acessar, e onde BACKUPFILES é a cópia de backup da pasta em outro lugar. Observação: isso significa que seria útil que todas as coisas estivessem em uma pasta, como TEMPFILES , dentro do diretório inicial, já que você não pode fazer isso na pasta do diretório pessoal

Para garantir que os alunos não possam acessá-los, convém que eles sejam de propriedade do root executando:

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

Abra o editor nano com sudo nano /etc/rc.local e adicione esses comandos a rc.local .

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

Esses comandos serão executados na inicialização como raiz - você pode testá-los primeiro no terminal, com o prefixo sudo .. , para verificar se eles funcionam.

Se o rc.local estiver vazio, adicione nesta linha no topo:

#!/bin/sh -e

e tinha essa linha na parte inferior:

exit 0

salve com Ctrl + O e saia com Ctrl + X .

Em seguida, torne o arquivo executável, para que ele execute os comandos, com:

sudo chmod +x /etc/rc.local

Reinicialize e isso deve funcionar.

Se houver erros de permissão, talvez seja necessário adicionar esse comando abaixo do comando cp... para tornar os arquivos de propriedade do USERNAME que os alunos podem acessar:

sudo chown USERNAME:USERNAME /home/USERNAME/TEMPFILES
    
por 13.01.2014 / 19:17
1

Se você der uma olhada no site alternativesto.net , há 3 aplicativos listados como alternativas para Deep Freeze .

OBSERVAÇÃO: não tenho experiência com nenhuma dessas ferramentas, por isso não posso oferecer informações adicionais sobre como elas funcionam etc. Eu só posso fornecer esses leads.

Lethe

Lethe is a Deep Freeze-like partition freezing software for Debian GNU/Linux and Lihuen GNU/Linux (May work on other Debian-based GNU/Linux distributions). Lethe makes the partitions behave like a Live CD: all changes made on the file system will not be saved on the disk but in RAM and when the system restarts, all the content saved in the previous session is "forgotten" and lost and the disk / partitions are restored to their original state.

Lethe is based on Rootaufs, originally written by Nicholas Schembri, to whom we have to thank for publishing the script under a GPL license and making this application possible.

Há também um vídeo no YouTube intitulado: Congelando um sistema Ubuntu Linux com o Lethe , que demonstra como ele funciona .

fsprotect

fsprotect is a set of scripts, customized for debian systems that protect existing filesystems.

It uses the AUFS filesystem and some initramfs magic to protect the root filesystem. It also uses a simple init script to protect other filesystems as early as possible.

fsprotect is excellent for public computers like those in libraries, labs, etc. It will ease the life of all administrators with a couple of simple steps.

The benefits of using fsprotect are:

  • Filesystems are protected and no change is ever written to the disk
  • Protected filesystems are mounted read-only. This means that they aren't >damaged when the computer is turned off improperly.
  • It is very easy to use. Just add an "fsprotect" parameter to the kernel for the root filesystem and list the filesystems to be protected in /etc/default/fsprotect.
  • In some cases it makes the filesystem access faster.

The drawbacks of using fsprotect:

  • Filesystem changes cannot be more than a predefined limit (set by you) (in bytes).
  • Since tmpfs is heavily used, you need to have adequate swap space.

Dafturn Ofris

Dafturn Ofris, Freeze from Indonesia, is an open source application that can freeze your Linux, like Deep Freeze in Microsoft Windows operating system. So, you can lock your system by using this application. Feel free and open with this application.

Eu encontrei essa boa revisão e discussão sobre o uso do Ofris, intitulado: [COMO] Deep Freeze Xubuntu com Ofris .

    
por 14.01.2014 / 02:02