我正在尝试安装 Arch Linux(来自 2014 年 4 月 1 日快照)。我已经制作了一个交换文件并尝试了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
我:(
在命令行的末尾有。那么到底是成功了还是失败了呢?这不是设置交换文件的方法吗?
答案1
这不是设置交换文件的方法吗?
chmod
我认为您错过了和之间的一步swapon
:
mkswap /mnt/sda2/swapfile
至于矛盾的错误......
swapon:/mnt/sda2/swapfile:读取交换标头失败:成功
从字面上看,这意味着代码中存在错误swapon
,但不一定与其主要功能相关。
经常使用的C库函数错误号,存储错误代码的全局变量。该函数本身将返回一个值,指示发生了错误(任何错误),并且该错误的确切性质将存储在errno
.这个想法是,如果您收到错误指示,则可以检查 的值errno
以准确了解它是什么。
还有一个strerror()
库函数将采用 errno 值(它们是整数)并返回与之相关的人类语言字符串。其中之一是Success
,它对应于错误代码 0(即没有错误)。
因此,当您看到类似的内容时,则表明存在错误,例如:
- 收到错误,然后调用另一个函数(成功),该函数在幕后将 errno 重置为 0,然后使用 errno 确定在调用第二个函数之前遇到的错误的具体情况。
和/或
- 传递
strerror()
一个本应在某个时刻被分配 errno 值的变量(以防止发生先前的错误),但实际上却没有。