web-dev-qa-db-fra.com

Rendre Ubuntu 16.04 "en direct" (lecture seule avec couche lecture / écriture)

Je veux configurer Ubuntu 16.04 comme un CD live. Cela fonctionnait très bien dans Ubuntu 12.04, mais avec 16.04, il y a des problèmes. Les services tombent en panne, CRON ne fonctionne pas, X ne fonctionne pas, je ne peux même pas me connecter à Shell. Donc, je pense que 16.04 a besoin de quelques modifications. Si je monte le lecteur racine en lecture/écriture, tout fonctionne comme il se doit. Donc, le système d'exploitation lui-même est OK.

Pour laisser Ubuntu démarrer en mode lecture seule, je remplace le paramètre du noyau "rw" par "ro" et utilise un script dans 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

Comment configurer correctement Ubuntu 16.04 avec le lecteur racine ro et la couche fw rw?

2
Michael

Utilisez le paquet standard Ubuntu "overlayroot". Dans Ubuntu 16.04, ce paquet est automatiquement installé. Vous devez simplement l'activer en modifiant /etc/overlayroot.conf et en ajoutant le paramètre suivant:

overlayroot="tmpfs"

Redémarrez le système Ubuntu 16.04 et vous avez terminé. Vous souhaiterez peut-être ajouter une entrée de démarrage du noyau à votre configuration grub pour faciliter la désactivation temporaire du système de fichiers racine en lecture seule des correctifs, etc. Pour cela, vous pouvez ajouter une entrée grub qui transmet un argument de noyau comme suit:

overlayroot=disabled

Voir plus à: https://spin.atomicobject.com/2015/03/10/protecting-ubuntu-root-filesystem/

2
deltamind106