o que significa “Ler cabeçalho de troca falhou: Sucesso”?

9

Estou tentando instalar o Arch Linux (a partir do instantâneo de 01/04/2014). Fiz um arquivo de troca e tentei swapon, mas recebi uma mensagem de erro (?) Que não entendi.

Eu executei

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

e a saída é

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

e eu tenho :(no final da minha linha de comando. Então, conseguiu ou falhou? Não é assim que se configura um arquivo de troca?

Adam R. Gray
fonte

Respostas:

18

Não é assim que se configura um arquivo de troca?

Eu acho que você perdeu um passo no meio chmode swapon:

mkswap /mnt/sda2/swapfile

Quanto ao erro oxymoromic ...

swapon: / mnt / sda2 / swapfile: falha no cabeçalho de troca de leitura: Sucesso

O que isso significa literalmente é que há um erro no swaponcódigo, mas não necessariamente relacionado ao seu funcionamento primário.

As funções da biblioteca C geralmente usam errno , uma variável global que armazena um código de erro. A própria função retornará um valor indicando que ocorreu um erro (qualquer erro), e a natureza exata desse erro será armazenada errno. A idéia é que, se você receber uma indicação de um erro, poderá verificar o valor de errnopara ver exatamente o que é.

Há também uma strerror()função de biblioteca que pega um valor errno (são inteiros) e retorna uma string de linguagem humana relacionada a ele. Uma Successdelas é , que corresponde a um código de erro 0 (ou seja, nenhum erro).

Então, quando você vê algo assim, indica um erro como:

  • Obtendo um erro e, em seguida, chamando outra função (com sucesso) que redefine errno para 0 nos bastidores e, em seguida, usa errno para determinar as especificidades do erro que você recebeu antes de chamar a segunda função.

E / ou

  • Passar strerror()uma variável que deveria ter sido atribuída ao valor de errno em algum momento (para impedir que o erro anterior acontecesse), mas não foi.
Cachinhos Dourados
fonte
Você recebe duas votações se eu pudesse - o mkswape errno.
Aaron D. Marasco 13/04