No debería ser posible. swapon
la llamada al sistema requiere readpage
y bmap
(indirectamente) llamadas implementadas por el sistema de archivos:
http://lxr.free-electrons.com/source/mm/swapfile.c?v=4.0#L2412
if (!mapping->a_ops->readpage) {
error = -EINVAL;
goto bad_swap;
}
Pero ninguno de ellos está implementado por tmpfs , tal entrada falta en el address_space_operations
correspondiente :http://lxr.free-electrons.com/source/mm/shmem.c?v=4.0#L3104
Por la misma razón, tmpfs no puede contener montajes de bucle y ramfs tampoco funcionará (no tiene bmap
llamar)
De estas preguntas y respuestas https://superuser.com/questions/539287/swapon-failed-invalid-argument-on-a-linux-system-with-btrfs-filesystem (el sitio original al que se hace referencia no responde):
Por lo tanto, "Argumento no válido" debe leerse como "Su sistema de archivos no admite archivos de intercambio"
El motivo de incompatibilidad que sospecho es una "dependencia circular". De este artículo:http://www.jamescoyle.net/knowledge/951-the-difference- between-a-tmpfs-and-ramfs-ram-disk:
Estas dos diferencias entre ramfs y tmpfs hacen que tmpfs sea mucho más manejable; sin embargo, este es un gran inconveniente; tmpfs puede usar SWAPspace. Si su sistema se queda sin RAM física, los archivos en sus particiones tmpfs pueden escribirse en particiones SWAP basadas en disco y tendrán que leerse desde el disco la próxima vez que se acceda al archivo.
Lo cual sería prácticamente imposible en tu escenario.
podría trabajar con ramfs
, aunque - que no tiene este problema.