Table des matières
OverlayFS
Installation
$ sudo apt-get install overlayroot
Configuration
Sur une Ubuntu 14.04:
$ sudo vim /etc/overlayroot.conf (...) overlayroot_cfgdisk="disabled" overlayroot="tmpfs,recurse=0"
Sur une Ubuntu 16.04, j'ai du activer le SWAP pour que ça fonctionne :
$ sudo vim /etc/overlayroot.conf (...) overlayroot_cfgdisk="disabled" overlayroot="tmpfs:swap=1,recurse=0"
Après avoir modifié le fichier overlayroot.conf
, on redémarre :
$ sudo reboot
Investigations en cas de problèmes
Pour vérifier que le module du kernel, overlay
est bien chargé :
$ lsmod | grep overlay overlay 49152 0
Si la commande précédente ne renvoie rien, on peut forcer le chargement du module avec modprobe:
$ sudo modprobe overlay
(La commande modprobe ne renvoie rien si tout se passe bien.)
$ modinfo overlay filename: /lib/modules/4.4.0-45-generic/kernel/fs/overlayfs/overlay.ko alias: overlayfs alias: fs-overlayfs alias: fs-overlay license: GPL description: Overlay filesystem author: Miklos Szeredi <miklos@szeredi.hu> srcversion: 50CE13FCD67769FE3D7357F depends: intree: Y vermagic: 4.4.0-45-generic SMP mod_unload modversions
Normalement, le module overlay
est chargé en cas de besoin. Pour que le chargement du module overlay
soit forcé au boot, il faut l'ajouter au fichier /etc/modules
:
$ sudo vim /etc/modules $ sudo cat /etc/modules # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. overlay
Vérifications
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
Désactiver Overlayroot
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
Pour désactiver OverlayFS, on modifie le fichier de configuration dans le chroot et on redémarre :
alx@systems:~$ sudo overlayroot-chroot [sudo] password for alx: INFO: Chrooting into [/media/root-ro] root@systems:/# vim /etc.overlayroot.conf (...) overlayroot="" #overlayroot="tmpfs:swap=1,recurse=0" (...) root@systems:/# exit exit alx@systems:~$ sudo reboot
Réactiver overlayfs
alx@systems:~$ sudo vim /etc/overlayroot.conf (...) #overlayroot="" overlayroot="tmpfs:swap=1,recurse=0" (...) alx@systems:~$ sudo reboot
Problèmes de réseau
J'ai eu des problème avec “AppArmor” et le réseau ne fonctionnait pas quand overlayroot était actif. J'ai simplement supprimé “AppArmor”
alx@systems:~$ sudo overlayroot-chroot [sudo] password for alx: INFO: Chrooting into [/media/root-ro] root@systems:/# apt-get remove --purge apparmor root@systems:/# exit exit alx@systems:~$ sudo reboot