인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

송우석님의 프로필 이미지
송우석

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

45강. 빌드와 실행, 그리고 접속

./gradlew build -x test 질문

작성

·

275

1

Exception in thread "main" java.io.IOException: No space left on device

at java.base/java.io.FileOutputStream.writeBytes(Native Method)

at java.base/java.io.FileOutputStream.write(FileOutputStream.java:354)

at java.base/java.io.BufferedOutputStream.write(BufferedOutputStream.java:123)

at org.gradle.wrapper.Download.downloadInternal(Download.java:119)

at org.gradle.wrapper.Download.download(Download.java:80)

at org.gradle.wrapper.Install$1.call(Install.java:83)

at org.gradle.wrapper.Install$1.call(Install.java:63)

at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69)

at org.gradle.wrapper.Install.createDist(Install.java:63)

at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107)

at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:63)

이런 에러가 뜹니다..


그 이전과 다르게 진행했던 것은
[ec2-user@ip-172-31-36-164 library-app]$ sudo dd if=/dev/zero of=/swaplife bs=128M count=16
여기서 swaplife가 오타가 나서
[ec2-user@ip-172-31-36-164 library-app]$ sudo dd if=/dev/zero of=/swapfile bs=128M count=32
swapfile로 바꾸어 다시 진행을 했습니다.

dd: error writing '/swapfile': No space left on device

29+0 records in

28+0 records out

이 상태에서 다시 지우고 어떻게 처음부터 시작할 수 있을까요..?

답변 2

1

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요 우석님!! 🙂 또 뵙네요!! 👍

 

No space left on device 에러는 어떤 작업을 하려하는데, 하드디스크가 모두 꽉 차서 발생한 에러입니다! 아마 swapfile을 2개 만들어주셔서, 해당 swapfile 들이 디스크 자원을 모두 잡아 먹지 않았나 싶네요!!

 

이 역시 몇 가지 해결 방법이 있는데요!

 

아래 인프런 AI 인턴이 언급해준 것처럼, swapfile 자체를 지우는 방법이 있고요!

 

아니면, EC2 자체에 추가적인 디스크를 할당하는 방법이 있습니다! (비유드리자면, 컴퓨터에 하드디스크를 하나 더 다는거죠~ 😉)

 

가장 쉬운 방법으로는 현재 사용하고 계신 EC2를 완전히 지우고, 다시 시작하는 방법도 있습니다.

물론 이 방법은 git, java, mysql 등을 다시 설치해야 하니 살짝 슬플 수 있습니다! 🥺

 

답변이 도움이 되었으면 좋겠습니다.

감사합니다!! 🙏

1

안녕하세요, 인프런 AI 인턴입니다.

질문자님께서 겪고 계신 No space left on device 에러는 디스크 공간이 부족할 때 발생합니다. 이는 질문자님이 언급하신 /swapfile 생성 과정에서 디스크 공간을 과도하게 사용하여 발생한 것으로 보입니다.

해당 문제를 해결하는 방법 중 하나는 사용하지 않는 파일을 삭제하여 공간을 확보하는 것입니다. 그런 다음, 필요에 따라 새로운 swap 파일을 생성할 수 있습니다. 하지만 직접적으로 이러한 상황을 해결하는 기존의 질문과 답변을 제공드리지는 못했으며, gradlew와 관련된 다른 컨텍스트일 수 있기 때문에 정확히 일치하는 해결책을 제공하는 것이 어려울 수 있습니다.

그러나 Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain와 같은 에러를 겪었을 때 해결 방법을 찾는데 도움이 될 수 있는 관련 질문이 있어서 소개해드리고자 합니다.

  • gradlew 관련 질문이 있습니다!
    • 이 질문과 답변은 gradlew 실행 중 에러가 발생했을 때의 문제 해결과 관련이 있습니다. 디스크 공간 부족 문제와는 직접적으로 관련이 없으나, gradlew 실행이 실패했을 때의 일반적인 문제와 그 해결 방법을 찾는 데 도움이 될 수 있습니다.

디스크 공간 문제를 해결하기 위해서는 먼저 불필요한 파일이나 디렉터리를 삭제하여 공간을 확보해야 합니다. 특히, dd 명령으로 생성한 불필요한 swap 파일이 있을 경우, 해당 파일을 안전하게 삭제하여 여유 공간을 확보해보세요.

해당 명령어를 이용하여 swap 파일을 삭제할 수 있습니다:

sudo swapoff -a  # 모든 swap 끄기
sudo rm /swapfile  # swap 파일 삭제

디스크 공간을 확인하려면, 다음 명령어를 활용하시면 됩니다:

df -h

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

송우석님의 프로필 이미지
송우석

작성한 질문수

질문하기