Ini jawaban dan pesan email menunjukkan bahwa sesuatu yang disebut "OverlayFS" yang tersedia di Ubuntu 11.10 dan tegas akan menggantikan aufs di Ubuntu 12.04.
Bagaimana saya menggunakannya? Di mana dokumentasinya?
filesystem
overlayfs
ændrük
sumber
sumber
mount -t overlayfs -o rw,uppderdir=x,lowerdir=y overlayfs /mount/point
. Di luar itu saya tidak tahu apa-apa. Saya mengutak-atiknya dalam sistem live, tetapi saya belum berhasil membuatnya bekerja. Saya berharap saya bisa mengetahui apa arti "upperdir" dan "lowerdir". Saya tidak menemukan apa pun.Jawaban:
Sunting: Sejak menulis jawaban ini, beberapa hal telah berubah dalam overlayfs, yaitu penambahan parameter yang diperlukan
workdir
, lihat jawaban totti di bawah ini untuk penjelasan terperinci tentang parameter baru ini.Saya akhirnya berhasil menemukannya. Saya menemukan referensi untuk itu di sumber kernel, tetapi untuk beberapa alasan itu tidak muncul di pohon git di kernel.org. Tapi! Jika Anda menarik sumber kernel Ubuntu seperti ini:
apt-get source linux-image-3.0.0-16-generic
Anda dapat menemukannya dilinux-3.0.0/Documentation/overlayfs.txt
. Ini juga tersedia dalam paket linux-doc di/usr/share/doc/linux-doc/filesystems/overlayfs.txt.gz
.Karena dokumentasi bantuan yang sebenarnya lebih merupakan "cara kerjanya" dan bukan "cara me-mount dengannya," inilah ikhtisar singkat (ada satu contoh dalam dokumentasi kernel):
mount -t overlayfs -o [mount options] overlayfs [mountpoint for merged system]
Di mana [opsi pemasangan] dapat:
Satu hal yang membingungkan saya pada awalnya, jadi saya mungkin harus mengklarifikasi, adalah bahwa pemasangan overlay tidak benar-benar me-mount sistem file. Saya mencoba me-mount filesystem squashfs menggunakan mount overlayfs, tapi itu bukan cara kerjanya. Anda pertama-tama harus me-mount sistem file (dalam kasus saya squashfs) ke direktori arbitrer, kemudian menggunakan overlayfs untuk menggabungkan titik mount (direktori) dan direktori lain ke direktori tersier (titik mount overlayfs) (edit: direktori "tersier" ini) sebenarnya bisa menjadi upperdir = direktori). Direktori tersier adalah tempat Anda akan melihat filesystem yang digabung (atau pohon direktori - fleksibel).
Contoh 1, overlay sistem file root
Saya telah bekerja pada disk boot hibrida Ubuntu di mana sistem Ubuntu dasar ada sebagai filesystem.squashfs dan saya memiliki file yang disebut ubuntu.overlay kubuntu.overlay xubuntu.overlay dan lubuntu.overlay. File .overlay adalah instalasi dasar dari sistem tersebut dengan isi filesystem.squashfs dipangkas (untuk menghemat ruang). Kemudian saya memodifikasi skrip init untuk overlay file .overlay distro yang benar (dari parameter boot) menggunakan overlayfs dan opsi di atas dan berfungsi seperti pesona!
Ini adalah baris yang saya gunakan dalam skrip init saya (setelah semua variabel diterjemahkan):
Perhatikan bahwa filesystem.squashfs di atas adalah direktori yang dibuat oleh casper, bukan file.
Ketiga pernyataan membuat
/overlay
direktori, mount squashfs filesystem pada/overlay
direktori dan kemudian menggunakan OverlayFS pada dasarnya menggabungkan isi/overlay
lebih/
.Contoh 2, penggabungan dua direktori secara transparan
Dalam proses membangun kembali USB langsung saya untuk setiap rilis, saya menggunakan OverlayFS untuk menghemat banyak waktu. Saya mulai dengan direktori bernama ubuntu-base yang berisi konten gambar ubuntu-core yang merupakan instalasi paling dasar. Saya kemudian akan membuat direktori yang disebut ubuntu, kubuntu, lubuntu, dan xubuntu.
Kemudian, saya menggunakan OverlayFS untuk membuat file-file dari basis-Ubuntu muncul di direktori individual. Saya akan menggunakan sesuatu seperti ini:
Ini membuat file-file dari ubuntu-base muncul di folder kubuntu. Lalu, saya bisa
chroot
ke folder kubuntu dan melakukan sesuatu sepertiapt-get install kubuntu-desktop
. Setiap perubahan yang dibuat saat dalam mount OverlayFS ini akan tetap berada di direktori atas, dalam hal ini folder kubuntu. Kemudian, setelah saya unmount mount OverlayFS file yang benar-benar ada di ubuntu-base tetapi "dicerminkan" ke folder kubuntu lenyap kecuali mereka telah diubah. Ini membuat saya tidak perlu memiliki banyak salinan file di basis-ubuntu sementara masih dapat menggunakannya seolah-olah mereka secara fisik ada di setiap lokasi.sumber
overlay
tidak denganoverlayfs
Dari https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt :
sumber
Saya telah memperluas artikel ini untuk menyertakan Script untuk overlay yang menetapkan root read-only fs.
Semoga ini bisa membantu.
sumber
Contoh runnable minimal
GitHub hulu .
Output pertama
ls
dengan mount:Output dari yang kedua
ls
tanpa mount:Interpretasi:
work/
direktori) yang seharusnya tidak kita pedulikanContoh diadaptasi dari: Contoh Penggunaan OverlayFS
Berikut adalah contoh yang lebih kompleks dengan beberapa lapisan bawah: Reload overlay dengan banyak lapisan (migrasi jauh dari aufs)
Diuji pada Ubuntu 18.04, kernel Linux 4.15.0.
sumber