Esta respuesta y este mensaje de correo electrónico indican que algo llamado "OverlayFS" está disponible en Ubuntu 11.10 y reemplazará a los aufs en Ubuntu 12.04.
¿Como lo uso? ¿Dónde está su documentación?
filesystem
overlayfs
ændrük
fuente
fuente
mount -t overlayfs -o rw,uppderdir=x,lowerdir=y overlayfs /mount/point
. Más allá de eso no tengo ni idea. Estoy jugando con él en un sistema en vivo, pero aún no he logrado que funcione. Desearía poder saber exactamente qué significan "upperdir" y "lowerdir". No he encontrado nadaRespuestas:
Editar: desde que escribimos esta respuesta, algunas cosas han cambiado en overlayfs, a saber, la adición de un parámetro requerido
workdir
, consulte la respuesta de totti a continuación para obtener una descripción detallada de este nuevo parámetro.Finalmente logré encontrarlo. Encontré referencias a él en la fuente del kernel, pero por alguna razón no aparece en el árbol git en kernel.org. ¡Pero! Si extrae la fuente del núcleo de Ubuntu de esta manera:
apt-get source linux-image-3.0.0-16-generic
puede encontrarla enlinux-3.0.0/Documentation/overlayfs.txt
. También está disponible en el paquete linux-doc en/usr/share/doc/linux-doc/filesystems/overlayfs.txt.gz
.Como la documentación de ayuda real es más un "cómo funciona" en lugar de un "cómo montarlo", aquí hay un breve resumen (hay un ejemplo en la documentación del núcleo):
mount -t overlayfs -o [mount options] overlayfs [mountpoint for merged system]
Donde [opciones de montaje] pueden ser:
Una cosa que me confundió al principio, por lo que probablemente debería aclarar, es que montar un overlayfs en realidad no monta un sistema de archivos. Estaba tratando de montar un sistema de archivos squashfs usando un montaje overlayfs, pero no es así como funciona. Primero debe montar el sistema de archivos (en mi caso squashfs) en un directorio arbitrario, luego usar overlayfs para fusionar el punto de montaje (un directorio) y otro directorio en un directorio terciario (el punto de montaje overlayfs) (editar: este directorio "terciario" en realidad puede ser el directorio upperdir =). El directorio terciario es donde verá los sistemas de archivos fusionados (o árboles de directorios, es flexible).
Ejemplo 1, superposición del sistema de archivos raíz
He estado trabajando en un disco de arranque híbrido de Ubuntu donde el sistema base de Ubuntu existe como filesystem.squashfs y tengo archivos llamados ubuntu.overlay kubuntu.overlay xubuntu.overlay y lubuntu.overlay. Los archivos .overlay son instalaciones básicas de dichos sistemas con los contenidos de filesystem.squashfs podados (para ahorrar espacio). Luego modifiqué los scripts de inicio para superponer el archivo .overlay de la distribución correcta (desde un parámetro de arranque) usando overlayfs y las opciones anteriores y ¡funciona de maravilla!
Estas son las líneas que utilicé en mis scripts de inicio (una vez que se traducen todas las variables):
Tenga en cuenta que filesystem.squashfs anterior es un directorio creado por casper, no un archivo.
Estas tres declaraciones crean un
/overlay
directorio, montan un sistema de archivos squashfs en el/overlay
directorio y luego usan OverlayFS para fusionar esencialmente el contenido de/overlay
over/
.Ejemplo 2, fusión transparente de dos directorios
En el proceso de reconstrucción de mi USB en vivo para cada versión, uso OverlayFS para ahorrar un montón de tiempo. Comienzo con un directorio llamado ubuntu-base que contiene el contenido de la imagen ubuntu-core, que es la instalación más básica. Luego crearé directorios llamados ubuntu, kubuntu, lubuntu y xubuntu.
Luego, uso OverlayFS para hacer que los archivos de ubuntu-base aparezcan en los directorios individuales. Yo usaría algo como esto:
Esto hace que los archivos de ubuntu-base aparezcan en la carpeta kubuntu. Entonces, puedo
chroot
ir a la carpeta kubuntu y hacer algo comoapt-get install kubuntu-desktop
. Cualquier cambio que se realice mientras está en este montaje OverlayFS permanecerá en el directorio superior, en este caso la carpeta kubuntu. Luego, una vez que desmonte el OverlayFS, monte los archivos que realmente existen en ubuntu-base pero que están "reflejados" en la carpeta kubuntu desaparecen a menos que hayan sido cambiados. Esto evita que tenga que tener múltiples copias de los archivos en ubuntu-base y al mismo tiempo poder usarlas como si existieran físicamente en cada ubicación.fuente
overlay
no conoverlayfs
Desde https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt :
fuente
He extendido estos artículos para incluir un Script para overlayfs que configura una raíz fs de solo lectura.
Espero eso ayude.
fuente
Ejemplo ejecutable mínimo
GitHub aguas arriba .
Salida del primero
ls
con el soporte:Salida del segundo
ls
sin el soporte:Interpretación:
work/
directorio) que no deberíamos preocuparnosEjemplo adaptado de: Ejemplo de uso de OverlayFS
Aquí hay un ejemplo más complejo con múltiples capas inferiores: Overlayfs recarga con múltiples capas (migración lejos de aufs)
Probado en Ubuntu 18.04, kernel de Linux 4.15.0.
fuente