InfraPlatform

WSL2에서 VHDX 디스크 마운트하는 방법

IT오이시이 2026. 1. 20. 00:58
728x90

WSL 사용법 – How To Start WSL

 

 

WSL2(Windows Subsystem for Linux) 환경에서 추가 디스크를 사용하고 싶을 때, VHDX 파일을 생성하여 마운트하면 독립적인 저장 공간을 확보할 수 있습니다. 이번 글에서는 20GB 크기의 VHDX 파일을 생성하고 WSL에 마운트하는 과정을  정리합니다.

 

⚙️ VHDX 디스크 마운트하는 방법

 

1. VHDX 파일 생성 (Windows에서)

  1. PowerShell에서 diskpart 실행
    • maximum=40960 → 40GB 크기 지정
    • type=expandable → 필요 시 자동 확장 가능
      (powershell)
      # 40GB 디스크를 생성합니다.
      diskpart
      create vdisk file="D:\VM_OS\WSL_Oracle95\wsl_data.vhdx" maximum=40480 type=expandable
      select vdisk file="D:\VM_OS\WSL_Oracle95\wsl_data.vhdx"
      attach vdisk
      create partition primary
      format fs=ntfs quick
      exit

 

 

  • diskpart 실행 하여 Windows에서 VHDX를 디스크로 attach 해야 합니다.👉 이렇게 하면 VHDX가 Windows에 물리 디스크처럼 인식됩니다.
  • diskpart
    select vdisk file="D:\VM_OS\WSL_Oracle95\wsl_data.vhdx"
    attach vdisk
    exit

 

  • diskmgmt.msc 실행 하여 디스크 번호 확인

        Windows에서 Win + R → diskmgmt.msc 입력 → 디스크 관리 실행

    • diskmgmt.msc 실행 → 새로 연결된 디스크 번호 확인  3 이라면
    • 예: PhysicalDrive3
    • 새로 연결된 디스크가 “온라인” 상태로 표시되는지 확인
    • 보통 “디스크 2”, “디스크 3” 같은 번호로 나타납니다.

 

      2. diskpart로 attach 된 디스크 직접 확인

diskpart 실행후 다음 명령으로 현재 attach된 VHDX 목록이 표시됩니다.

list vdisk

Copyright (C) Microsoft Corporation.
컴퓨터: DESKTOP-VPVS04M

DISKPART> list vdisk

  가상 디스크 ###  디스크 ###  상태                 형식       파일
  ---------------  ----------  -------------------  ---------  ----
  가상 디스크 0    디스크 ---  추가됨                  알 수 없음     D:\VM_OS\WSL_Oracle95\wsl_date.vhdx
  가상 디스크 1    디스크 3    연결되고 열리지 않음          확장 가능      D:\VM_OS\WSL_Oracle95\wsl_data.vhdx
  
  
  # 상태: 추가됨 (Attached)
  # 상태: 연결되고 열리지 않음 (Attached but not Opened)

 

 

2. WSL 의 드라이버를 연결 합니다.

WSL에서 wsl --mount \\.\PhysicalDrive3 --bare로 연결한 뒤, 내부에서 포맷해야 합니다.

wsl --mount \\.\PhysicalDrive3 --bare

 

PS D:\VM_OS\WSL_Oracle95> wsl --mount \\.\PhysicalDrive3 --bare
디스크 '\\.\PhysicalDrive3'이(가) 이미 연결되어 있습니다.
오류 코드: Wsl/Service/AttachDisk/MountDisk/WSL_E_DISK_ALREADY_ATTACHED

 

3. Linux 파일시스템으로 포맷

lsblk   # 디스크 이름 확인
sudo mkfs.ext4 /dev/sdx   # ext4로 포멧



[root@DESKTOP-VPVS04M WSL_Oracle95]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 388.6M  1 disk
sdb      8:16   0   186M  1 disk
sdc      8:32   0     2G  0 disk [SWAP]
sdd      8:48   0    40G  0 disk
└─sdd1   8:49   0    40G  0 part
sde      8:64   0     1T  0 disk /mnt/wslg/distro

# 방금 attach한 VHDX가 sdd1 (40GB 디스크)로 인식



