외장 SSD에서 VSCode EPERM 오류 해결하기

Fe·2025년 5월 6일
2

setting

목록 보기
1/3
post-thumbnail

VSCode에서 개발을 하다 보면 종종 Error: EPERM: operation not permitted... 오류가 발생한다. 그러면 VSCode를 관리자 권한으로 실행하거나 npm 캐시를 제거하는 등의 해결책을 많이들 제시한다. 나의 경우, 라이브러리를 설치할 때마다 EPERM 오류가 발생해서 해결을 하고 넘어가야겠다고 생각했다.

EPERM?

EPERM은 Error PERMission의 약자로, 운영체제 수준에서 허가되지 않은 작업을 시도하는 경우 반환되는 표준 에러 코드(errno 1)이다. 즉, 권한 문제로 발생하는 문제이다.

주로 언제 발생할까?

  1. 파일이나 디렉토리의 권한이 부족한 경우 (일반 사용자 계정으로 시스템 폴더를 수정한다거나...)
  2. 파일 시스템 제약이 있는 경우

권한 문제가 파일 시스템과도 연관이 있는 것을 확인하고, 외장 SSD를 사용하고 있다는 점을 고려해서 이 부분을 살펴보았다.

파일 시스템, exFAT vs NTFS

나는 삼성의 외장 SSD인 Samsung Portable SSD T7 Shield를 사용하고 있다 (광고 아님). 그리고 초기 파일 시스템은 exFAT으로 설정되어 있었다.

exFAT

  • Extended File Allocation Table
  • exFAT은 Microsoft가 FAT32 파일 시스템의 파일 크기/볼륨 제약을 해결하기 위해(파일 하나당 최대 4GB까지만 복사/이동이 가능) 등장했다.
  • Windows, MacOS, Linux 등 다양한 OS와 디바이스에 호환된다는 장점이 있다. 그래서 기본 파일 시스템으로 채택되지 않았나 싶다.
  • 하지만 파일 무결성을 보장하지 않고, NTFS에 비해 상대적으로 보안과 안정성이 낮다는 문제가 있다.
  • 또한, 세밀한 권한 관리가 가능한 ACL이 현재 Windows에서는 지원되지 않는다.
    • 이 부분은 여기에서 확인할 수 있다.

NTFS

  • New Technology File System
  • Microsoft Windows NT 계열부터 채택된 기본 파일 시스템이다. 서버, 데스크톱 환경을 염두에 두고 고급 기능을 제공한다.
  • 데이터의 무결성을 보장하며, ACL을 지원한다. 또한 강력한 보안을 자랑한다.
  • 기본적으로 Windows 전용으로 지원되고, MacOS에서는 읽기만 가능하며 쓰기 시 드라이버가 필요하다. 리눅스는 드라이버가 필요하다.

Windows에서 ACL 미지원 때문에 VSCode에서 패키지 매니저가 파일을 쓰거나 조작할 때 권한 문제가 발생한 것으로 보인다.

해결

나는 데스크탑과 노트북 환경을 왔다 갔다 하면서 작업하기 때문에 외장 SSD 사용이 필요하다. 또한, 윈도우만 사용하기 때문에 NTFS 파일 시스템을 사용해도 호환성에 문제가 생길 일은 없었다.

exFAT 기반의 SSD를 NTFS 파일 시스템으로 포맷하기로 결정했다!

열심히 백업을 해준다. 이때 용량이 꽤 많기 때문에 SSD를 사용하는 C 드라이브로 백업했다.

포맷하면 삼성에서 제공하는 Portable SSD Software가 함께 날아갈 것이기 때문에 이를 다운로드 하려 했는데 찾을 수 없었다. 알고 보니 외장 SSD 전용 소프트웨어는 없어지고 기기의 모든 메모리를 한 번에 관리할 수 있는 Magician 소프트웨어가 새로 나왔다.

그래서 마음 놓고 포맷했다.


포맷 후 잘 인식되고 잠금 설정도 되는 것을 확인했다.

성과

테스트 삼아서 VSCode에 라이브러리를 설치하고 삭제해 보았다.


(TMI: fe-custom-modal은 내가 직접 만든 모달 라이브러리이다)

이전에는 계속 발생했던 EPERM 오류가 뜨지 않았다. 검증 차원에서 2번 정도 더 설치 삭제를 반복했는데도 안 떴다. 성공이다😊

EPERM 뿐만 아니라 라이브러리 설치/삭제 시 Linking dependencies 단계에서 시간이 너무 오래 걸리는 문제도 있었다. 간단한 라이브러리 하나 설치하는데도 2분 가까이 걸렸는데, 이번에 SSD의 파일 시스템을 바꾸고 나니 약 19초로 시간도 대폭 단축되었다.

삭제할 때도 약 2초만에 끝났다.


개발 도중에 계속 문제를 일으켜서 작업 피로감도 상당했는데, 이 문제가 해결되어 너무 기쁘다. 별 것 아닌 작업이지만 개발 환경을 개선해서 뿌듯하다. Windows 환경에서 외장 SSD를 사용해서 개발하는 사람이라면 한 번쯤 겪을 수 있는 문제인데, 이 글이 도움이 될 수 있으면 좋겠다.

profile
하고 싶은 게 많은 사람

2개의 댓글

comment-user-thumbnail
2025년 5월 7일

fe-custom-modal 이거 진짜 써요>??????? 2분이면 진짜 불편했겠다..... 해결해서 다행이에여😎👏👏👏

1개의 답글