[WSL2] 윈도우 11에서 USB 메모리(ext3/ext4 리눅스 포맷) 마운트 완벽 해결 가이드 (wsl --mount 실패 시)

제공해주신 실제 디버깅 과정과 명령어 기록을 기반으로, 동일한 문제를 겪는 개발자들을 위한 기술 블로그용 글을 작성했습니다.경험하셨던 에러(공유 설정 누락, WSL 버전 미업데이트, 배포판 미실행 등)와 이를 해결해 나간 흐름을 실전 트러블슈팅 가이드 형태로 정리하여 정보 가치를 높였습니다.


[KO] 한글 버전 블로그 포스팅

제목: [WSL2] 윈도우 11에서 USB 메모리(ext3/ext4 리눅스 포맷) 마운트 완벽 해결 가이드 (wsl --mount 실패 시)

Windows 11 환경에서 개발을 하다 보면, 리눅스 포맷(ext3, ext4 등)으로 작성된 USB 플래시 메모리나 외장 하드를 WSL 2에 연결해야 할 때가 있습니다.기본 명령어인 wsl --mount를 사용하면 일반 USB 스틱 드라이브의 경우 "시스템이 지정된 드라이브를 찾을 수 없습니다"라는 고질적인 버그성 에러를 마주하게 됩니다.이 글에서는 마이크로소프트 공식 우회책인 usbipd 도구를 사용하여 발생할 수 있는 모든 에러를 하나씩 격파하고, 끝내 마운트에 성공하여 파일을 복사하기까지의 전 과정을 정리해 둡니다.


1단계: USB 장치 목록 및 BUS ID 확인

먼저 Windows PowerShell을 관리자 권한으로 실행하고 컴퓨터에 연결된 USB 목록을 확인합니다.

usbipd list

출력 예시:

Connected:
BUSID  VID:PID    DEVICE                                   STATE
3-3    0781:5581  USB 대용량 저장 장치                       Not shared

연결하고자 하는 USB 드라이브의 BUSID(예: 3-3)를 눈으로 확인합니다.


2단계: 삽질의 시작과 에러 격파 (트러블슈팅)

에러 ①: "Device is not shared"

무작정 usbipd attach를 실행하면 권한 및 공유 보안 문제로 에러가 발생합니다.

PS C:\> usbipd attach --wsl --busid 3-3
usbipd: error: Device is not shared; run 'usbipd bind --busid 3-3' as administrator first.

해결법: 에러 메시지의 안내대로 먼저 공유 설정(bind)을 해줍니다.

usbipd bind --busid 3-3

에러 ②: "Loading vhci_hcd failed"

다시 attach를 시도했을 때 가상 호스트 컨트롤러 드라이버(vhci_hcd) 로드 실패 메시지가 뜰 수 있습니다. 이는 시스템의 WSL 파일이 구버전일 때 발생합니다.

usbipd: error: Loading vhci_hcd failed; update with 'wsl --update'.

해결법: WSL 커널 환경을 최신 상태로 강제 업데이트해 줍니다.

wsl --update

에러 ③: "There is no WSL 2 distribution running"

WSL 환경이 작동 중이지 않은 상태에서 강제로 포트를 넘기려고 하면 가상 머신을 찾지 못합니다.

usbipd: error: There is no WSL 2 distribution running; keep a command prompt to a WSL 2 distribution open to leave it running.
  • 해결법: 백그라운드나 다른 창에 Ubuntu(또는 본인이 쓰는 WSL 배포판) 터미널을 반드시 켜놓은 상태에서 작업을 진행해야 합니다.

3단계: USB 장치 WSL로 정상 연결(Attach) 완료

배포판 터미널을 띄워둔 상태에서 다시 연결 명령을 내리면, 드디어 네트워크 모드가 가상화되면서 WSL 내부로 포트가 안정적으로 바인딩됩니다.

PS C:\> usbipd attach --wsl --busid 3-3
usbipd: info: Using WSL distribution 'Ubuntu' to attach...
usbipd: info: Detected networking mode 'virtioproxy'.
usbipd: info: Using IP address 127.0.0.1 to reach the host.

4단계: WSL 리눅스 내부에서 마운트 및 파일 복사

이제 포트가 리눅스로 넘어왔으니, WSL(Ubuntu) 터미널로 이동하여 리눅스 명령어로 마운트를 마무리합니다. (권한을 위해 su - 또는 sudo를 활용합니다.)

# 1. 리눅스에 로드된 가상 디스크 장치명 확인
root@DESKTOP:~# lsblk

출력 예시:

sde      8:64   1  28.7G  0 disk
└─sde1   8:65   1  28.7G  0 part  <-- 내 30GB짜리 USB 파티션 확인 완료!
# 2. 마운트할 폴더 생성
root@DESKTOP:~# mkdir /usb

# 3. 디스크 장치를 폴더에 마운트
root@DESKTOP:~# mount /dev/sde1 /usb

# 4. 마운트 상태 최종 확인
root@DESKTOP:~# df -h
  • /dev/sde1 파티션이 /usb 경로에 정상적으로 용량 인식이 된 것을 볼 수 있습니다.
# 5. 데이터 확인 및 윈도우 드라이브(D 드라이브)로 파일 복사
root@DESKTOP:~# cd /usb
root@DESKTOP:/usb# ls
CentOS-7-x86_64-DVD-1708.iso  Rocky-8.10-x86_64-dvd1.iso

root@DESKTOP:/usb# cp *.iso /mnt/d

요약 및 결론

Windows 11 환경에서 wsl --mount가 막힐 때는 주저하지 말고 usbipd-win을 사용하세요.

  1. usbipd bind로 포트 공유 승인
  2. wsl --update로 가상 드라이버 환경 최신화
  3. WSL 배포판 터미널을 먼저 실행해두고 usbipd attach
  4. WSL 내부에서 lsblk 확인 후 mount

순서만 기억하시면 리눅스 포맷 디스크 안의 대용량 ISO 파일도 윈도우 환경으로 가볍게 복사해 올 수 있습니다!