Ta odpowiedź i wiadomość e - mail wskazują, że coś o nazwie „OverlayFS” jest dostępne w Ubuntu 11.10 i wymusi zastąpienie aufs w Ubuntu 12.04.
Jak z tego korzystać? Gdzie jest jego dokumentacja?
filesystem
overlayfs
ændrük
źródło
źródło
mount -t overlayfs -o rw,uppderdir=x,lowerdir=y overlayfs /mount/point
. Poza tym nie mam pojęcia. Majstruję przy tym w systemie na żywo, ale jeszcze nie udało mi się go uruchomić. Chciałbym dowiedzieć się dokładnie, co oznaczają „górny katalog” i „dolny katalog”. Nic nie znalazłemOdpowiedzi:
Edycja: Od czasu napisania tej odpowiedzi niektóre zmiany uległy zmianie w nakładkach, a mianowicie dodanie wymaganego parametru
workdir
, patrz odpowiedź totti poniżej, aby uzyskać szczegółowy opis tego nowego parametru.W końcu udało mi się go znaleźć. Znalazłem odniesienia do niego w źródle jądra, ale z jakiegoś powodu nie pojawia się w drzewie git na kernel.org. Ale! Jeśli wyciągniesz źródło jądra Ubuntu w ten sposób:
apt-get source linux-image-3.0.0-16-generic
możesz je znaleźćlinux-3.0.0/Documentation/overlayfs.txt
. Jest również dostępny w pakiecie linux-doc w/usr/share/doc/linux-doc/filesystems/overlayfs.txt.gz
.Ponieważ faktyczna dokumentacja pomocy jest bardziej „sposobem działania” zamiast „jak się z nim zamontować”, oto krótkie podsumowanie (istnieje jeden przykład w dokumentacji jądra):
mount -t overlayfs -o [mount options] overlayfs [mountpoint for merged system]
Gdzie [opcje montowania] mogą być:
Jedną z rzeczy, która mnie na początku pomyliła, więc powinienem chyba wyjaśnić, jest to, że zamontowanie overlayfs nie powoduje zamontowania systemu plików. Próbowałem zamontować system plików squashfs za pomocą montowania overlayfs, ale nie tak to działa. Najpierw musisz zamontować system plików (w moim przypadku squashfs) w dowolnym katalogu, a następnie użyć overlayfs, aby scalić punkt montowania (katalog) i inny katalog w katalogu trzeciorzędnym (punkt montowania overlayfs) (edycja: ten katalog „trzeciorzędowy” może to być katalog Upperdir =). Trzeci katalog to miejsce, w którym zobaczysz scalone systemy plików (lub drzewa katalogów - jest elastyczny).
Przykład 1, nakładanie głównego systemu plików
Pracowałem na hybrydowym dysku rozruchowym Ubuntu, na którym podstawowy system Ubuntu istnieje jako filesystem.squashfs i mam pliki o nazwie ubuntu.overlay kubuntu.overlay xubuntu.overlay i lubuntu.overlay. Pliki .overlay to podstawowe instalacje wymienionych systemów z przyciętą zawartością fileystem.squashfs (w celu zaoszczędzenia miejsca). Następnie zmodyfikowałem skrypty inicjujące, aby nałożyć plik .overlay prawidłowej dystrybucji (z parametru rozruchowego) za pomocą overlayfs i powyższych opcji i działa jak urok!
Oto linie, których użyłem w moich skryptach init (po przetłumaczeniu wszystkich zmiennych):
Zauważ, że fileystem.squashfs powyżej to katalog utworzony przez casper, a nie plik.
Te trzy instrukcje tworzą
/overlay
katalog, montują system plików squashfs w/overlay
katalogu, a następnie używają OverlayFS do scalenia zawartości/overlay
over/
.Przykład 2, przezroczyste połączenie dwóch katalogów
W trakcie przebudowy mojego Live USB dla każdej wersji używam OverlayFS, aby zaoszczędzić sporo czasu. Zaczynam od katalogu o nazwie ubuntu-base, który zawiera zawartość obrazu ubuntu-core, który jest najbardziej podstawową instalacją. Następnie utworzę katalogi o nazwach ubuntu, kubuntu, lubuntu i xubuntu.
Następnie używam OverlayFS, aby pliki z bazy ubuntu były wyświetlane w poszczególnych katalogach. Użyłbym czegoś takiego:
To sprawia, że pliki z Ubuntu-base pojawiają się w folderze Kubuntu. Następnie mogę
chroot
przejść do folderu kubuntu i zrobić coś takiegoapt-get install kubuntu-desktop
. Wszelkie zmiany dokonane podczas instalacji OverlayFS pozostaną w górnym katalogu, w tym przypadku w folderze kubuntu. Następnie, po odmontowaniu OverlayFS montuje pliki, które naprawdę istnieją w Ubuntu-base, ale są „dublowane” w folderze kubuntu, znikają, chyba że zostały zmienione. To powstrzymuje mnie od konieczności posiadania wielu kopii plików w Ubuntu-base, a jednocześnie mogę ich używać tak, jakby fizycznie istniały w każdej lokalizacji.źródło
overlay
nieoverlayfs
Od https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt :
źródło
Rozszerzyłem te artykuły, aby zawierały skrypt dla nakładek, który konfiguruje root tylko do odczytu.
Mam nadzieję, że to pomoże.
źródło
Minimalny możliwy do uruchomienia przykład
GitHub w górę .
Wyjście pierwszego
ls
z montażem:Wyjście drugiego
ls
bez uchwytu:Interpretacja:
work/
katalog), na których nie powinniśmy się przejmowaćPrzykład dostosowany z: Przykład użycia OverlayFS
Oto bardziej złożony przykład z wieloma niższymi warstwami: Overlayfs przeładowuje z wieloma warstwami (migracja z dala od aufs)
Testowany na Ubuntu 18.04, jądro Linux 4.15.0.
źródło