Swapon ist fehlgeschlagen: Gerät oder Ressource auf bereitgestellter Festplatte belegt

Swapon ist fehlgeschlagen: Gerät oder Ressource auf bereitgestellter Festplatte belegt

Ich möchte einen Swap auf dem gemounteten externen EBS durchführen, /workspace

Und ich habeGerät oder Ressource beschäftigt

swapon: /workspace/swap.1: swapon fehlgeschlagen: Gerät oder Ressource beschäftigt

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

Funktioniert immer noch nicht, nachdem syncder Befehl ausgeführt wurde

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

Hier sind die Tauschinformationen

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

Antwort1

Ich hatte ein ähnliches Problem beim Versuch, eine Swap-Partition auf sda2 zu erstellen. Meine Lösung bestand darin, Folgendes einzugeben:

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

Dies schien das Problem, das ich hatte, zurückzusetzen. Um sicherzustellen, dass dies funktioniert, verwenden Sie "lsblk", um den Einhängepunkt zu überprüfen.

Antwort2

Das Problem ist nicht das Hinzufügen des Swap-Speichers. Das Problem ist Ihre Annahme, dass der gesamte Swap-Speicher in der Ausgabe von angezeigt wird df.

Darin werden nur Daten vom Typ Partition angezeigt, und da Sie In-System-Swapping verwenden, also eine Swap-Datei, werden diese nicht angezeigt. Der Swap-SpeicherWaraktiviert durch den ersten, swaponden Sie getan haben; Sie haben nur an der falschen Stelle gesucht, um das zu bestätigen. Der zweite swaponist fehlgeschlagen, zu Recht, weil Sie dieselbe Datei nicht ein zweites Mal hinzufügen können. Als Sie in nachgesehen haben /proc/swaps, was die endgültige Systemzusammenfassung von istalleSwap-Speicherplatz, Sie haben gesehen, dass Ihr neuer Speicherplatz einsatzbereit ist.

Antwort3

Sie müssen syncden Blockcache nach dem mkswapBefehl leeren.

Die Erklärung ist die folgende.

Wenn Sie Daten schreiben, diese aber nicht physisch auf die Festplatte geschrieben werden, handelt es sich um Dirty Pages. Das bedeutet, dass ihr Inhalt hier auf Ihrem System erstellt und nicht von der Festplatte gelesen wurde. Daher können Sie auf Dirty Pages nicht auslagern.

Antwort4

Versuchen Sie diesen Befehl

echo 1 > /sys/block/zram0/reset

Ersetzen Sie „zram0“ durch Ihre Swap-Partition. Beispiel:

    # 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

verwandte Informationen