WSL 배포판을 다른 드라이브로 이동하기

발행: (2026년 2월 19일 오전 08:13 GMT+9)
18 분 소요
원문: Dev.to

Source: Dev.to – Moving WSL 2 Distributions to Another Drive

WSL 2 배포판을 다른 드라이브로 옮기기

WSL 2를 사용하면서 디스크 공간이 부족하거나 SSD와 HDD를 혼용해 성능을 최적화하고 싶을 때, 배포판을 현재 위치가 아닌 다른 드라이브로 옮길 수 있습니다. 이 글에서는 wsl --exportwsl --import 명령을 이용해 안전하게 배포판을 이동하는 방법을 단계별로 설명합니다.


사전 준비

  1. 관리자 권한 PowerShell 혹은 CMD 를 실행합니다.
  2. 이동하려는 배포판이 WSL 2 로 실행 중인지 확인합니다. (wsl -l -v 로 확인 가능)
  3. 새 드라이브에 충분한 여유 공간이 있는지 확인합니다.

단계 1 – 현재 배포판 내보내기 (Export)

먼저 기존 배포판을 .tar 파일로 내보냅니다. 이렇게 하면 원본 배포판은 그대로 유지되며, 나중에 필요하면 복원할 수 있습니다.

wsl --export <배포판이름> <내보낼경로>\<배포판이름>.tar

예시:

wsl --export Ubuntu-20.04 D:\WSLBackups\Ubuntu-20.04.tar

Tip:

  • <배포판이름>wsl -l -v 로 확인한 정확한 이름을 사용합니다.
  • 내보내는 과정은 배포판 크기에 따라 몇 분 정도 걸릴 수 있습니다.

단계 2 – 기존 배포판 삭제 (Unregister)

내보내기가 성공적으로 끝났다면, 기존 배포판을 시스템에서 제거합니다. 이렇게 해야 같은 이름으로 새 위치에 다시 등록할 수 있습니다.

wsl --unregister <배포판이름>

예시:

wsl --unregister Ubuntu-20.04

주의:
이 명령은 배포판을 완전히 삭제합니다. 내보낸 .tar 파일이 정상적으로 존재하는지 반드시 확인하세요.


단계 3 – 새 위치에 배포판 가져오기 (Import)

이제 새 드라이브에 배포판을 다시 가져옵니다. --import 옵션은 루트 파일 시스템이 저장될 폴더와 배포판 이름을 지정합니다.

wsl --import <배포판이름> <새경로> <내보낸파일>.tar --version 2

예시 (D: 드라이브에 옮기기):

wsl --import Ubuntu-20.04 D:\WSL\Ubuntu-20.04 D:\WSLBackups\Ubuntu-20.04.tar --version 2
  • <새경로> 는 배포판 파일이 실제로 저장될 폴더이며, 폴더가 존재하지 않으면 자동으로 생성됩니다.
  • --version 2 옵션을 명시해 WSL 2 로 실행되도록 합니다.

단계 4 – 동작 확인

배포판이 정상적으로 옮겨졌는지 확인합니다.

wsl -l -v

출력에 Ubuntu-20.04Running 혹은 Stopped 상태로 표시되고, Version 열에 2 가 나타나면 성공입니다.

wsl -d Ubuntu-20.04

위 명령으로 새 위치에 설치된 배포판에 접속해 정상 작동 여부를 테스트합니다.


추가 옵션 (선택)

1. .wslconfig 로 기본 루트 디스크 지정

전체 WSL 인스턴스가 기본적으로 특정 드라이브에 저장되도록 하려면 사용자 홈 디렉터리(%UserProfile%)에 .wslconfig 파일을 만들고 다음과 같이 설정합니다.

[wsl2]
memory=8GB          # 메모리 제한 (선택)
processors=4        # CPU 코어 수 (선택)
swap=0              # 스왑 파일 비활성화 (선택)
localhostForwarding=true

Note:
현재 버전에서는 루트 파일 시스템 자체 경로를 .wslconfig 로 지정할 수 없으며, 위 옵션은 주로 성능 튜닝에 사용됩니다.

2. 기존 배포판을 그대로 두고 복제하기

원본 배포판을 유지하면서 새 드라이브에 복제본을 만들고 싶다면 --unregister 단계 없이 바로 --import 를 수행하면 됩니다. 이렇게 하면 두 개의 독립적인 배포판이 각각 다른 위치에 존재하게 됩니다.

