Haga que Ubuntu 16.04 esté "activo" (solo lectura con capa de lectura/escritura)

Haga que Ubuntu 16.04 esté "activo" (solo lectura con capa de lectura/escritura)

Quiero configurar Ubuntu 16.04 como un CD en vivo. Esto funcionó muy bien en Ubuntu 12.04 pero con 16.04 hay problemas. Los servicios fallan, CRON no funciona, X no funciona, ni siquiera puedo iniciar sesión en el shell. Entonces creo que 16.04 necesita alguna modificación. Si monto la unidad raíz como lectura/escritura, todo funciona como debería. Entonces, el sistema operativo en sí está bien.

Para permitir que Ubuntu arranque en modo de sólo lectura, reemplazo el parámetro del kernel "rw" por "ro" y uso un script en initramfs:

/etc/initramfs-tools/scripts/init-bottom/ro_root

#!/bin/sh

PREREQ=''

prereqs() {
  echo "$PREREQ"
}

case $1 in
prereqs)
  prereqs
  exit 0
  ;;
esac

ro_mount_point="${rootmnt%/}.ro"
rw_mount_point="${rootmnt%/}.rw"

# Create mount points for the read-only and read/write layers:
mkdir "${ro_mount_point}" "${rw_mount_point}"

# Move the already-mounted root filesystem to the ro mount point:
mount --move "${rootmnt}" "${ro_mount_point}"

# Mount the read/write filesystem:
mount -t tmpfs root.rw "${rw_mount_point}"

# Mount the union:
mount -t aufs -o "dirs=${rw_mount_point}=rw:${ro_mount_point}=ro" root.union "${rootmnt}"

# Correct the permissions of /:
chmod 755 "${rootmnt}"

# Make sure the individual ro and rw mounts are accessible from within the root
# once the union is assumed as /.  This makes it possible to access the
# component filesystems individually.
mkdir "${rootmnt}/ro" "${rootmnt}/rw"
mount --bind "${ro_mount_point}" "${rootmnt}/ro"
mount --bind "${rw_mount_point}" "${rootmnt}/rw"

# ro_root end

¿Cómo configurar Ubuntu 16.04 con la unidad raíz ro y la capa rw fs correctamente?

Respuesta1

Utilice el paquete estándar de Ubuntu "overlayroot". En Ubuntu 16.04, este paquete se instala automáticamente. Simplemente necesita habilitarlo editando /etc/overlayroot.conf y agregando la siguiente configuración:

overlayroot="tmpfs"

Reinicie el sistema Ubuntu 16.04 y listo. Es posible que desee agregar una entrada de arranque del kernel a su configuración de grub para facilitar la desactivación temporal del sistema de archivos raíz de solo lectura para parches, etc. La forma de hacerlo es agregar una entrada de grub que pase un argumento del kernel de la siguiente manera:

overlayroot=disabled

Ver más en:https://spin.atomicobject.com/2015/03/10/protecting-ubuntu-root-filesystem/

información relacionada