Para uno de mis laboratorios, necesito mantener sistemas de archivos consistentes. Por lo tanto, no quiero que se escriba ningún cambio en el sistema de archivos después de que se apague el sistema. Actualmente, mantengo una imagen del sistema operativo y la copio manualmente después de que finaliza la sesión de laboratorio.
Estoy tratando de averiguar si hay alguna implementación de código abierto de Deep Freeze software para sistemas basados en Fedora. Estoy tratando de mantener un sistema de archivos coherente para que los cambios realizados se pierdan cuando se reinicie el sistema.
Desde este enlace, veo que hay software similar a Deep freeze, sin embargo, están disponibles para sistemas basados en Debian. También encontré particiones LVM que no entendí mucho.
Sugiérame algún software que pueda usarse en sistemas basados en Fedora o alguna otra solución mejor.
Respuesta aceptada:
Puede configurar aufs en la partición raíz y hacer que la imagen original sea de solo lectura y todos los cambios se almacenen en la RAM. De esa manera, los estudiantes pueden hacer los cambios que deseen (incluso como root), después de reiniciar, se restaura un estado limpio y bien definido del sistema.
Hice exactamente esta configuración usando Debian, pero lo mismo debería ser posible sin demasiadas modificaciones en Fedora también. Dado que los clientes se ejecutaban sin disco, utilicé el arranque PXE. Estos son los pasos básicos, las instrucciones se toman principalmente del arranque de Debian Linux sin disco a través de dhcp/pxe/nfs/tftp/aufs y la instalación de Debian usando el arranque de red.
El servidor de arranque PXE tiene la dirección IP 192.168.1.10 y también sirve como servidor TFTP
y NFS. Utiliza aufs y el sistema de archivos raíz está montado en modo de solo lectura. Debido
a las aufs, los clientes tienen acceso de escritura. Todos los cambios residen en la memoria y
se borran al reiniciar.
Instalar los paquetes necesarios
apt-get install isc-dhcp-server tftp-hpa nfs-kernel-server debootstrap syslinux
Configurar el servidor DHCP para servir una imagen de arranque 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
Esto configura DHCP para usar el servidor TFTP en la dirección 192.168.1.10
y cargue la imagen de arranque PXE pxelinux.0
.
Configurar servidor TFTP
mkdir /srv/tftp
Configurar servidor NFS.
El sistema de archivos raíz se monta en modo de solo lectura a través de NFS.
mkdir /srv/nfsroot
cat >/etc/exports <<EOF
/srv/nfsroot 192.168.1.10/24(ro,no_root_squash,no_subtree_check)
EOF
Rellene el directorio NFS con una instalación de Debian
debootstrap stable /srv/nfsroot <mirror>
# e.g.
debootstrap stable /srv/nfsroot
http://ftp.sunet.se/pub/Linux/distributions/debian/
Instale las herramientas kernel e initramfs:
chroot /srv/nfsroot apt-get update
chroot /srv/nfsroot apt-get install initramfs-tools linux-image-amd64
Configure su initramfs para generar initrds de arranque NFS:
sed 's/BOOT=local/BOOT=nfs/'
-i /srv/nfsroot/etc/initramfs-tools/initramfs.conf
Cargue el aufs
módulo:
echo aufs >> /srv/nfsroot/etc/initramfs-tools/modules
Configurar 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
Hacer el archivo ejecutable:
chmod +x /srv/nfsroot/etc/initramfs-tools/scripts/init-bottom/aufs
Generar initrd:
chroot /srv/nfsroot update-initramfs -k $(uname -r) -u
Tenga cuidado si el kernel del host y el chroot no coinciden. Reemplazar $(uname -r)
con el núcleo correcto si es necesario.
Copie el initrd generado, la imagen del kernel y el cargador de arranque PXE a la raíz TFTP y
cree una carpeta para la configuración 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
El archivo pxelinux.0
es el programa de arranque PXELINUX.
Configurar cargador de arranque:
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
Cambiar contraseña raíz
chroot /srv/nfsroot passwd root
Reiniciar servicios
invoke-rc.d isc-dhcp-server restart
invoke-rc.d tftpd-hpa restart
exportfs -ra