학습
모듈
Maintain disks and volumes - Training
This module explores file system fragmentation and the tools that you can use to reduce fragmentation. Students will learn how Windows can compress files to take up less space on the hard disk.
이 가이드에서는 다음을 포함하여 WSL 2를 사용하여 설치된 Linux 배포판에서 사용하는 디스크 공간을 관리하는 방법에 대해서 설명합니다.
WSL 2(Linux용 Windows 하위 시스템)는 가상화 플랫폼을 사용하여 호스트 Windows 운영 체제와 함께 Linux 배포판을 설치하고, 설치하는 각 Linux 배포판의 파일을 저장하는 VHD(가상 하드 디스크)를 만듭니다. 이러한 VHD는 ext4 파일 시스템 형식을 사용하며 Windows 하드 드라이브에 ext4.vhdx 파일로 표시됩니다.
WSL 2는 스토리지 요구 사항에 맞게 VHD 파일의 크기를 자동으로 조정합니다. WSL 2에서 사용하는 각 VHD 파일에는 최대 디스크 공간이 기본 1TB로 할당됩니다(WSL 릴리스 0.58.0 이전에는 기본값이 최대 512GB, 그 이전에는 최대 256GB로 설정됨).
Linux 파일에 필요한 스토리지 공간이 최대 크기를 초과하면 디스크 공간이 부족하다는 오류가 표시됩니다. 이 오류를 해결하려면 WSL 2 가상 하드 디스크의 크기를 확장하는 방법에 대한 아래의 지침을 따르십시오.
Linux Df
명령을 사용하여 WSL 2와 함께 설치된 Linux 배포판에 대해 VHD에서 사용할 수 있는 디스크 공간의 양을 확인합니다.
사용 가능한 디스크 공간을 확인하려면 PowerShell 명령줄을 열고 이 명령을 입력합니다(<distribution-name>
을 실제 배포 이름으로 변경).
wsl.exe --system -d <distribution-name> df -h /mnt/wslg/distro
이 명령이 작동하지 않는 경우 wsl --update
명령을 사용하여 WSL의 Microsoft Store 버전으로 업그레이드하거나 wsl df -h /
를 시도하세요.
출력에는 다음 사항이 포함됩니다.
VHD에 할당된 사용 가능한 디스크 공간 양에 가까워지거나 디스크 공간이 남아 있지 않아 이미 오류가 발생한 경우, Linux 배포와 연결된 VHD에 할당된 최대 디스크 공간 크기를 확장하는 방법에 대한 단계는 다음 섹션을 참조하십시오. WSL에서 VHD에 할당된 디스크 공간의 양은 실제 Windows 디바이스의 디스크 공간 크기가 그보다 작더라도 항상 기본 최대 크기(WSL의 최신 버전에서는 1TB)를 표시합니다. WSL은 사용할 때 크기가 확장되는 VHD를 탑재하므로 Linux 배포판에서는 할당된 최대 크기인 1TB로 증가할 수 있습니다.
Linux 배포판에 대한 VHD 크기를 기본 1TB의 최대 할당 디스크 공간보다 확장하려면 아래 단계를 수행합니다. (아직 업데이트되지 않은 이전 WSL 릴리스의 경우, 최대 기본값은 512GB 또는 256GB로 설정될 수 있습니다.)
wsl.exe --shutdown
명령을 사용하여 모든 WSL 인스턴스를 종료합니다.
디렉터리 경로를 컴퓨터에 설치된 Linux 배포판과 연관된 ext4.vhdx 파일로 복사합니다. 도움말은 Linux 배포판에 대한 vhdx 파일 및 디스크 경로를 찾는 방법을 참조하십시오.
관리자 권한으로 Windows 명령 프롬프트를 열고 다음을 입력하여 diskpart 명령 인터프리터를 엽니다.
diskpart
이제 DISKPART>
프롬프트가 표시됩니다. 다음 명령을 입력하고 <pathToVHD>
을 Linux 배포판과 연관된 ext4.vhdx
파일의 디렉터리 경로(2단계에서 복사된 경로)로 변경합니다.
Select vdisk file="<pathToVHD>"
VHD가 할당된 현재 최대 크기를 나타내는 가상 크기를 포함하여 가상 디스크와 연관되는 세부 정보를 표시합니다.
detail vdisk
가상 크기를 메가바이트로 변환해야 합니다. 예를 들어 가상 크기: 512GB인 경우 512000MB와 같습니다. 입력한 새 값은 이 원래 값보다 커야 합니다. 가상 크기를 512GB에서 1024GB로 두 배로 늘리려면 1024000으로 값을 MB로 입력합니다. 가상 디스크 크기를 줄이는 프로세스가 훨씬 더 복잡하기 때문에 실제로 원하는 것보다 높은 값을 입력하지 않도록 주의하십시오.
Windows 명령 프롬프트 DISKPART>
프롬프트를 사용하여 이 Linux 배포판에 할당하려는 새 최대 크기 값을 입력하십시오.
expand vdisk maximum=<sizeInMegaBytes>
DISKPART>
프롬프트를 종료합니다.
exit
이 Linux 배포판을 시작합니다. (WSL 2에서 실행 중인지 확인합니다. wsl.exe -l -v
명령을 사용하여 확인할 수 있습니다. WSL 1은 지원되지 않습니다.)
WSL 배포 명령줄에서 다음 명령을 실행하여 WSL에서 파일 시스템의 크기를 확장할 수 있음을 알려줍니다. 첫 번째 mount 명령에 대한 응답으로 "/dev: none already mounted on /dev"와 같은 메시지가 표시될 수 있습니다. 이 메시지는 무시해도 됩니다.
sudo mount -t devtmpfs none /dev
mount | grep ext4
이 항목의 이름(예: /dev/sdX
)을 복사합니다(여기서 X는 다른 문자를 나타냄). 다음 예에서 X의 값은 b입니다.
sudo resize2fs /dev/sdb <sizeInMegabytes>M
위의 예를 사용하여 VHD 크기를 2048000으로 변경했기 때문에 명령은 sudo resize2fs /dev/sdb 2048000M
입니다.
참고
resize2fs를 설치해야 할 수도 있습니다. 이 경우 sudo apt install resize2fs
명령을 사용하여 설치할 수 있습니다.
출력은 다음과 비슷합니다.
resize2fs 1.44.1 (24-Mar-2021)
Filesystem at /dev/sdb is mounted on /; on-line resizing required
old_desc_blocks = 32, new_desc_blocks = 38
The filesystem on /dev/sdb is now 78643200 (4k) blocks long.
Linux 배포판에 대한 가상 드라이브(ext4.vhdx)가 새 크기로 확장되었습니다.
중요
Windows 도구 또는 편집기를 사용하여 AppData
폴더 내에 있는 WSL 관련 파일을 수정, 이동하거나 액세스하지 않는 것이 좋습니다. 이렇게 하면 Linux 배포가 손상될 수 있습니다. Windows에서 \\wsl$\<distribution-name>\
경로를 통해 Linux 파일에 액세스할 수 있습니다. WSL 배포를 열고 explorer.exe .
를 입력하여 해당 폴더를 확인합니다. 자세히 알아보려면 블로그 게시물 Windows에서 Linux 파일 액세스를 참조하세요.
"배포 디스크 탑재"와 관련된 오류가 발생하는 경우, 이는 갑작스런 종료 또는 정전으로 인해 발생할 수 있으며 데이터 손실을 방지하기 위해 Linux 배포 VHD가 읽기 전용으로 전환될 수 있습니다. 아래 단계에 따라 e2fsck
Linux 명령을 사용하여 배포를 복구하고 복원할 수 있습니다.
WSL 2에서 Linux 배포를 설치하면 배포판이 자체 파일 시스템으로 VHD(가상 하드 디스크)로 탑재됩니다. Linux에서 이러한 하드 드라이브를 "차단 디바이스"라고 하며, lsblk
명령을 사용하여 해당 드라이브에 대한 정보를 볼 수 있습니다.
현재 WSL 2에서 사용 중인 차단 디바이스의 이름을 찾으려면 배포를 열고 lsblk
명령을 입력합니다. (또는 PowerShell을 열고 wsl.exe lsblk
명령을 입력합니다.) 출력은 다음과 같이 표시됩니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 363.1M 1 disk
sdb 8:16 0 8G 0 disk [SWAP]
sdc 8:32 0 1.5T 0 disk
sdd 8:48 0 1T 0 disk /mnt/wslg/distro
차단 디바이스에 대한 정보는 다음과 같습니다.
sda
은(는) 항상 시스템 배포입니다.Linux 배포를 열 때 WSL에 "탑재 오류"가 발생하면 배포가 대체(fallback)로 읽기 전용으로 설정될 수 있습니다. 이 경우 시작 중에 배포에 다음 오류가 표시될 수 있습니다.
An error occurred mounting the distribution disk, it was mounted read-only as a fallback.
배포가 읽기 전용으로 시작되면 파일 시스템에 쓰려고 하는 모든 시도가 실패하고 다음과 같은 오류가 발생합니다.
$ touch file
touch: cannot touch 'file': Read-only file system
WSL에서 디스크 탑재 오류를 복구하고 사용 가능/쓰기 가능한 상태로 다시 복원하려면 wsl.exe --mount
명령을 사용하여 다음 단계를 수행하여 디스크를 다시 탑재할 수 있습니다.
PowerShell을 열고 명령을 입력하여 모든 WSL 배포를 종료합니다.
wsl.exe --shutdown
관리자 권한(관리자 권한 명령 프롬프트)으로 PowerShell을 열고 탑재 명령을 입력하여 <path-to-ext4.vhdx>
을(를) 배포판의 .vhdx 파일 경로로 바꿉니다. 이 파일을 찾는 방법에 대한 도움말은 Linux 배포에 대한 VHD 파일 및 디스크 경로를 찾는 방법을 참조하십시오.
wsl.exe --mount <path-to-ext4.vhdx> --vhd --bare
PowerShell의 wsl.exe lsblk
명령을 사용하여 배포에 대한 블록 디바이스 이름(sd[a-z])을 식별한 다음, 다음 명령을 입력하여 디스크를 복구합니다(<device>
을(를) "sdc"와 같은 올바른 블록 디바이스 이름으로 대체). e2fsck
명령은 ext4 파일 시스템(WSL과 함께 설치된 배포에서 사용하는 형식)에서 오류를 확인하고 그에 따라 복구합니다.
wsl.exe sudo e2fsck -f /dev/<device>
참고
단일 Linux 배포판만 설치한 경우 "사용 중인 ext 파일" 오류가 발생할 수 있으며 실행wsl.exe lsblk
하려면 추가 배포를 설치해야 합니다. 복구가 완료되면 배포를 제거할 수 있습니다.
복구가 완료되면 다음을 입력하여 PowerShell에서 디스크를 분리합니다.
wsl.exe --unmount
경고
sudo mount -o remount,rw /
명령을 사용하여 읽기 전용 배포를 사용 가능/쓰기 가능한 상태로 반환할 수 있지만, 모든 변경 내용은 메모리 내이므로 배포가 다시 시작될 때 손실됩니다. 그 대신, 위에 나열된 단계를 사용하여 디스크를 탑재하고 복구하는 것이 좋습니다.
Linux 배포에 대한 .vhdx 파일 및 디렉터리 경로를 찾으려면 PowerShell을 열고 다음 스크립트를 사용하여 <distribution-name>
을(를) 실제 배포 이름으로 바꿉니다.
(Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq '<distribution-name>' }).GetValue("BasePath") + "\ext4.vhdx"
결과는 %LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\<disk>.vhdx
와(과) 같은 경로를 표시합니다. 예시:
C:\Users\User\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx
나열한 Linux 배포와 연관된 ext4.vhdx
파일에 대한 경로입니다.
Windows Subsystem for Linux 피드백
Windows Subsystem for Linux은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.
학습
모듈
Maintain disks and volumes - Training
This module explores file system fragmentation and the tools that you can use to reduce fragmentation. Students will learn how Windows can compress files to take up less space on the hard disk.