728x90

Ubuntu LTS 버전 체계
✔ 현재 기준
- Ubuntu 24.04 LTS
- 최신 포인트 릴리즈: 24.04.4
✔ 핵심 개념
24.04 = 기준 버전 (변하지 않음)
24.04.x = 누적 패치 상태
👉 실무 기준
항상 최신 point release 상태 유지 (24.04.4 수준)
WSL 설치 방식
✔ 설치 명령
wsl --install -d Ubuntu-24.04
✔ 특징
ISO 설치 ❌
rootfs 기반 설치 ⭕
👉 결과
- 특정 버전 (24.04.4) 지정 설치 ❌
- 설치 후 업데이트 = 최신 상태
기존 설치 상태에서 재설치 여부
현재
Ubuntu-22.04
Ubuntu-24.04
✔ 동작
wsl --install -d Ubuntu-24.04
👉 결과
이미 존재 → 재설치 안됨
✔ 최신화 방법
sudo apt update
sudo apt full-upgrade -y
✔ 완전 재설치
wsl --unregister Ubuntu-24.04
wsl --install -d Ubuntu-24.04
WSL 파일 시스템 구조
✔ 구조
Windows (NTFS)
└ ext4.vhdx (가상 디스크)
└ Linux ext4 파일 시스템
👉 WSL은 VHD 기반으로 Linux FS 저장 (Microsoft Learn)
ext4.vhdx 위치 (구조 변화 포함)
✔ 기존 구조 (Legacy)
AppData\Local\Packages\<배포판>\LocalState\ext4.vhdx
✔ 최신 구조
C:\Users\<user>\AppData\Local\wsl\{GUID}\ext4.vhdx
👉 최신 WSL(Store 기반)에서는 GUID 구조 사용
✔ 내부 구조
{GUID}
├ ext4.vhdx
├ config
└ metadata
ext 경로 확인 방법
전체 검색
Get-ChildItem "$env:LOCALAPPDATA" -Recurse -Filter ext4.vhdx
특정 distro 경로 찾기 (공식 방식)
(Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss |
Where-Object { $_.GetValue("DistributionName") -eq 'Ubuntu-24.04' }).GetValue("BasePath") + "\ext4.vhdx"
👉 Microsoft 공식 방법 (Microsoft Learn)
registry 전체 조회
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Lxss /s
registry 구조
HKCU\Software\Microsoft\Windows\CurrentVersion\Lxss\{GUID}
├ DistributionName = Ubuntu-24.04
├ BasePath = C:\Users\...\AppData\Local\wsl\{GUID}
👉 BasePath가 실제 디스크 위치 (Windows OS Hub)
자동 매핑 스크립트
$lxss = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss"
Get-ChildItem $lxss | ForEach-Object {
$p = Get-ItemProperty $_.PSPath
[PSCustomObject]@{
Name = $p.DistributionName
Path = $p.BasePath
VHDX = "$($p.BasePath)\ext4.vhdx"
}
}
WSL 용량 증가 문제
✔ 원리
파일 삭제 → ext 내부 free 상태
→ VHDX 파일 크기 유지
👉 WSL VHD는 동적 확장되지만 자동 축소 안됨 (위키독스)
✔ 핵심 문제
논리 삭제 ≠ 물리 용량 감소
용량 최적화 (완전 절차)
1단계: Linux 내부 정리
sudo apt autoremove -y
sudo apt clean
sudo journalctl --vacuum-time=7d
docker system prune -a -f
docker volume prune -f
2단계: TRIM
sudo fstrim -av
3단계: 종료
wsl --shutdown
4단계: 압축
✔ diskpart
diskpart
select vdisk file="...\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit
✔ optimize-vhd (권장)
optimize-vhd -Path "<경로>" -Mode full
✔ 결과
100GB → 30~40GB 감소 가능
diskpart 동작 원리
✔ 역할
빈 블록 제거 → VHDX 축소
⚠️ 조건
fstrim 수행 필수
추가 기능 (잘 안 알려진 부분)
✔ Sparse 모드 (실험적)
wsl --manage Ubuntu --set-sparse true
👉 자동 공간 회수 (주의 필요)
WSL 디스크 관리 명령들
✔ 용량 확인
df -h /
✔ Windows에서 확인
Get-ChildItem ext4.vhdx | Select Length
✔ 백업
wsl --export Ubuntu-24.04 backup.tar
✔ 복구
wsl --import Ubuntu-new C:\WSL backup.tar
보안 관점
✔ 1. 데이터 유출
ext4.vhdx = 전체 Linux 데이터
✔ 2. EDR 사각지대
- VHD 내부 분석 어려움
✔ 3. 권한 우회
Windows → root 파일 접근 가능
✔ 4. 랜섬웨어 영향
ext4.vhdx 하나로 전체 암호화
✔ 5. 삭제 데이터 잔존
- forensic 복구 가능
보안 운영 정책
✔ 필수 정책
- WSL 사용 승인 기반
- ext4.vhdx 크기 모니터링
- 정기 compact
- Docker 사용 제한
✔ 점검 스크립트
Get-ChildItem "$env:LOCALAPPDATA" -Recurse -Filter ext4.vhdx |
Select FullName, Length, LastWriteTime
실무 운영 Best Practice
✔ 설치
wsl --install -d Ubuntu-24.04
✔ 초기화
sudo apt update && sudo apt full-upgrade -y
✔ 주기 작업
sudo fstrim -av
optimize-vhd
✔ 모니터링
- ext4.vhdx 크기
- Docker
- 로그
최종 핵심 요약
WSL = ext4.vhdx 기반 가상 디스크 구조
→ 삭제해도 용량 안 줄어듦
→ fstrim + compact 필요
경로 확인 핵심:
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Lxss
버전 관리:
설치가 아니라 업데이트가 핵심
300x250
👉 가능하면 optimize-vhd가 더 좋습니다
👉 하지만 기본 Windows 환경에서는 명령어가 없는 게 정상입니다
왜 optimize-vhd가 더 좋은가
✔ 비교
| 항목 | diskpart | optimize-vhd |
|---|---|---|
| 제공 방식 | 기본 포함 | Hyper-V 모듈 |
| 압축 효율 | 보통 | 더 높음 |
| 처리 방식 | 단순 compact | 고급 최적화 |
| 안정성 | 일반 | 더 안정적 |
✔ 차이 핵심
diskpart → 단순 빈 공간 제거
optimize-vhd → 블록 재정렬 + 고급 압축
👉 실제 체감
- diskpart: 100GB → 60GB
- optimize-vhd: 100GB → 30~40GB
optimize-vhd 명령어가 없는 이유
👉 기본 Windows에는 없음
✔ 조건
Hyper-V 기능이 있어야 사용 가능
optimize-vhd 사용 방법
1단계: Hyper-V 기능 활성화
PowerShell (관리자)
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
또는
dism.exe /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
👉 재부팅 필요
2단계: 모듈 확인
Get-Command optimize-vhd
👉 나오면 OK
3단계: 실행
wsl --shutdown
optimize-vhd -Path "C:\Users\<계정>\AppData\Local\wsl\{GUID}\ext4.vhdx" -Mode full
Hyper-V 못 쓰는 환경이면?
✔ 대안
👉 그대로 diskpart 사용
diskpart
select vdisk file="...\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
성능 차이 현실적으로 얼마나 큰가
✔ 실제 체감 기준
| 상황 | 추천 |
|---|---|
| 일반 개발자 PC | diskpart 충분 |
| Docker 많이 사용 | optimize-vhd 추천 |
| 100GB 이상 | optimize-vhd 필수 |
| 반복 관리 | optimize-vhd |
보안 관점 차이
✔ 둘 다 동일
- 데이터 완전 삭제 ❌
- forensic 복구 가능성 있음
👉 민감 데이터
shred -u file
가장 현실적인 선택
✔ Hyper-V 가능
optimize-vhd 사용 (권장)
✔ Hyper-V 불가
diskpart + fstrim 조합
반드시 같이 해야 하는 것
👉 둘 다 동일
sudo fstrim -av
👉 안 하면
압축 거의 안됨
👉 optimize-vhd가 더 강력하지만 Hyper-V 필요
👉 없으면 diskpart + fstrim이면 충분히 해결 가능
728x90
그리드형(광고전용)
댓글