Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/10/2016, à 15:07

SimonLefort

Mettre les partitions en read-only (pour un système embarqué).

Bonjour,

Pour un système embarqué, basé sur la carte Percepto en Ubuntu 14.04, j'ai besoin de configurer les partitions en read-only afin de ne pas risquer de corruption du système en cas de panne de batterie. J'ai déjà réalisé la procédure sur un Raspberry Pi sans problèmes.

$ uname -a
Linux percepto1 3.10.40+ #84 SMP PREEMPT Thu Aug 4 13:09:36 IDT 2016 armv7l armv7l armv7l GNU/Linux

Première question : Où sont configurées les partitions ?
Le fichier /etc/fstab est vide ? Le fichier /etc/mtab est rempli automatiquement. Où est la configuration ?

Deuxième question :  J'ai modifié le fichier fstab pour que la partition principale soit en read-only.

$ sudo vim /etc/fstab
$ cat /etc/fstab
#<file system> <mount point>   <type>  <options>                                         <dump>  <pass>
 /dev/root     /               ext4    defaults,noatime,ro                               0       0

J'ai aussi essayé en mettant directement le chemin physique :

$ cat /etc/fstab
#<file system>   <mount point>   <type>  <options>                                         <dump>  <pass>
 /dev/mmcblk0p1  /               ext4    defaults,noatime,ro                               0       0

Après un redémarrage, la partition /dev/root est bien marquée en "ro" dans /etc/mtab mais je peux toujours écrire dans mon /home/admin/ ("admin" étant l'utilisateur par défaut sur la Percepto).

$ cat /etc/mtab
/dev/root / ext4 ro,noatime 0 0
none /proc proc rw,noexec,nosuid,nodev 0 0
sysfs /sys sysfs rw,noexec,nosuid,nodev 0 0
devtmpfs /dev devtmpfs rw,mode=0755 0 0
none /dev/pts devpts rw,noexec,nosuid,gid=5,mode=0620 0 0
none /sys/fs/cgroup tmpfs rw 0 0
none /sys/fs/fuse/connections fusectl rw 0 0
none /sys/kernel/debug debugfs rw 0 0
none /run tmpfs rw,noexec,nosuid,size=10%,mode=0755 0 0
none /sys/fs/pstore pstore rw 0 0
none /run/lock tmpfs rw,noexec,nosuid,nodev,size=5242880 0 0
none /run/shm tmpfs rw,nosuid,nodev 0 0
none /run/user tmpfs rw,noexec,nosuid,nodev,size=104857600,mode=0755 0 0
rpc_pipefs /run/rpc_pipefs rpc_pipefs rw 0 0
systemd /sys/fs/cgroup/systemd cgroup rw,noexec,nosuid,nodev,none,name=systemd 0 0
gvfsd-fuse /run/user/1001/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,user=admin 0 0

Quand je mets /dev/mmcblk0p1 dans /etc/fstab :

$ cat /etc/mtab
/dev/mmcblk0p1 / ext4 ro,noatime 0 0
none /proc proc rw,noexec,nosuid,nodev 0 0
(...)

3) Troisième question: C'est quoi toutes ces partitions ? Sur laquelle est-ce qu'on écrit vraiment quand on ajoute un fichier dans son home ? J'ai téléchargé un fichier et je vois bien la partition /dev/root changer (la taille disponible a diminué)... Mais pourtant je ne devrais pas pouvoir écrire dessus?

$ df -a
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root       13909064 6232484   6946980  48% /
devtmpfs          959480       4    959476   1% /dev
sysfs                  0       0         0    - /sys
none                   0       0         0    - /dev/pts
none                   0       0         0    - /proc
none                   4       0         4   0% /sys/fs/cgroup
none                   0       0         0    - /sys/fs/fuse/connections
none                   0       0         0    - /sys/kernel/debug
none              193588     400    193188   1% /run
none                   0       0         0    - /sys/fs/pstore
none                5120       0      5120   0% /run/lock
none              967940      84    967856   1% /run/shm
none              102400      40    102360   1% /run/user
rpc_pipefs             0       0         0    - /run/rpc_pipefs
systemd                0       0         0    - /sys/fs/cgroup/systemd
gvfsd-fuse             0       0         0    - /run/user/1001/gvfs

