我想在已安裝的外部 EBS、/workspace 上進行交換
我得到了設備或資源繁忙
swapon:/workspace/swap.1:swapon失敗:裝置或資源繁忙
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
sync
運行命令後仍然不起作用
➜ ~ sync
➜ ~ sudo /sbin/swapon /workspace/swap.1
swapon: /workspace/swap.1: swapon failed: Device or resource busy
這是交換訊息
➜ ~ cat /proc/swaps
Filename Type Size Used Priority
/workspace/swap.1 file 10485756 0 -1
答案1
我在嘗試在 sda2 上建立交換分割區時遇到了類似的問題。我的解決方案是輸入
#: swapoff /dev/sda2
#: mkswap /dev/sda2
#: swapon /dev/sda2
這似乎重置了我遇到的任何問題。為了確保這有效,請使用“LSBLK」來檢查掛載點。
答案2
問題不在於添加交換;問題是您假設所有交換空間都顯示在 的輸出中df
。
只有分割區類型的資料會顯示在其中,並且當您使用系統內交換(又稱交換檔案)時,它不會顯示。交換空間曾是你第一次swapon
做的事就被啟動了;你只是找錯了地方來確認這一點。第二次swapon
失敗了,這是正確的,因為您無法再次新增相同的檔案。當你查看時/proc/swaps
,這是最終的系統摘要全部交換空間後,您會看到新空間已啟動並正在運作。
答案3
您需要在命令sync
後清空區塊快取mkswap
。
其解釋如下。
如果您寫入數據,但它們沒有實體地寫入磁碟,那麼它們將是髒頁。這意味著它們的內容是在您的系統上創建的,而不是從硬碟讀取的。因此你不能在髒頁上進行交換。
答案4
嘗試這個命令
echo 1 > /sys/block/zram0/reset
將“zram0”替換為您的交換分割區。例子:
# 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