Recent Posts
Recent Comments
Link
10-23 13:45
Today
Total
관리 메뉴

삶 가운데 남긴 기록 AACII.TISTORY.COM

WSL 2 파일 시스템 본문

DEV&OPS/Linux & Cloud

WSL 2 파일 시스템

ALEPH.GEM 2025. 3. 13. 22:40

 

WSL은 두 운영체제를 분리하여 네트워크로만 접근할 수 있게 하지 않고 직접 파일을 주고 받을 수 있습니다.

윈도우에서 리눅스 파일 시스템을 실행할 수 있게 WSL은 리눅스 파일 시스템에서 수행되는 모든 작업을 NT 커널 작업으로 변환합니다.

 

 

가상 하드웨어 디스크(VHD)

WSL 2는 모든 리눅스 파일을 ext4 파일 시스템을 사용하는 가상 하드웨어 디스크(VHD)에 저장합니다.

VHD 파일은 처음 만들어질 때 최대 256GB 까지 늘어날 수 있도록 만들어지고 사용량에 따라 최대 제한에 도달할 때까지 자동으로 크기가 조절됩니다.

한계에 도달하면 디스크 공간 부족 오류가 발생합니다.

디스크 공간 부족을 해결하려면 다음 단계를 진행하여 VHD 크기를 확장합니다.

 

1. 실행중인 wsl의 인스턴스들을 종료

wsl --shutdown

 

2. 파워셸으로 리눅스(ubuntu) 배포판의 설치 패키지 이름 PackageFamilyName과 ext4.vhdx 파일의 전체 경로를 찾습니다.

$pkgFamilyName = (Get-AppxPackage -Name "*ubuntu*").PackageFamilyName
$Path = "$env:LOCALAPPDATA\Packages\$pkgFamilyName\LocalState\*.vhdx"
$vhd = Get-ChildItem $Path
Resize-VHD -Path $VHD.FullName -SizeBytes 500GB

 

Resize-VHD 명령어를 이용하여 VHD 파일 크기를 원하는 크기(500GB)으로 확장해줍니다.

 

3. WSL2 리눅스 배포판을 다시 시작합니다.

4. 리눅스 내부에 변경된 사항을 적용해야 합니다.  

다음 명령어로 파일 시스템이 탑재되었는지 확인

sudo mount -t devtmpfs none /dev

ext4 유형의 파일 시스템을 필터링해서 사용중인 루트 파일 시스템을 찾아야 합니다.

mount | grep ext4

 

5. /dev/sdb 처럼 해당 마운트되는 디바이스(dev) 항목의 이름을 복사하고 다음 명령어를 실행합니다.

sudo resize2fs /dev/sdb

예를들어 sda, sdb, sdc 처럼 sd 다음 문자가 달라집니다.

resize2fs는 리눅스 배포판에 없다면 별도로 설치해야 합니다.

 

 

volfs

volfs는 모든 리눅스 시스템 파일과 홈 디렉터리를 저장하는 데 사용되는 WSL의 기본 파일 시스템입니다.

모든 파일은 윈도우 파일 시스템 안에 있고 이 파일 시스템의 목적은 윈도우와 상호운용성이 아니라 /home 이나 /root같은 리눅스 환경을 제공하는 것입니다.

그래서 윈도우에서 새 파일이 추가되더라도 volfs에서 무시되고 사용할 수 없습니다.

이 파일 시스템은 윈도우에서 리눅스의 파일에 접근하기 불편한 단점이 있습니다.

 

 

drvfs

이 파일 시스템은 리눅스 배포판에 자동으로 마운트 되어 윈도우의 파일과 리눅스의 파일 사이의 상호 운용 가능하게 해줍니다.

윈도우에서 사용하는 C드라이브가 리눅스에 /mnt/c 로 마운트 되어 사용할 수 있게 합니다.

drvfs 파일 시스템 안의 파일을 윈도우에서 열면 파일의 퍼미션이 접근 제어 목록을 통해 적용됩니다.

WSL 환경에서 root 권한으로도 NTFS 파일 시스템의 특정 파일(예: /mnt/c/Windows)에 접근하지 못하는 경우가 있습니다.

 

 

tmpfs

tmpfs는 메모리와 디스크 기반 스왑 공간을 조합하여 파일 시스템을 만들어 데이터를 읽고 쓰는 속도가 매우 빠릅니다.

tmpfs를 마운트 해제하면 그 안의 모든 데이터가 손실됩니다.

 

 

procfs, sysfs

procfs, sysfs는 장치 구성 같은 시스템 정보가 있는 특수한 파일 시스템입니다.

profs는 /proc 디렉터리에서 찾을 수 있는 시스템 관련 정보들을 제공합니다.

/sys는 sysfs 인데 전원 설정이나 이더넷 물리 주소 같은 정보를 얻는데 사용할 수 있습니다.

 

 

리눅스 배포판 내에서 윈도우 파일 접근하기

drvfs 파일 시스템을 이용해서 언급했듯 NTFS의 C:\ 드라이브는 WSL에서 /mnt/c/ 으로 마운트 됩니다.

이를 이용해서 WSL에서 윈도우 파일들을 접근할 수 있어서 리눅스 명령어나 앱으로 윈도우의 파일을 사용할 수 있습니다.

 

 

 

윈도우에서 리눅스 배포판 내의 파일 접근하기

윈도우에서 WSL의 리눅스의 파일에 접근하려면 윈도우 탐색기의 경로 입력창에 UNC 경로인   \\wsl$\   을 입력하면 모든 리눅스 배포판 내에 포함된 파일을 볼 수 있습니다. 

 

 

 

 

 

 

 

 

 

 

728x90