Merci d'avance pour vos lumières,

Simon

[ps: Je ne suis pas convaincu d'être dans le bon endroit du forum mais je ne voyais pas où placer le message...]

Dernière modification par SimonLefort (Le 06/10/2016, à 15:24)

Hors ligne

#2 Le 06/10/2016, à 17:53

erresse

Re : Mettre les partitions en read-only (pour un système embarqué).

Bonjour,
En réponse à ta troisième question, je dirais : ce que tu vois ce ne sont pas des partitions, mais juste des répertoires de la racine qui sont montés sur des points spéciaux pour les besoins du système.
On ne voit ton /home nulle part, si ce n'est pas une partition séparée déclarée spécifiquement, alors il n'y a pas de partition /home, juste un répertoire /home dans la racine.
Pour la première question, je ne vois pas comment le système pourrait fonctionner sans le fichier /etc/fstab, car c'est bien dans ce fichier que sont affectées les partitions (volumes plutôt) aux points de montage...
Que ce fichier soit absent ou vide ne me paraît pas possible.
Lorsque tu crée des entrées dans fstab, tu utilises le label du volume comme identifiant ? D'habitude, on voit un /dev/sdXn ou un un UUID comme identifiant.


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#3 Le 06/10/2016, à 20:12

SimonLefort

Re : Mettre les partitions en read-only (pour un système embarqué).

Bonjour erresse et merci pour ta réponse.

Tu dis que ce n'est pas possible que le fichier /etc/fstab soit vide, pourtant c'est bien le cas! Je ne suis d'ailleurs pas le seul à avoir le problème (un autre exemple)... La seule ligne qui avait dans le fichier c'était ça :

# UNCONFIGURED FSTAB FOR BASE SYSTEM

J'ai essayé de deux manières :

#<file system> <mount point>   <type>  <options>                                         <dump>  <pass>
 /dev/root     /               ext4    defaults,noatime,ro                               0       0

et

#<file system>   <mount point>   <type>  <options>                                         <dump>  <pass>
 /dev/mmcblk0p1  /               ext4    defaults,noatime,ro                               0       0

Le résultat après un redémarrage est aussi dans le premier message. smile
J'essayerai dès que possible avec l'UUID, je n'y avais pas pensé.

[Edit: J'ai essayé avec l'UUID mais ça n'a rien changé. (UUID donné par blkid)

UUID="65fb87ec-475e-4bd3-a5b7-f89b327e84b5"  /  ext4  defaults,noatime,ro                 0       0 

Dernière modification par SimonLefort (Le 08/10/2016, à 12:27)

Hors ligne

#4 Le 06/10/2016, à 20:44

moko138

Re : Mettre les partitions en read-only (pour un système embarqué).

gvfsd-fuse /run/user/1001/gvfs : tu n'es pas dans la première session créée. (c'est juste une remarque).

Peux-tu montrer

sudo parted -l
ls /dev | grep root

et

df -h

s'il te plaît ?


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#5 Le 06/10/2016, à 21:54

SimonLefort

Re : Mettre les partitions en read-only (pour un système embarqué).

Intéressant ça! Je n'ai plus accès à la machine d'ici samedi mais c'est une piste intéressante, merci!

Hors ligne

#6 Le 08/10/2016, à 12:09

SimonLefort

Re : Mettre les partitions en read-only (pour un système embarqué).

moko138 a écrit :

Peux-tu montrer

sudo parted -l
ls /dev | grep root

et

df -h

Voici les résultats des commandes :

~$ sudo parted -l
[sudo] password for admin: 
Error: /dev/mmcblk0rpmb: unrecognised disk label                          

Warning: Not all of the space available to /dev/mmcblk0 appears to be used, you
can fix the GPT to use all of the space (an extra 4063 blocks) or continue with
the current setting? 
Fix/Ignore? I                                                             
Model: MMC R1J56L (sd/mmc)
Disk /dev/mmcblk0: 14.8GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      48.2MB  14.7GB  14.6GB  ext4         APP   hidden, msftdata
 2      14.7GB  14.7GB  4194kB               DTB   hidden, msftdata
 3      14.7GB  14.7GB  67.1MB               EFI   hidden, msftdata
 4      14.7GB  14.7GB  4194kB               USP   hidden, msftdata
 5      14.7GB  14.7GB  4194kB               TP1   hidden, msftdata
 6      14.7GB  14.7GB  4194kB               TP2   hidden, msftdata
 7      14.7GB  14.7GB  4194kB               TP3   hidden, msftdata
 8      14.7GB  14.7GB  2097kB               WB0   hidden, msftdata
 9      14.7GB  14.8GB  16.8MB               UDA   hidden, msftdata

Dans /dev/, je n'ai pas /dev/root mais j'ai bien /dev/mmcblk0p1

~$ ls /dev | grep root
(...rien...)
~$ ls /dev | grep mmcblk0
mmcblk0
mmcblk0p1
mmcblk0p2
mmcblk0p3
mmcblk0p4
mmcblk0p5
mmcblk0p6
mmcblk0p7
mmcblk0p8
mmcblk0p9
mmcblk0rpmb
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        14G  6.0G  6.7G  48% /
devtmpfs        937M  8.0K  937M   1% /dev
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            190M  404K  189M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            946M   84K  946M   1% /run/shm
none            100M   36K  100M   1% /run/user

Tant que j'y suis, voici le retour de blkid et j'ai regardé aussi quels étaient les utilisateurs créés sur la machine :

$ sudo blkid
/dev/mmcblk0p1: UUID="65fb87ec-475e-4bd3-a5b7-f89b327e84b5" TYPE="ext4" 

Utilisateurs:

$ cat /etc/passwd | awk -F: '{print $ 1}'
root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
proxy
www-data
backup
list
irc
gnats
nobody
libuuid
syslog
sshd
messagebus
usbmux
dnsmasq
avahi-autoipd
kernoops
rtkit
saned
whoopsie
speech-dispatcher
avahi
lightdm
colord
hplip
pulse
ntp
statd
admin

L'utilisateur "admin" est l'utilisateur de base sur la Percepto. Je ne vois pas d'utilisateur qui sort des choses habituelles. (J'ai comparé avec une autre Ubuntu 14.04)

