swapon falhou: dispositivo ou recurso ocupado no disco montado

swapon falhou: dispositivo ou recurso ocupado no disco montado

Quero fazer uma troca no EBS externo montado, /workspace

E eu conseguiDispositivo ou recurso ocupado

swapon: /workspace/swap.1: swapon falhou: dispositivo ou recurso ocupado

sudo /bin/dd if=/dev/zero of=/workspace/swap.1 bs=1M count=10240
sudo /sbin/mkswap /workspace/swap.1
sudo /sbin/swapon /workspace/swap.1


Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  5.1G  2.3G  70% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            2.0G   12K  2.0G   1% /dev
tmpfs           396M  336K  395M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/xvdb       6.0T  1.7T  4.1T  29% /workspace

Ainda não funciona depois de executar synco comando

➜  ~  sync
➜  ~  sudo /sbin/swapon /workspace/swap.1
swapon: /workspace/swap.1: swapon failed: Device or resource busy

Aqui estão as informações de troca

➜  ~   cat /proc/swaps
Filename                Type        Size    Used    Priority
/workspace/swap.1                       file        10485756    0   -1

Responder1

Eu tive um problema semelhante ao tentar criar uma partição swap no sda2. Minha solução foi digitar

#: swapoff /dev/sda2
#: mkswap /dev/sda2
#: swapon /dev/sda2

Isso pareceu redefinir qualquer problema que eu estava tendo. Para ter certeza de que funcionou, use "lsblk" para verificar o ponto de montagem.

Responder2

O problema não é adicionar a troca; o problema é sua suposição de que todo o espaço de troca aparece na saída de df.

Apenas dados do tipo de partição aparecem nele e, como você está usando a troca no sistema, também conhecida como arquivo de troca, eles não aparecem. O espaço de trocaeraativado pela primeira vez swaponque você fez; você estava apenas procurando no lugar errado para confirmar isso. O segundo swaponfalhou, com razão, porque você não pode adicionar o mesmo arquivo uma segunda vez. Quando você olhou /proc/swaps, que é o resumo definitivo do sistema detodosespaço de troca, você viu que seu novo espaço estava instalado e funcionando.

Responder3

Você precisa syncretirar o cache do bloco após o mkswapcomando.

Sua explicação é a seguinte.

Se você gravar dados, mas eles não forem gravados fisicamente no disco, serão páginas sujas. Isso significa que o conteúdo deles foi criado aqui, no seu sistema, e não foi lido no disco rígido. Assim você não pode trocar em páginas sujas.

Responder4

tente este comando

echo 1 > /sys/block/zram0/reset

substitua "zram0" pela sua partição swap. exemplo:

    # Zram disk - 512MB size
#zram_enable=`getprop ro.config.zram`
#if [ "$zram_enable" == "true" ]; then
#    swapoff /dev/block/zram0
#    echo 1 > /sys/block/zram0/reset
#    echo 536870912 > /sys/block/zram0/disksize
#    mkswap /dev/block/zram0
#    sync
#    swapon /dev/block/zram0 -p 32758

informação relacionada