문제해결

E303: Unable to open swap file for “File”, recovery impossible

E303: Unable to open swap file for “File”, recovery impossible


vim 편집기로 파일을 열려고 할 때 에러 메세지가 다음과 같이 나타날 수 있습니다.

E303: Unable to open swap file for "File Name", recovery impossible

또는 이렇게 표시될 수 있습니다. (한국어 OS 사용 중일 경우)

E303: "File Name"의 스왑 파일을 열 수 없어서 복구는 불가능합니다

 

해결 방법


이 문제는 메모리 공간이 부족하거나 알 수 없는 이유로 인해서 편집 이력이 있었던 파일의 스왑(SWAP) 파일을 열지 못하여 발생하는 문제입니다.

여러 이유로 인해 발생할 수 있는데 제 경우에는 디스크 공간이 부족했었던 것이 원인이었던 것으로 확인되었습니다.

 

df 명령어를 사용하여 디스크 공간을 확인하였더니, 파일 시스템(/dev/xvda1)이 100%를 차지하고 있었습니다.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      8.0G  8.0G   20K 100% /
devtmpfs        222M     0  222M   0% /dev
tmpfs           244M     0  244M   0% /dev/shm
tmpfs           244M   17M  227M   7% /run
tmpfs           244M     0  244M   0% /sys/fs/cgroup
tmpfs            49M     0   49M   0% /run/user/1002
tmpfs            49M     0   49M   0% /run/user/1001

 

이 서버에서는 cron 데몬의 작업으로 인해 지속적으로 쌓여져왔던 로그 데이터로 인해 디스크 공간이 가득 찼던 문제였습니다. 아니나 다를까 crontab -e 명령어를 사용했을 때에도 아래와 같이 에러가 발생했습니다.

# crontab -e
/tmp/crontab.4Mpjzh: No space left on device

rm 명령어를 사용하여 관련된 로그 디렉토리의 데이터를 조금 지워주었습니다.

이후 다시 vim을 통해서 텍스트 파일을 열 수 있었습니다.

JooTC

안녕하세요. 테크놀로지에 관심이 많은 블로거입니다.

Recent Posts

Zalgo 텍스트와 이를 방지하는 방법

인터넷 커뮤니티 사이트에서 게시글이나 댓글에 간혹 장난을 목적으로 작성된 특이한 글자를 볼 수 있습니다. 위…

4주 ago

리눅스 kill, killall 명령어 – 특정 프로세스 종료하기

리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…

4주 ago

JavaScript typeof null이 ‘object’인 이유

JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…

4주 ago

Mocha Error: Resolution method is overspecified. 해결 방법

NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…

1개월 ago

윈도우 11 설치 시 Microsoft 계정 로그인 없이 로컬 계정 만들기

언제부턴가 윈도우 11을 처음 설치할 때 마이크로소프트(Microsoft) 계정 로그인을 강제로 요구하게 되었습니다. 물론 마이크로소프트 계정이…

6개월 ago

에어팟 프로 2 케이스 스피커 소리를 완전히 끄는 방법

애플 에어팟 프로 2 (AirPods Pro 2) 케이스에는 스피커가 내장되어 있습니다. 그런데 간혹 아무 것도…

9개월 ago