Dernière modification par SimonLefort (Le 08/10/2016, à 12:14)

Hors ligne

#7 Le 08/10/2016, à 12:41

moko138

Re : Mettre les partitions en read-only (pour un système embarqué).

J'ai essayé de deux manières :

#<file system> <mount point>   <type>  <options>                                         <dump>  <pass>
 /dev/root     /               ext4    defaults,noatime,ro   

Dans /dev/, je n'ai pas /dev/root mais j'ai bien /dev/mmcblk0p1

~$ ls /dev | grep root
(...rien...)
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        14G  6.0G  6.7G  48% /

Après toutes les manip' que tu as effectuées, j'ignore ce qui est propre à la percepto - que je ne connais pas - et ce qui résulte de tes manip'.

La réinstallation après formatage me paraît une option envisageable.


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#8 Le 08/10/2016, à 15:17

SimonLefort

Re : Mettre les partitions en read-only (pour un système embarqué).

J'ai modifié le fichier /boot/extlinux/extlinux.conf (qui se copie sur /proc/cmdline pour passer la partition racine en read-only, la Percepto n'a plus démarré ensuite et j'ai été obligé de tout réinstaller. (La procédure de réinstallation se trouve sur mon wiki.)

Après une réinstallation avec l'image fournie par le constructeur, rien n'a changé au niveau des partitions par rapport à ce que j'ai montré précédemment. La réinstallation n'était pas la solution et n'a rien résolu.

Hors ligne

