N'est-ce pas comment configurer un fichier d'échange?
Je pense que vous avez manqué une étape entre chmod
et swapon
:
mkswap /mnt/sda2/swapfile
Quant à l'erreur oxymoromique ...
swapon: / mnt / sda2 / swapfile: échec de la lecture de l'en-tête de swap: succès
Cela signifie littéralement qu'il y a un bogue dans le swapon
code, mais pas nécessairement lié à son fonctionnement principal.
Les fonctions de la bibliothèque C utilisent souvent errno , une variable globale qui stocke un code d'erreur. La fonction elle-même renverra une valeur indiquant qu'une erreur s'est produite (toute erreur) et la nature exacte de cette erreur sera stockée dans errno
. L'idée est que si vous obtenez une indication d'erreur, vous pouvez alors vérifier la valeur de errno
pour voir exactement de quoi il s'agit.
Il y a aussi une strerror()
fonction de bibliothèque qui prendra une valeur errno (ce sont des entiers) et retournera une chaîne de langage humain s'y rapportant. L'un d'eux est Success
, ce qui correspond à un code d'erreur de 0 (c'est-à-dire, aucune erreur).
Ainsi, lorsque vous voyez quelque chose comme ça, cela indique une erreur telle que:
- Obtenir une erreur, puis appeler une autre fonction (avec succès) qui réinitialise errno à 0 dans les coulisses, puis utiliser errno pour déterminer les détails de l'erreur que vous avez obtenue avant d'appeler la deuxième fonction.
Et / ou
- Passer
strerror()
une variable qui était censée avoir reçu la valeur de errno à un moment donné (pour éviter que l'erreur précédente ne se produise) mais ne l'a pas été.
mkswap
eterrno
.