A partir das informações sobre o pastebin /tmp
é montado como tmpfs
, o que não suporta swapfiles.
Quanto ao rootfs
, que é yaffs
formatado, parece também não suportar arquivos swap. Não sei por que, mas pode ser como yaffs
está alocando espaço em disco. Na página swapon
.
The swap file implementation in the kernel expects to be able to write to the file directly, without the assistance of the filesystem.
Uma solução alternativa pode ser mapear o arquivo para um dispositivo de loopback e usar o dispositivo de loopback como o dispositivo de troca. Isso também deve funcionar em um caminho tmpfs
montado, mas não faz muito sentido, pois você está limitando sua RAM disponível e acelerando a troca. No entanto, por uma questão de perfeição.
Primeiro, prove que tmpfs
não suporta arquivos swap.
[root@localhost ~]# df -T /tmp/
Filesystem Type 1K-blocks Used Available Use% Mounted on
tmpfs tmpfs 4029400 102616 3926784 3% /tmp
[root@localhost ~]# dd if=/dev/zero of=/tmp/swapfile bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0390268 s, 2.7 GB/s
[root@localhost ~]# mkswap /tmp/swapfile
mkswap: /tmp/swapfile: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 100 MiB (104853504 bytes)
no label, UUID=bde6a47d-47f9-46b8-a492-786ab9565813
[root@localhost ~]# chmod 600 /tmp/swapfile
[root@localhost ~]# swapon /tmp/swapfile
swapon: /tmp/swapfile: swapon failed: Invalid argument
Em seguida, mapeie o swapfile para um dispositivo de loopback e swapon
.
[root@localhost ~]# losetup /dev/loop0 /tmp/swapfile
[root@localhost ~]# swapon /dev/loop0
[root@localhost ~]# cat /proc/swaps
Filename Type Size Used Priority
/dev/dm-1 partition 4194300 0 -2
/dev/loop0 partition 102396 0 -3