#9 Le 08/10/2016, à 15:35

moko138

Re : Mettre les partitions en read-only (pour un système embarqué).

SimonLefort a écrit :

J'ai modifié (...), la Percepto n'a plus démarré ensuite et j'ai été obligé de tout réinstaller. (...)

La réinstallation n'était pas la solution et n'a rien résolu.

La réinstallation t'a tout de même permis de démarrer de nouveau...


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#10 Le 08/10/2016, à 22:35

SimonLefort

Re : Mettre les partitions en read-only (pour un système embarqué).

moko138 a écrit :

La réinstallation t'a tout de même permis de démarrer de nouveau...

Oui, de fait. Je signalais cependant que le problème initial (fstab vide et tentative de mettre en read-only) ne venait pas de là. Je pense que la partition est montée via le fichier /proc/cmdline, lui même copié depuis /boot/extlinux/extlinux.conf. Il faut juste que j'arrive à le modifier sans tout foutre en l'air... Pas gagné.

Hors ligne

#11 Le 08/10/2016, à 23:14

Bougron

Re : Mettre les partitions en read-only (pour un système embarqué).

Bonsoir
Je ne vois pas pourquoi  tu t'embêtes  à monter une partition système en read only
Lorsque le systeme met en route, la première des choses qu'il fait est une écriture dans le répertoire /var   et je ne suis  pas sur que ce répertoire ne soit pas stocké dans la partition   contenant aussi le répertoire /etc   Il te faudrait donc plein de partitions
       une contenant               /etc en read
        une contenant           /home   en write
        une contenant        /tmp   en write
       une contenant      /var en write
       une contenant    /usr  en read
      une contenant      ......
et un énorme coup de chance de pouvoir gérer leur taille coorectement   
 
De plus ton argumentaire n'a pas de sens......   A tout instant, tout ordinateur peut être privé d'électricité.  Le logiciel est prévu pour traiter ce cas de figure. Il est d'ailleurs assez fréquent avec les ordinateurs qui sont reliés directement au secteur EDF.

Dernière modification par Bougron (Le 08/10/2016, à 23:21)

Hors ligne

#12 Le 09/10/2016, à 15:19

SimonLefort

Re : Mettre les partitions en read-only (pour un système embarqué).

Bonjour Bougron,

Je ne vois pas pourquoi  tu t'embêtes  à monter une partition système en read only (...)

Pour plein de raisons.
1) C'est un système embarqué, les coupures de courant vont être fréquentes. Je ne veux pas risquer une corruption du système à cause d'un programme qui écrit sur la partition principale au moment de la panne de courant.
2) Une fois que ça marche, je veux que le système soit figé. Je ne veux pas qu'on puisse modifier quelque chose par erreur. (Il faudra remonter le système en "rw" et du coup savoir un peu ce qu'on fait.)
3) La Percepto boot sur une  avec une carte eMMC de 16Gio, les cycles de lecture/écriture peuvent user prématurément ce support.

Lorsque le systeme met en route, la première des choses qu'il fait est une écriture dans le répertoire /var (...)

Tout d'abord, je n'ai pas besoin que le système écrivent dans tous les coins. Il est ensuite possible de rediriger ce qu'il a besoin d'écrire vers la RAM (encore une fois, pour ne pas user le support). Il y a aussi des solutions comme Overlayroot qui permettent au système d'écrire dans un filesystem temporaire.

De plus ton argumentaire n'a pas de sens......   A tout instant, tout ordinateur peut être privé d'électricité.  Le logiciel est prévu pour traiter ce cas de figure. Il est d'ailleurs assez fréquent avec les ordinateurs qui sont reliés directement au secteur EDF.

Et c'est bien connu, les coupures d'électricité ne risquent pas de corrompre le système... C'est pour ça qu'on éteint toujours nos ordinateurs en tirant la prise.:rolleyes:

Hors ligne

#13 Le 09/10/2016, à 16:21

Bougron

Re : Mettre les partitions en read-only (pour un système embarqué).

