Cette réponse et cet e-mail indiquent que quelque chose appelé "OverlayFS" est disponible dans Ubuntu 11.10 et remplacera forcément aufs dans Ubuntu 12.04.
Comment puis-je l'utiliser? Où est sa documentation?
filesystem
overlayfs
ændrük
la source
la source
mount -t overlayfs -o rw,uppderdir=x,lowerdir=y overlayfs /mount/point
. Au-delà de ça, je suis désemparé. Je bricole avec cela dans un système en direct, mais je n'ai pas encore réussi à le faire fonctionner. J'aimerais pouvoir découvrir exactement ce que "upperdir" et "lowerdir" signifient. Je n'ai rien trouvé.Réponses:
Edit: Depuis que cette réponse a été écrite, certaines choses ont changé dans les superpositions, à savoir l’ajout d’un paramètre requis
workdir
, voir la réponse ci-dessous pour une description détaillée de ce nouveau paramètre.J'ai finalement réussi à le trouver. J'ai trouvé des références à cela dans les sources du noyau, mais pour une raison quelconque, cela n'apparaît pas dans l'arborescence git sur kernel.org. Mais! Si vous tirez la source du noyau Ubuntu comme ceci:
apt-get source linux-image-3.0.0-16-generic
vous pouvez la trouver danslinux-3.0.0/Documentation/overlayfs.txt
. Il est également disponible dans le paquet linux-doc dans/usr/share/doc/linux-doc/filesystems/overlayfs.txt.gz
.Comme la documentation d'aide actuelle est plus un "comment ça marche" au lieu d'un "comment monter avec elle", voici un bref aperçu (il y a un exemple dans la documentation du noyau):
mount -t overlayfs -o [mount options] overlayfs [mountpoint for merged system]
Où [options de montage] peuvent être:
Une chose qui m'a dérouté au début, alors je devrais probablement préciser, est que monter un overlayfs ne monte pas un système de fichiers. J'essayais de monter un système de fichiers squashfs en utilisant un montage overlayfs, mais ce n'est pas ainsi que cela fonctionne. Vous devez d’abord monter le système de fichiers (dans mon cas squashfs) dans un répertoire quelconque, puis utiliser overlayfs pour fusionner le point de montage (un répertoire) et un autre répertoire dans un répertoire tertiaire (le point de montage overlayfs) (edit: this "tertiary") peut être réellement le répertoire upperdir =). Le répertoire tertiaire est l'endroit où vous verrez les systèmes de fichiers fusionnés (ou les arborescences de répertoires - c'est flexible).
Exemple 1, superposition du système de fichiers racine
Je travaille sur un disque d'amorçage hybride Ubuntu où le système de base Ubuntu existe sous la forme système de fichiers.squashfs et j'ai des fichiers appelés ubuntu.overlay kubuntu.overlay xubuntu.overlay et lubuntu.overlay. Les fichiers .overlay sont des installations de base desdits systèmes avec le contenu de filesystem.squashfs élagué (pour économiser de l'espace). Ensuite, j'ai modifié les scripts d'initialisation pour superposer le fichier .overlay de la distribution correcte (à partir d'un paramètre de démarrage) à l'aide de overlayfs et des options ci-dessus, et cela fonctionne à merveille!
Voici les lignes que j'ai utilisées dans mes scripts d'initialisation (une fois toutes les variables traduites):
Notez que filesystem.squashfs ci-dessus est un répertoire créé par casper, pas un fichier.
Ces trois instructions créent un
/overlay
répertoire, montent un système de fichiers squashfs sur le/overlay
répertoire, puis utilisent OverlayFS pour fusionner le contenu de/overlay
over/
.Exemple 2, fusion transparente de deux répertoires
Dans le processus de reconstruction de ma clé USB live pour chaque version, j'utilise OverlayFS pour gagner beaucoup de temps. Je commence avec un répertoire appelé ubuntu-base qui contient le contenu de l'image ubuntu-core, qui est l'installation la plus basique. Je créerai ensuite des répertoires appelés ubuntu, kubuntu, lubuntu et xubuntu.
Ensuite, j'utilise OverlayFS pour que les fichiers d'ubuntu-base apparaissent dans les répertoires individuels. Je voudrais utiliser quelque chose comme ça:
Cela fait apparaître les fichiers d'ubuntu-base dans le dossier kubuntu. Ensuite, je peux
chroot
aller dans le dossier kubuntu et faire quelque chose commeapt-get install kubuntu-desktop
. Toutes les modifications apportées pendant ce montage OverlayFS resteront dans le répertoire supérieur, dans ce cas le dossier kubuntu. Ensuite, une fois que je démonte OverlayFS, montez les fichiers qui existent vraiment dans ubuntu-base mais sont "reflétés" dans le dossier kubuntu, sauf s’ils ont été modifiés. Cela m'empêche d'avoir plusieurs copies des fichiers dans ubuntu-base tout en pouvant les utiliser comme s'ils existaient physiquement à chaque emplacement.la source
overlay
pasoverlayfs
De https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt :
la source
J'ai étendu ces artikels pour inclure un script pour overlayfs qui configure un fs racine en lecture seule.
J'espère que ça aide.
la source
Exemple minimal exécutable
GitHub en amont .
Sortie du premier
ls
avec la monture:Sortie de la seconde
ls
sans la monture:Interprétation:
work/
répertoire) dont on ne devrait pas se soucierExemple adapté de: Example OverlayFS Usage
Voici un exemple plus complexe avec plusieurs couches inférieures: Overlayfs recharge plusieurs couches (migration en dehors de aufs)
Testé sur Ubuntu 18.04, noyau Linux 4.15.0.
la source