Arch-Linux

“讀取交換標頭失敗:成功”是什麼意思?

  • April 16, 2014

我正在嘗試安裝 Arch Linux(來自 2014-04-01 快照)。我已經製作了一個交換文件並嘗試了swapon它,但是我收到了一個我不明白的錯誤(?)消息。

我已經執行了

fallocate -l 512M /mnt/sda2/swapfile
chmod 600 /mnt/sda2/swapfile
swapon /mnt/sda2/swapfile

輸出是

swapon: /mnt/sda2/swapfile: read swap header failed: Success

:(在命令行的末尾。那麼它是成功還是失敗?這不是如何設置交換文件嗎?

這不是如何設置交換文件嗎?

chmod我認為您在and之間錯過了一步swapon

mkswap /mnt/sda2/swapfile

至於含氧錯誤…

swapon:/mnt/sda2/swapfile:讀取交換標頭失敗:成功

這字面意思是swapon程式碼中有一個錯誤,但不一定與它的主要功能有關。

C 庫函式經常使用errno,這是一個儲存錯誤程式碼的全域變數。該函式本身將返回一個指示發生錯誤(任何錯誤)的值,並且該錯誤的確切性質將儲存在errno. 這個想法是,如果你得到一個錯誤的指示,你可以檢查它的值,errno看看它到底是什麼。

還有一個strerror()庫函式將採用 errno 值(它們是整數)並返回與之相關的人類語言字元串。其中之一是Success,它對應於錯誤程式碼 0(即沒有錯誤)。

所以當你看到這樣的東西時,它表示一個錯誤,例如:

  • 得到一個錯誤,然後呼叫另一個函式(成功)在幕後將 errno 重置為 0,然後在呼叫第二個函式之前使用 errno 來確定你得到的錯誤的細節。

和/或

  • 傳遞strerror()一個本應在某個時刻被分配 errno 值的變數(以防止發生先前的錯誤)但沒有。

引用自:https://unix.stackexchange.com/questions/124580