SimonLefort a écrit :

De plus ton argumentaire n'a pas de sens......   A tout instant, tout ordinateur peut être privé d'électricité.  Le logiciel est prévu pour traiter ce cas de figure. Il est d'ailleurs assez fréquent avec les ordinateurs qui sont reliés directement au secteur EDF.

Et c'est bien connu, les coupures d'électricité ne risquent pas de corrompre le système... C'est pour ça qu'on éteint toujours nos ordinateurs en tirant la prise.:rolleyes:

C'est tout simplement pour cela qu'ils sont équipés d'un système de réparation AUTOMATIQUE.
Ne te prives pas d'essayer.
Pour l'instant , je ne sais pas comment rediriger automatiquement les écritures dans  le cloud. Mais je suis intéressé par ta recherche.
Je sais comment rediriger  automatiquement les écritures de /tmp dans la RAM. Sans savoir très exactement ce qui se passe lorsque la RAM déborde (SWAP?) mais pas pour les autres partitions.
Ajout: Je vois que tu as trouvé une solution avec overlayroot. Ne te prives pas de l'installer. J'ai vaguement compris que tu ne pourras plus faire de mise à jour du logiciel.

Dernière modification par Bougron (Le 09/10/2016, à 16:50)

Hors ligne

#14 Le 09/10/2016, à 16:54

SimonLefort

Re : Mettre les partitions en read-only (pour un système embarqué).

Bougron a écrit :

C'est tout simplement pour cela qu'ils sont équipés d'un système de réparation AUTOMATIQUE.
Ne te prives pas d'essayer.

Le système de réparation automatique n'est pas toujours actif ni suffisant. Sur Ubuntu peut-être, mais pas forcément sur toutes les autres distributions! Encore moins sur celles qui sont allégées et/ou prévues pour l'embarqué.

Les corruptions de données lors de coupure de courant, ça existe. Je ne les invente pas... Et non, c'est pas toujours réparé automatiquement avec des licornes roses qui tournent autour. Bref.

Pour l'instant , je ne sais pas comment rediriger automatiquement les écritures dans  le cloud. Mais je suis intéressé par ta recherche. Je sais comment rediriger  automatiquement les écritures de /tmp dans la RAM. Sans savoir très exactement ce qui se passe lorsque la RAM déborde (SWAP?) mais pas pour les autres partitions.

J'ai réussis à installer OverlayFS (en suivant cet article (atomicobject.com)). Plus d'informations sur OverlayFS sur ce blog (blaess.fr).

Installation :

$ sudo apt-get install overlayroot

Configuration :

$ sudo vim /etc/overlayroot.conf
(...)
overlayroot="tmpfs,recurse=0"

Redémarrage :

$ sudo reboot

On peut vérifier dans /etc/fstab et /etc/mtab les changements :

