WSL 2에 Linux 디스크 탑재
Windows에서 지원하지 않는 Linux 디스크 형식에 액세스하려는 경우 WSL 2를 사용하여 디스크를 탑재하고 해당 콘텐츠에 액세스할 수 있습니다. 이 자습서에서는 WSL2에 연결할 디스크 및 파티션을 식별하는 단계, 이를 탑재하는 방법 및 액세스하는 방법을 다룹니다.
외부 드라이브를 연결 중이고 이러한 탑재 지침에 성공하지 못한 경우 USB 디바이스 연결하기 지침을 시도해 볼 수 있습니다. wsl --mount
명령은 현재 USB/플래시 드라이브/SD 카드 판독기를 지원하지 않습니다(이 문제에 대해 자세히 알아보기).
참고
디스크를 WSL 2에 연결하려면 관리자 액세스 권한이 필요합니다.
WSL 2 mount
명령은 현재 사용 중인 디스크(또는 디스크에 속한 파티션) 탑재를 지원하지 않습니다. wsl --mount
는 파티션만 요청하더라도 항상 전체 디스크를 연결합니다. Windows 설치 디스크를 탑재할 수 없습니다.
Windows 11 빌드 22000 이상이거나 Microsoft Store 버전의 WSL을 실행해야 합니다. WSL 및 Windows 버전을 확인하려면 wsl.exe --version
명령을 사용합니다.
Windows용으로 형식이 지정된 외부 드라이브는 일반적으로 NTFS 파일 시스템 형식을 사용합니다. Linux용으로 형식이 지정된 외부 드라이브는 일반적으로 Ext4 파일 시스템 형식을 사용합니다.
Windows 파일 시스템에 NTFS 형식의 드라이브를 탑재한 경우 탑재된 디렉터리('d'를 사용하려는 드라이브 문자로 바꾸기)sudo mkdir /mnt/d
를 만든 다음 명령으로 파일 시스템 interop 플러그 인을 사용하여 WSL을 사용하여 drvfs
Linux 배포에서 해당 드라이브에 액세스할 수 있습니다.
sudo mount -t drvfs D: /mnt/d
Ext4 포맷 드라이브가 있는 경우 Windows 파일 시스템에 탑재할 수 없습니다. WSL을 사용하여 Linux 배포판에 Ext4 형식의 드라이브를 탑재하려면 아래 지침에 따라 wsl --mount
명령을 사용할 수 있습니다.
파티션이 없는 디스크가 있는 경우 wsl --mount
명령을 사용하여 직접 탑재할 수 있습니다. 먼저 디스크를 식별해야 합니다.
디스크 식별 - Windows에서 사용 가능한 디스크를 나열하려면 다음을 실행합니다.
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
디스크 경로는 'DeviceID' 열에서 사용할 수 있습니다. 일반적으로
\\.\PHYSICALDRIVE*
형식입니다.디스크 탑재 - PowerShell을 사용하여 위에서 찾은 디스크 경로를 사용하여 디스크를 탑재하고 다음을 실행할 수 있습니다.
wsl --mount <DiskPath>
어떤 파일 형식인지 또는 어떤 파티션이 있는지 확실하지 않은 디스크가 있는 경우 아래 단계에 따라 디스크를 탑재할 수 있습니다.
디스크 식별 - Windows에서 사용 가능한 디스크를 나열하려면 다음을 실행합니다.
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
디스크 경로는 일반적으로
\\.\PHYSICALDRIVE*
형식으로 'DeviceID' 다음에 나열됩니다.WSL 2에 탑재할 파티션 나열 및 선택 - 디스크가 식별되면 다음을 실행합니다.
wsl --mount <DiskPath> --bare
이렇게 하면 WSL 2에서 디스크를 사용할 수 있습니다. (이 예의 경우
<DiskPath>
는\\.\PHYSICALDRIVE*
입니다.연결되면 WSL 2 내에서 다음 명령을 실행하여 파티션을 나열할 수 있습니다.
lsblk
그러면 사용 가능한 블록 디바이스와 해당 파티션이 표시됩니다.
Linux 내부에서 블록 디바이스는 /dev/<Device><Partition>
으로 식별됩니다. 예를 들어, /dev/sdb3은 디스크 sdb
의 파티션 번호 3입니다.
예제 출력:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 1G 0 disk
├─sdb2 8:18 0 50M 0 part
├─sdb3 8:19 0 873M 0 part
└─sdb1 8:17 0 100M 0 part
sdc 8:32 0 256G 0 disk /
sda 8:0 0 256G 0 disk
디스크 또는 파티션의 파일 시스템 형식을 모르는 경우 다음 명령을 사용할 수 있습니다.
blkid <BlockDevice>
이렇게 하면 검색된 파일 시스템 형식(TYPE="<Filesystem>"
형식 아래)이 출력됩니다.
탑재할 파티션을 식별했으면 각 파티션에서 다음 명령을 실행합니다.
wsl --mount <DiskPath> --partition <PartitionNumber> --type <Filesystem>
참고
전체 디스크를 단일 볼륨으로 탑재하려는 경우(즉, 디스크가 분할되지 않은 경우) --partition
을 생략할 수 있습니다.
생략하면 기본 파일 시스템 형식은 "ext4"입니다.
탑재되면 구성 값 automount.root
가 가리키는 경로에서 디스크에 액세스할 수 있습니다. 기본값은 /mnt/wsl
입니다.
Windows에서 \\wsl$\<Distro>\<Mountpoint>
(Linux 배포판 선택)로 이동하여 파일 탐색기에서 디스크에 액세스할 수 있습니다.
WSL 2에서 디스크 탑재를 해제하고 분리하려면 다음을 실행합니다.
wsl --unmount <DiskPath>
참고
Microsoft Store의 WSL에는 VHD를 직접 탑재하는 다음과 같은 새 인수가 도입되었습니다. wsl --mount --vhd <pathToVHD>
wsl --mount
를 사용하여 VHD(가상 하드 디스크 파일)를 WSL에 탑재할 수도 있습니다. 이렇게 하려면 먼저 Windows에서 Mount-VHD
명령을 사용하여 VHD를 Windows에 탑재해야 합니다. 관리자 권한으로 이 명령을 실행해야 합니다. 다음은 이 명령을 사용하고 디스크 경로를 출력하는 예입니다. <pathToVHD>
를 실제 VHD 경로로 바꿔야 합니다.
Write-Output "\\.\PhysicalDrive$((Mount-VHD -Path <pathToVHD> -PassThru | Get-Disk).Number)"
위의 출력을 사용하여 이 VHD의 디스크 경로를 가져오고 이전 섹션의 지침에 따라 WSL에 탑재할 수 있습니다.
또한 이 기술을 사용하여 다른 WSL 배포판의 가상 하드 디스크를 탑재하고 상호 작용할 수 있습니다. 각 WSL 2 배포판은 ext4.vhdx
라는 가상 하드 디스크 파일을 통해 저장되기 때문입니다. 기본적으로 WSL 2 배포판용 VHD는 다음 경로에 저장됩니다. C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName]
. 이러한 시스템 파일에 액세스할 때 주의하세요. 이는 고급 사용자 워크플로입니다. 디스크가 사용 중이 아닌지 확인하려면 이 디스크와 상호 작용하기 전에 wsl --shutdown
을 실행해야 합니다.
기본적으로 WSL 2는 디바이스를 ext4로 탑재하려고 시도합니다. 다른 파일 시스템을 지정하려면 다음을 실행합니다.
wsl --mount <DiskPath> -t <FileSystem>
예를 들어, 디스크를 fat으로 탑재하려면 다음을 실행합니다.
wsl --mount <Diskpath> -t vfat
참고
WSL2에서 사용 가능한 파일 시스템을 나열하려면 다음을 실행합니다. cat /proc/filesystems
디스크가 WSL2(Linux 파일 시스템)를 통해 탑재되면 더 이상 Windows 파일 시스템에서 ext4 드라이버를 통해 탑재할 수 없습니다.
기본적으로 WSL 2는 전체 디스크를 탑재하려고 시도합니다. 특정 파티션을 탑재하려면 다음을 실행합니다.
wsl --mount <Diskpath> -p <PartitionIndex>
디스크가 MBR(마스터 부트 레코드) 또는 GPT(GUID 파티션 테이블)인 경우에만 작동합니다. 파티션 스타일 - MBR 및 GPT에 대해 참조하세요.
탑재 옵션을 지정하려면 다음을 실행합니다.
wsl --mount <DiskPath> -o <MountOptions>
예제:
wsl --mount <DiskPath> -o "data=ordered"
참고
현재 파일 시스템 관련 옵션만 지원됩니다. ro, rw, noatime, ...
과 같은 일반 옵션은 지원되지 않습니다.
위의 옵션에서 디스크 구성표를 지원하지 않는 경우 다음을 실행하여 디스크를 탑재하지 않고 WSL 2에 디스크를 연결할 수 있습니다.
wsl --mount <DiskPath> --bare
이렇게 하면 WSL 2 내부에서 블록 디바이스를 사용할 수 있으므로 여기에서 수동으로 탑재할 수 있습니다. lsblk
를 사용하여 WSL 2 내에서 사용 가능한 블록 디바이스를 나열합니다.
참고
이 옵션은 Microsoft Store의 WSL에서만 사용할 수 있습니다.
기본적으로 탑재 지점 이름은 실제 디스크 또는 VHD 이름을 기반으로 생성됩니다. 를 사용하여 재정의 --name
할 수 있습니다. 예시:
wsl --mount <DiskPath> --name myDisk
WSL 2에서 디스크를 분리하려면 다음을 실행합니다.
wsl --unmount [DiskPath]
Diskpath
를 생략하면 연결된 모든 디스크가 분리되고 분리됩니다.
참고
하나의 디스크가 분리되지 않으면 wsl --shutdown
을 실행하여 WSL 2를 강제로 종료할 수 있습니다. 그러면 디스크가 분리됩니다.
현재로서는 전체 디스크만 WSL 2에 연결할 수 있습니다. 즉, 파티션만 연결할 수는 없습니다. 구체적으로 이는 부팅 디바이스가 Windows에서 분리될 수 없기 때문에
wsl --mount
를 사용하여 부팅 디바이스의 파티션을 읽을 수 없음을 의미합니다.커널에서 기본적으로 지원되는 파일 시스템만
wsl --mount
에 의해 탑재될 수 있습니다. 이는wsl --mount
를 호출하여 설치된 파일 시스템 드라이버(예: ntfs-3g)를 사용할 수 없음을 의미합니다.커널에서 직접 지원하지 않는 파일 시스템은
--bare
연결을 통해 탑재한 다음 관련 FUSE 드라이버를 호출할 수 있습니다.
Windows Subsystem for Linux 피드백
Windows Subsystem for Linux은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.