wsl --import Ubuntu-20.04-Clone D:\WSL\Ubuntu-20.04-Clone D:\WSLBackups\Ubuntu-20.04.tar --version 2

마무리 정리

단계명령설명
1wsl --export배포판을 .tar 파일로 백업
2wsl --unregister기존 배포판을 시스템에서 삭제
3wsl --import새 드라이브에 배포판을 복원
4wsl -l -v이동 결과 확인

이 과정을 통해 WSL 2 배포판을 원하는 드라이브로 자유롭게 옮길 수 있습니다. 특히 SSD에 시스템 파일을, 대용량 HDD에 데이터 파일을 두어 성능과 저장 용량을 최적화하고 싶을 때 유용합니다.


자주 묻는 질문 (FAQ)

질문답변
내보낸 .tar 파일이 너무 커서 복사에 시간이 오래 걸립니다.외부 SSD 혹은 네트워크 드라이브에 직접 내보내면 복사 시간을 단축할 수 있습니다.
배포판을 옮긴 뒤 Windows Terminal에서 경로가 바뀌지 않아요.wsl -d <배포판이름> 로 직접 실행하거나, 프로필 설정에서 commandline 값을 새 배포판 이름으로 업데이트하세요.
WSL 2가 아닌 WSL 1 배포판도 같은 방법으로 옮길 수 있나요?--version 1 옵션을 지정하면 동일한 절차로 WSL 1 배포판도 옮길 수 있습니다.
복원 후 패키지 매니저가 깨졌어요.wsl --shutdown 후 다시 시작하거나, sudo apt update && sudo apt upgrade 로 패키지 상태를 정리해 보세요.

결론
wsl --exportwsl --import 를 활용하면 복잡한 파일 시스템 이동 없이도 WSL 2 배포판을 원하는 위치에 손쉽게 배치할 수 있습니다. 위 단계들을 차근차근 따라 하면 디스크 공간 관리와 성능 최적화를 손쉽게 달성할 수 있습니다. Happy hacking!

배포판은 어디에 저장되나요?

아무것도 옮기기 전에 현재 배포판이 위치한 경로를 확인하세요. WSL은 각 배포판의 가상 하드 디스크(VHDX)를 Windows 레지스트리에 등록된 기본 경로에 저장합니다:

HKCU\Software\Microsoft\Windows\CurrentVersion\Lxss\{GUID}\BasePath

일반적인 기본 위치

WSL 버전기본 경로
새로운 WSL%LOCALAPPDATA%\wsl\{GUID}\
스토어 설치 배포판%LOCALAPPDATA%\Packages\<PackageName>\LocalState\

PowerShell에서 각 VHDX 파일의 크기를 확인할 수 있습니다:

Get-ChildItem -Path "$env:LOCALAPPDATA\wsl" -Recurse -Filter "ext4.vhdx" |
  Select-Object FullName,
                @{N='SizeGB';E={[math]::Round($_.Length/1GB, 2)}}

또는 모든 배포판과 해당 WSL 버전을 나열하려면:

wsl --list --verbose

Source:

배포판을 이동하는 가장 간단한 방법은 내장 move 명령을 사용하는 것입니다. 이 명령은 VHDX 파일을 옮기고 레지스트리를 한 번에 업데이트합니다.

Step 1 – Stop the distribution

wsl --terminate Ubuntu

정지했는지 확인:

wsl --list --verbose

배포판 이름 옆에 Stopped 가 표시되어야 합니다.

Step 2 – Move it

wsl --manage Ubuntu --move "D:\WSL\Ubuntu"

WSL은 필요에 따라 대상 폴더를 생성하고 VHDX 파일을 이동합니다. 큰 VHDX 파일(예: 50 GB)은 디스크 속도에 따라 몇 분 정도 걸릴 수 있습니다.

Step 3 – Verify

wsl -d Ubuntu
whoami
ls ~

명령이 정상적으로 실행되면 배포판이 이제 **D:**에 위치하고 WSL이 해당 위치를 알고 있습니다. 모든 파일, 패키지 및 설정이 그대로 유지됩니다.

방법 2 – 내보내기 및 가져오기

이 방법은 --manage --move를 사용할 수 없거나 배포판 이름을 바꾸고 싶을 때 사용합니다. 모든 WSL 2 설치에서 작동합니다.

단계 1 – 배포판 내보내기

