“读取交换头失败:成功”是什么意思?


9

我正在尝试安装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

:(在命令行末尾。那么成功还是失败?这不是如何设置交换文件吗?

Answers:


18

这不是如何设置交换文件吗?

我认为您错过了chmod和之间的一步swapon

mkswap /mnt/sda2/swapfile

至于氧气错误

swapon:/ mnt / sda2 / swapfile:读取交换头失败:成功

从字面上看,这意味着swapon代码中存在错误,但不一定与它的主要功能有关。

C库函数通常使用errno,这是一个存储错误代码的全局变量。函数本身将返回一个值,该值指示发生了错误(任何错误),并且该错误的确切性质将存储在中errno。这个想法是,如果您得到错误指示,则可以检查的值errno以确切了解其含义。

还有一个strerror()库函数将采用errno值(它们是整数)并返回与此相关的人类语言字符串。其中之一是Success,它对应于错误代码0(即,无错误)。

因此,当您看到类似这样的内容时,表明存在错误,例如:

  • 遇到错误,然后成功调用另一个函数,该函数将errno在后台重置为0,然后使用errno确定在调用第二个函数之前遇到的错误的细节。

和/或

  • strerror()在某个时候传递一个应该被赋予errno值的变量(以防止发生先前的错误),但是没有传递。

如果可以的话,您将获得两次投票- mkswaperrno
亚伦·马拉斯科
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.