GNU/Linux >> Belajar Linux >  >> Linux

Tukar tmpfs (Jelas ide yang buruk, tetapi apakah mungkin?)

Seharusnya tidak mungkin. swapon panggilan sistem membutuhkan readpage dan bmap (secara tidak langsung) panggilan diimplementasikan oleh sistem file:

http://lxr.free-electrons.com/source/mm/swapfile.c?v=4.0#L2412

if (!mapping->a_ops->readpage) {
    error = -EINVAL;
    goto bad_swap;
}   

Tapi tidak satupun dari mereka diimplementasikan oleh tmpfs , entri seperti itu hilang dari address_space_operations yang sesuai :http://lxr.free-electrons.com/source/mm/shmem.c?v=4.0#L3104

Untuk alasan yang sama, tmpfs tidak dapat menahan mount loop, dan ramfs juga tidak akan berfungsi (tidak memiliki bmap panggilan)


Dari T&J ini https://superuser.com/questions/539287/swapon-failed-invalid-argument-on-a-linux-system-with-btrfs-filesystem (situs referensi asli tidak merespons):

Jadi "Argumen tidak valid" harus dibaca sebagai "Sistem file Anda tidak mendukung file swap"

Alasan ketidakcocokan yang saya duga adalah "ketergantungan melingkar". Dari artikel ini:http://www.jamescoyle.net/knowledge/951-the-difference-between-a-tmpfs-and-ramfs-ram-disk:

Dua perbedaan antara ramfs dan tmpfs membuat tmpfs jauh lebih mudah diatur, namun ini adalah salah satu kelemahan utama; tmpfs dapat menggunakan SWAPspace. Jika sistem Anda kehabisan RAM fisik, file di partisi tmpfs Anda mungkin ditulis ke partisi SWAP berbasis disk dan harus dibaca dari disk saat file diakses berikutnya.

Yang akan sangat mustahil dalam skenario Anda.

Itu mungkin bekerja dengan ramfs , tho - yang tidak memiliki masalah ini.


Linux
  1. Apakah Masih Buruk Menggunakan Swap Pada SSD Modern?

  2. Buat file swap Linux

  3. Kemungkinan untuk menggunakan .dll di Linux

  1. Apakah ide yang buruk untuk melakukan peningkatan apt-get dalam wadah OpenVZ?

  2. Menggunakan tmpfs + partisi swap yang sangat besar untuk /tmp daripada sistem file biasa?

  3. Busybox ping IP berfungsi, tetapi nama host nslookup gagal dengan alamat buruk

  1. Pengunduhan HTTP berhenti setelah beberapa saat, tidak dapat dilanjutkan

  2. Linux:bagaimana cara menghapus semua kemungkinan secara eksplisit?

  3. Akun Pengguna Centos nologin tetapi mungkin untuk masuk ke akun