다음 세 가지 형식 옵션이 있습니다:

FormatDescriptionCommand
TAR (default, universal)간단한 아카이브이며 어디서든 작동합니다powershell<br>wsl --export Ubuntu D:\Backups\ubuntu-backup.tar<br>
VHD (faster, preserves disk structure)VHDX 파일을 직접 복사합니다; 대용량 배포판에 훨씬 빠릅니다powershell<br>wsl --export Ubuntu D:\Backups\ubuntu-backup.vhdx --format vhd<br>
Compressed TAR (smaller file)TAR와 동일하지만 gzip으로 압축됩니다powershell<br>wsl --export Ubuntu D:\Backups\ubuntu-backup.tar.gz --format tar.gz<br>

단계 2 – 기존 배포판 등록 해제

wsl --unregister Ubuntu

Warning: 이 명령은 배포판을 WSL 레지스트리에서 제거하고 원본 VHDX 파일을 삭제합니다. 명령을 실행하기 전에 내보내기가 정상적으로 완료되었는지(파일 크기 확인) 확인하십시오.

단계 3 – 새 위치에 가져오기

TAR 내보내기에서

wsl --import Ubuntu "D:\WSL\Ubuntu" D:\Backups\ubuntu-backup.tar

VHD 내보내기에서

wsl --import Ubuntu "D:\WSL\Ubuntu" D:\Backups\ubuntu-backup.vhdx --vhd

일반 구문은 다음과 같습니다:

wsl --import <DistroName> <InstallLocation> <FileName> [--vhd] [--version <1|2>]

단계 4 – 기본 사용자 설정 (TAR 가져오기 시에만 필요)

TAR 아카이브에서 가져올 경우, WSL은 기본적으로 root 사용자로 설정됩니다. 새 배포판 안에서 /etc/wsl.conf 파일을 만들거나 편집하여 일반 사용자를 지정하십시오.

# 가져온 배포판에서 root로 셸을 엽니다
wsl -d Ubuntu -u root

# 설정을 추가합니다 (your-username을 실제 사용자 이름으로 바꾸세요)
cat <<EOF >> /etc/wsl.conf
[user]
default=your-username
EOF

변경 후 셸을 종료하고 배포판을 다시 시작하면 지정한 사용자로 로그인됩니다.

Caution: 이 방법은 --export/--import가 수행하는 안전 검사를 우회합니다. VHDX 파일이 손상되지 않았는지, 대상 폴더에 VHDX 파일만 존재하는지(다른 파일이 없어야 함) 확인하십시오. 가져온 배포판이 방법 1, 단계 3에 설명된 대로 정상 작동하는지 검증하십시오.

빠른 참고용 치트‑시트

작업명령
설치된 배포판 목록 보기 (버전 포함)wsl --list --verbose
실행 중인 배포판 중지wsl --terminate <distro>
배포판 이동 (WSL ≥ 0.58)wsl --manage --move <distro> <new‑path>
.tar 아카이브로 배포판 내보내기wsl --export <distro> <path>\<distro>.tar
.vhdx 파일로 배포판 내보내기wsl --export <distro> <path>\<distro>.vhdx --format vhd
배포판 등록 해제 (삭제)wsl --unregister <distro>
.tar 아카이브를 새 배포판으로 가져오기wsl --import <new‑distro> <install‑path> <path>\<distro>.tar
.vhdx 파일을 새 배포판으로 가져오기wsl --import <new‑distro> <install‑path> <path>\<distro>.vhdx --vhd
배포판의 기본 사용자 설정배포판의 /etc/wsl.conf 파일을 편집하고 다음을 추가:
ini<br>[user]<br>default=<username><br>
백업 파일 삭제 (PowerShell)Remove-Item <path>\<file>

VHDX 파일을 새 위치로 이동하기

VHDX를 다시 복사하지 않고 직접 등록할 수 있습니다:

wsl --import-in-place Ubuntu "D:\WSL\Ubuntu\ext4.vhdx"
  • 이 명령은 WSL에 현재 위치에 있는 VHDX를 사용하도록 알려줍니다.
  • 파일은 ext4‑formatted **(모든 WSL 2 VHDX 파일은 ext4 형식입니다)**이어야 합니다.
  • 이미 파일을 직접 이동한 경우 가장 빠른 옵션입니다.

올바른 방법 선택

