"스왑 헤더 읽기 실패 : 성공"이란 무엇입니까?


9

2014-04-01 스냅 샷에서 Arch Linux를 설치하려고합니다. 스왑 파일을 만들어 보았지만 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

나는이 :(내 명령 줄의 끝에서. 성공했거나 실패 했습니까? 이것이 스왑 파일을 설정하는 방법이 아닙니까?

답변:


18

이것이 스왑 파일을 설정하는 방법이 아닙니까?

난 당신이 사이의 한 단계 놓친 생각 chmodswapon:

mkswap /mnt/sda2/swapfile

산소 오류에 관해서는 ...

스왑 온 : / mnt / sda2 / swapfile : 스왑 헤더 읽기 실패 : 성공

이것이 문자 그대로 의미하는 것은 swapon코드에 버그가 있지만 반드시 기본 기능과 관련된 버그는 아닙니다.

C 라이브러리 함수는 종종 오류 코드를 저장하는 전역 변수 인 errno를 사용 합니다. 함수 자체는 오류가 발생했음을 나타내는 값 (모든 오류)을 반환하며 해당 오류의 정확한 특성은에 저장됩니다 errno. 아이디어는 오류 표시가 표시되면 값을 확인하여 errno정확히 무엇인지 확인할 수 있다는 것입니다.

또한 strerror()errno 값 (정수)을 가져와 관련 인간 언어 문자열을 반환 하는 라이브러리 함수 도 있습니다. 그 중 하나 Success는 오류 코드 0 (즉, 오류 없음)에 해당하는입니다.

따라서 이와 같은 것을 보면 다음과 같은 실수를 나타냅니다.

  • 오류가 발생하면 다른 함수를 성공적으로 호출하여 장면 뒤에서 errno를 0으로 재설정 한 다음 errno를 사용하여 두 번째 함수를 호출하기 전에 발생한 오류의 세부 사항을 판별하십시오.

그리고 / 또는

  • strerror()(이전 실수가 발생하지 않도록) 어느 시점에서 errno 값이 할당되었을 것으로 예상되었지만 그렇지 않은 변수를 전달 합니다.

당신은 내가 할 수있는 경우 두 upvotes을 얻을 - mkswaperrno.
Aaron D. Marasco
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.