Linux
交換文件交換無效參數
我從一個交換文件交換了很長一段時間,但由於某種原因它停止了工作。
sudo fallocate -l 4G /home/.swap/swapfile sudo chmod 600 /home/.swap/swapfile sudo mkswap /home/.swap/swapfile # /etc/fstab /home/.swap/swapfile swap swap defaults 0 0 sudo swapon -a
swapon: /home/.swap/swapfile: swapon failed: Invalid argument
我正在執行最新版本的 Fedora,所以是否有可能隨著更新而發生變化,或者可能是什麼原因?
請嘗試更換
fallocate -l 4G /home/.swap/swapfile
和
dd if=/dev/zero of=/home/.swap/swapfile bs=1M count=4096
帶孔的文件
核心中的交換文件實現期望能夠直接寫入文件,而無需文件系統的幫助。這是帶有漏洞的文件或 Btrfs 等文件系統上的寫時復製文件的問題。
cp(1) 或 truncate(1) 之類的命令會創建帶有孔的文件。這些文件將被 swapon 拒絕。
fallocate(1) 創建的預分配文件也可能被解釋為帶有漏洞的文件,具體取決於文件系統。 自 Linux 4.18 起,XFS 支持預分配的交換文件。
創建交換文件最便攜的解決方案是使用 dd(1) 和
/dev/zero
.斜體字似乎解釋了一切。不幸的是,即使有詳細的輸出,
swapon
也沒有提到失敗的原因(有漏洞的文件)。