$ cat /etc/mtab
overlayroot / overlayfs rw,errors=remount-ro 0 0
proc /proc proc rw,noexec,nosuid,nodev 0 0
sysfs /sys sysfs rw,noexec,nosuid,nodev 0 0
none /sys/fs/cgroup tmpfs rw 0 0
none /sys/fs/fuse/connections fusectl rw 0 0
none /sys/kernel/debug debugfs rw 0 0
none /sys/kernel/security securityfs rw 0 0
udev /dev devtmpfs rw,mode=0755 0 0
devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=0620 0 0
tmpfs /run tmpfs rw,noexec,nosuid,size=10%,mode=0755 0 0
none /run/lock tmpfs rw,noexec,nosuid,nodev,size=5242880 0 0
none /run/shm tmpfs rw,nosuid,nodev 0 0
none /run/user tmpfs rw,noexec,nosuid,nodev,size=104857600,mode=0755 0 0
none /sys/fs/pstore pstore rw 0 0
/dev/sda1 /media/root-ro ext2 rw,relatime 0 0
tmpfs-root /media/root-rw tmpfs rw,relatime 0 0
/dev/sda6 /media/data vfat rw,utf8,umask=007,gid=46 0 0
systemd /sys/fs/cgroup/systemd cgroup rw,noexec,nosuid,nodev,none,name=systemd 0 0
gvfsd-fuse /run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,user=alx 0 0
/proc /media/root-ro/proc none rw,bind 0 0
/run /media/root-ro/run none rw,bind 0 0
/sys /media/root-ro/sys none rw,bind 0 0
$ cat /etc/fstab
#
#  This fstab is in an overlayfs.  The real one can be found at
#  /media/root-ro/etc/fstab
#  The original entry for '/' and other mounts have been updated to be placed
#  under /media/root-ro.
#  To permanently modify this (or any other file), you should change-root into
#  a writable view of the underlying filesystem using:
#      sudo overlayroot-chroot
#
# /etc/fstab: static file system information.
#     
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#     
# <file system> <mount point> <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
#bkp:     
UUID=23568d1b-88a5-4a9e-83cb-d97fdfcf57de / ext2 errors=remount-ro 0 1
# /media/data was on /dev/sda6 during installation
UUID=1851-AC68 /media/data vfat utf8,umask=007,gid=46 0 1
# swap was on /dev/sda5 during installation
UUID=037cea84-169f-4fd6-a56a-97994591af17 none swap sw 0 0

Pour accéder à la partition racine réellement et pouvoir la modifier malgré Overlayroot, il faut utiliser cette commande :

$ sudo overlayroot-chroot
root@ordi:/# #faire ce qu'on veut (mise à jour, modification de fichiers, ...)
root@ordi:/# exit

Dernière modification par SimonLefort (Le 09/10/2016, à 17:04)

Hors ligne

#15 Le 09/10/2016, à 17:42

Bougron

Re : Mettre les partitions en read-only (pour un système embarqué).

Après installation et sans aucune activation, je suis bien dans les ennuis....=>. A moins que la cause soit autre.

u16041@u16041:~$ cd /etc
u16041@u16041:/etc$ sudo echo a>A
bash: A: Permission non accordée
u16041@u16041:/etc$ cd /var
u16041@u16041:/var$ sudo echo a>A
bash: A: Permission non accordée
u16041@u16041:/var$ cd /home
u16041@u16041:/home$ sudo echo a>A
bash: A: Permission non accordée
u16041@u16041:/home$ 

Mais

u16041@u16041:/boot/grub$ echo a>A
u16041@u16041:/boot/grub$ sudo echo a>A
..
u16041@u16041:/etc/default$ sudo echo a>A
bash: A: Permission non accordée
u16041@u16041:/etc/default
16041@u16041:/etc/default$ cd /home
u16041@u16041:/home$ sudo echo a>A
bash: A: Permission non accordée
u16041@u16041:/home$ cd $USER
u16041@u16041:~$ echo a>A
u16041@u16041:~$ $ 

donc maintenant sudo    -i    systématique.
Je suis en train de lire cela  http://askubuntu.com/questions/570819/e … untu-14-04
===>   Ideally, all of that information would be encrypted before landing on a random disk in a cloud data center!

Dernière modification par Bougron (Le 09/10/2016, à 23:12)

Hors ligne

#16 Le 09/10/2016, à 20:11

SimonLefort

Re : Mettre les partitions en read-only (pour un système embarqué).

Je comprends pas du tout ce que tu es en train d'essayer de faire...

Hors ligne

#17 Le 26/10/2016, à 23:41

SimonLefort

Re : Mettre les partitions en read-only (pour un système embarqué).

Pour ceux que ça intéresserait, j'ai du modifier la configuration dans le fichier "/etc/overlayroot.conf" pour que ça fonctionne sur une Ubuntu 16.04 (j'ai du activer la swap) :

$ sudo vim /etc/overlayroot.conf
(...)
overlayroot_cfgdisk="disabled"
overlayroot="tmpfs:swap=1,recurse=0"

Sans l'option ":swap=1", le système restait en rw.
L'ensemble est détaillé sur mon wiki.

Hors ligne