falhou ao trocar

1

Disjuntor Barreira OpenWrt, r44952; mikrotik rb951 2hnd.

Eu tentei fazer swap, mas não tive sucesso:

root@OpenWrt:~# dd if=/dev/zero of=/tmp/swapfile bs=10k count=5
5+0 records in
5+0 records out
root@OpenWrt:~# chmod 0600 /tmp/swapfile
root@OpenWrt:~# mkswap /tmp/swapfile
Setting up swapspace version 1, size = 44 KiB
no label, UUID=9358f4ae-b266-4470-b131-2eb2708b861f
root@OpenWrt:~# swapon /tmp/swapfile
block: failed to swapon /tmp/swapfile (-1)

O que há de errado?

    
por metsys 28.12.2017 / 20:07

1 resposta

1

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
    
por 29.12.2017 / 15:35

Tags