요소--manage --moveExport/Import (TAR)Export/Import (VHD)
속도빠름 (직접 이동)느림 (tar + 추출)보통 (파일 복사)
필요 디스크 공간대상만2배 (내보내기 + 가져오기)2배 (내보내기 + 가져오기)
사용자 설정 보존아니오 (수정 필요)
배포판 이름 변경아니오
필요한 WSL 버전최신 WSL모든 WSL 2모든 WSL 2
복잡도낮음보통보통

추천: 대부분의 경우 --manage --move가 올바른 선택입니다. 배포판 이름을 바꾸거나 오래된 WSL 버전을 사용할 때는 export/import를 사용하십시오.

다른 드라이브에 새 배포판 설치

배포판을 나중에 옮기는 것을 피하려면 설치 위치를 미리 지정하면 됩니다:

wsl --install Ubuntu --location "D:\WSL\Ubuntu"

VHDX 파일은 처음부터 **D:**에 생성됩니다.

쉬운 방법: WSL UI

WSL UI는 배포판을 이동할 수 있는 클릭‑앤‑포인트 방식을 제공합니다.

배포판 이동 대화상자

  • 현재 위치와 디스크 크기를 표시합니다.
  • 새 위치를 찾아볼 수 있게 해줍니다.
  • 배포판을 중지하고, 파일을 이동하며, 레지스트리를 업데이트하는 작업을 처리합니다.
  • 대용량 이동 시 진행 상황을 표시합니다.

명령줄 없이, 레지스트리를 수동으로 편집할 필요 없이 작동합니다. 내부적으로 WSL의 기본 이동 명령을 사용하여 파일, 설정, 기본 사용자 및 구성 정보를 그대로 보존합니다.

문제 해결

증상원인 / 해결
“The operation is not supported” when using --manage --move오래된 WSL 버전을 사용 중일 수 있습니다. wsl --update를 실행하거나 내보내기/가져오기로 되돌리세요.
Import defaults to root userTAR 가져오기에서는 예상된 동작입니다. 위 “Set the default user” 섹션을 참고해 /etc/wsl.conf를 편집하세요.
“Access is denied” during move배포판을 사용하는 WSL 프로세스가 없는지 확인하세요. wsl --shutdown을 실행한 뒤 다시 시도하세요.
Distro not showing after import가져오기 경로가 존재하고 쓰기 권한이 있는지 확인하세요. PowerShell을 Administrator 권한으로 실행하세요.
Running out of space during export목적지 드라이브에 직접 내보내세요 (예: C:에서 D:로 이동할 때 D:\Backups\ 로).

요약

작업명령
배포판 목록 보기wsl --list --verbose
배포판 중지wsl --terminate <distro>
이동 (간단)wsl --manage --move <distro> <new‑path>
내보내기 (TAR)wsl --export <distro> backup.tar
내보내기 (VHD)wsl --export <distro> backup.vhdx --format vhd
등록 취소wsl --unregister <distro>
가져오기 (TAR)wsl --import <distro> "D:\path" backup.tar
가져오기 (VHD)wsl --import <distro> "D:\path" backup.vhdx --vhd
제자리 가져오기wsl --import-in-place "D:\path\ext4.vhdx"
D:에 설치wsl --install Ubuntu --location "D:\WSL\Ubuntu"
기본 사용자 수정/etc/wsl.conf 편집 → [user] 섹션에 default=username 추가

배포판을 이동하는 것은 일회성(또는 가끔) 작업이지만, 혼잡한 C: 드라이브의 많은 공간을 확보할 수 있습니다.

0 조회
Back to Blog

관련 글

더 보기 »

WSL 배포판 이름 바꾸기

WSL 배포판 이름 바꾸기 – 완전 가이드 Microsoft Store에서 Ubuntu를 설치했으며, WSL이 이를 Ubuntu‑24.04로 명명했습니다. 또 다른 버전을 설치했더니 Ub...

WSL 배포판 복제

왜 WSL 배포판을 복제하나요? 여러분은 WSL 배포판을 설정하는 데 몇 시간을 투자했습니다—패키지를 설치하고, 셸을 구성하고, 개발 환경을 조정하는 등...

뜨거운 (Big) 철을 놓고 때려라

레거시 시스템 전환을 간단하고 빠르며 안전하게 만들기. 메인프레임 현대화 프로젝트는 지속적으로 상승하는 개발 비용과 점점 감소하는 …