WSL의 가상 드라이브 사용 팁
1. 윈도우즈에서 가상 드라이브를 만들고 WSL 리눅스에서 마운트
1-1. WSL: 가상 드라이브 만들기
1-2. WSL: 가상 드라이브 마운트
1-3. Linux: 가상 드라이브 마운트
1-4. Linux: 리눅스 파일 시스템 포맷
1-5. Linux: 드라이브 장치 마운트
1-6. Linux: 소유자 변경
2. 리눅스에서 가상 드라이브 사용
2-1. WSL: 가상 드라이브 마운트
2-2. Linux: 가상 드라이브 마운트
2-3. WSL: 가상 드라이브 마운트 해제
3. 가상 디스크 빈공간 줄이기
-----------------
1. 윈도우즈에서 가상 드라이브를 만들고 WSL 리눅스에서 마운트
리눅스 운영체제와 각종 응용 프로그램을 한 드라이브에 저장할 경우 백-업하기 불편하다. 설계가 늘어나 사용자 자료가 증가하여 한개의 드라이브가 모자랄 수도 있다. 별도의 드라이브를 만들어 마운트 하는 방법을 설명한다.
1-1. WSL: 가상 드라이브 만들기(Create Virtual Disk)
관리자 권한으로 파워 쉘(Power Shell)을 열고 diskpart 실행,
PS> diskpart
가상 드라이브 생성 후 종료,
DISKPART> create vdisk file="D:\WSL2\ext4_ETRI050_DesignKit.vhdx" maximum=1024000 type=expandable
DISKPART> exit
1-2. WSL: 가상 드라이브 마운트(Mount Virtual Disk)
관리자 권한으로 파워 쉘(Power Shell)을 열고 WSL 의 마운트 실행,
PS> wsl --mount --vhd 'D:\WSL2\ext4_ETRI050_DesignKit.vhdx' --bare
* 가상 드라이브를 리눅스에서 마운트하여 관리하기 용이하도록 bare 옵션으로 마운트 할 경로를 지정하지 않는다.
1-3. Linux: 가상 드라이브 마운트(Linux: List usable block devices)
WSL에서 마운트 한 가상 드라이브가 리눅스에서 인식 되었는지 확인,
$ lsblk
NAME
MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 388.4M 1 disk
sdb 8:16 0 186M 1 disk
sdc 8:32 0 4G 0 disk [SWAP]
sdd** 8:48 0 1000G 0 disk
sde* 8:64 0 1T 0 disk /mnt/wslg/distro
/
* /dev/sde: mnt/wslg/distro 는 WSL의 리눅스 배포판이 설치된 드라이브가 마운트된 디렉토리 다.
* * /dev/sdd 는 별도로 WSL에서 별도로 마운트 한 가상 드라이브로 아직 리눅스에 마운트되지 않았다.
1-4. Linux: 리눅스 파일 시스템 포맷(Linux: Make file system)
WSL에서 처음 생성한 가상 드라이브에 리눅스 파일 시스템으로 포맷(format),
$ sudo mkfs -t ext4 /dev/sdd
[sudo] password for mychip:
mke2fs 1.47.0 (5-Feb-2023)
Discarding device blocks: done
Creating filesystem with 262144000 4k blocks and 65536000 inodes
Filesystem UUID: d77d38b1-8c84-4a26-a3ed-005673e83399
Superblock backups stored on blocks:
32768, 98304, 163840, ......
.........
102400000, 214990848
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
1-5. Linux: 드라이브 장치 마운트(Linux: Mount block device)
리눅스 파일 파일 시스템으로 포맷 한 드라이브를 리눅스 파일 시스템에 마운트 한다.
$ sudo mount /dev/sdd ~/ETRI050_DesignKit
마운트할 위치는 ~/ETRI050_DesignKit 다. 미리 디렉토리를 만들어 뒀어야 한다.
1-6. Linux: 소유자 변경(Linux: Change file owner)
마운트 한 드라이브의 소유자는 root 다. 일반 사용자로 변경하려면,
$ sudo chown -R mychip:mychip ~/ETRI050_DesignKit
2. 리눅스에서 가상 드라이브 사용
관리자 권한으로 파워 쉘(Power Shell)을 열고 WSL 의 마운트 실행;
PS> wsl --mount --vhd 'D:\WSL2\ext4_ETRI050_DesignKit.vhdx' --bare
2-2. Linux: 가상 드라이브 마운트(Linux: List usable block devices)
WSL에서 마운트 한 가상 드라이브가 리눅스에서 인식 되었는지 확인,
$ lsblk
NAME
MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 388.4M 1 disk
sdb 8:16 0 186M 1 disk
sdc 8:32 0 4G 0 disk [SWAP]
sdd** 8:48 0 1000G 0 disk
sde* 8:64 0 1T 0 disk /mnt/wslg/distro
/
$ sudo mount /dev/sdd ~/ETRI050_DesignKit
2-3. WSL: 가상 드라이브 마운트 해제(Un-Mount Virtual Disk)
리눅스를 종료하면 자동으로 마운트가 해제된다. WSL에서도 가상 드라이브 마운트 해제(Un-Mount Virtual Disk) 시키는 것이 안전하다.
PS> wsl.exe --unmount 'D:\WSL2\ext4_ETRI050_DesignKit.vhdx'
PS> wsl --shutdown
3. 가상 디스크 빈공간 줄이기(Defragment Virtual Disk)
가상 드라이브를 생성 할 때 형식을 확장 가능으로 설정 했었다(type=expandable). 드라이브를 사용하면서 쓰기와 지우기를 반복하다 보면 지워진 공간이 늘어날 수 있다. 가상 드라이브의 크기가 일방적으로 늘어나므로 과도한 용량이 되었다고 판단되면 쓰지 않는 공간을 줄일 수 있다.
WSL을 중단 시키고 가상 드라이브 마운트를 해제한다.
PS> wsl --shutdown
PS> wsl.exe --unmount 'D:\WSL2\ext4_ETRI050_DesignKit.vhdx'
파워 쉘을 관리자 권한으로 실행 시킨 후,
PS> diskpart
가상 드라이브 파일 선택,
DISKPART> select vdisk file="D:\WSL2\ext4_mychip.vhdx"
만일의 손상을 예방하기 위해 읽기 전용으로 관리 연결,
DISKPART> attach vdisk readonly
줄이기 명령 실행,
DISKPART> compact vdisk
줄이기거 완료되면 연결 해제,
DISKPART> detach vdisk
DISKPART> exit
댓글 없음:
댓글 쓰기