[root@DESKTOP-VPVS04M WSL_Oracle95]# sudo mkfs.ext4 /dev/sdd1
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done
Creating filesystem with 10485248 4k blocks and 2621440 inodes
Filesystem UUID: c47a45cd-6505-47e7-b0b6-46c91763a267
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624

Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information:




[root@DESKTOP-VPVS04M WSL_Oracle95]# mount -t ext4 /dev/sdd1 /mnt/wsl_data

(sdx는 실제 디스크 이름으로 교체)

 

4. WSL에 마운트

Windows PowerShell에서:

powershell
sudo mkdir -p /mnt/wsl_data

sudo mount /dev/sdd1 /mnt/wsl_data

 

 

5. 파티션 마운트 확인
bash
df -h


[root@DESKTOP-VPVS04M WSL_Oracle95]# df -h
Filesystem      Size  Used Avail Use% Mounted on
none            3.4G     0  3.4G   0% /usr/lib/modules/6.6.87.2-microsoft-standard-WSL2
none            3.4G  4.0K  3.4G   1% /mnt/wsl
drivers         232G  192G   41G  83% /usr/lib/wsl/drivers
/dev/sde       1007G  369M  956G   1% /
none            3.4G   76K  3.4G   1% /mnt/wslg
none            3.4G     0  3.4G   0% /usr/lib/wsl/lib
rootfs          3.4G  2.7M  3.4G   1% /init
none            3.4G     0  3.4G   0% /dev
none            3.4G     0  3.4G   0% /run
none            3.4G     0  3.4G   0% /run/lock
none            3.4G     0  3.4G   0% /run/shm
none            3.4G     0  3.4G   0% /run/user
none            3.4G   92K  3.4G   1% /mnt/wslg/versions.txt
none            3.4G   92K  3.4G   1% /mnt/wslg/doc
C:\             232G  192G   41G  83% /mnt/c
/dev/sdd1        40G   24K   38G   1% /mnt/wsl_data

→ /mnt/vhdx에 40GB 디스크가 표시되면 성공적으로 마운트된 것입니다.

 

6. 파티션 마운트 확인

  /etc/fstab에 아래와 같이 마운트 설정을 추가합니다.

 

vi /etc/fstab

/dev/sdd1   /mnt/wsl_data   ext4   defaults   0   0

 

blkid 를 이용하여  disk의 UUID로 마운트 옵션을 추가 할 수 있습니다.

 sudo blkid /dev/sdd1
/dev/sdd1: UUID="c47a45cd-6505-47e7-b0b6-46c91763a267" TYPE="ext4" PARTUUID="2b6c399b-01"

 

# /etc/fstab
UUID="c47a45cd-6505-47e7-b0b6-46c91763a267"   /mnt/wsl_data   ext4   defaults   0   0

 

7. 파티션 마운트

 
sudo mount -a

 

 

.


 

systemd 기반 자동 마운트 설정도 가능

 

1) .wslconfig에서 systemd 활성화
2) /etc/systemd/system/mnt-wsl_data.mount 작성
3) systemctl enable/start로 자동 마운트 설정
* sudo blkid /dev/sdd1 를 이용하여   UUID 를 확인하고 UUID 기반   설정 권장

 

1️⃣ systemd 활성화 확인

WSL 설정 파일에서 systemd가 켜져 있어야 합니다. Windows에서:

powershell
notepad %USERPROFILE%\.wslconfig

내용에 다음을 추가:

코드
[boot]
systemd=true

→ 저장 후 WSL 재시작 (wsl --shutdown → 다시 실행)

 

2️⃣ 마운트 유닛 파일 생성

WSL 내부에서 다음 경로에 유닛 파일을 만듭니다:

bash
sudo nano /etc/systemd/system/mnt-wsl_data.mount

내용 예시:

코드
[Unit]
Description=Mount WSL Data Disk
DefaultDependencies=no
After=local-fs.target

[Mount]
What=/dev/sdd1
Where=/mnt/wsl_data
Type=ext4
Options=defaults

[Install]
WantedBy=multi-user.target

 

 * What=UUID=abcd-1234-efgh-5678    와 같이 수정 할 수 있습니다.

 

3️⃣ 유닛 활성화

bash
sudo systemctl daemon-reload
sudo systemctl enable mnt-wsl_data.mount
sudo systemctl start mnt-wsl_data.mount

 

4️⃣ 확인

df -h
728x90
반응형