GN⁺: 윈도우용 오픈소스 btrfs 드라이버, WinBtrfs
(github.com/maharmstone)WinBtrfs v1.9
- WinBtrfs는 차세대 리눅스 파일 시스템인 Btrfs를 위한 윈도우 드라이버임.
- 리눅스 커널로부터 코드를 사용하지 않고 처음부터 재구현되었으며, 윈도우 XP 이상의 모든 버전에서 작동함.
- 무료 운영 체제인 ReactOS에도 포함되어 있음.
- 리눅스에서 생성된 MD 소프트웨어 RAID 장치에 Btrfs 파일 시스템이 있다면, 윈도우에서 인식하게 하기 위해 WinMD가 필요함.
기능
- Btrfs 파일 시스템의 읽기 및 쓰기 지원.
- 기본 및 고급 RAID 지원, 캐싱, Btrfs 파티션 발견, ACLs 설정 및 가져오기, 대체 데이터 스트림, 리눅스 사용자와 윈도우 사용자 매핑, 심볼릭 링크 및 기타 재구성 지점, 하드 링크, 희소 파일, 자유 공간 캐시, 사전 할당, 비동기 읽기 및 쓰기, 파티션 없는 Btrfs 볼륨, 볼륨별 레지스트리 마운트 옵션, 압축, LXSS 지원, 밸런싱, 장치 추가 및 제거, 새 파일 시스템 생성, 스크럽, TRIM/DISCARD, Reflink 복사, 서브볼륨 전송 및 수신, Degraded 마운트, 자유 공간 트리, 볼륨 축소 및 확장, LXSS 권한 패스스루, Zstd 압축, 윈도우 10 대소문자 구분 디렉토리 플래그, Oplocks, 메타데이터 UUID 불일치 플래그, 새로운 체크섬 유형, 블록 그룹 트리 지원.
할 일
- 전체 fs-verity 지원, Zoned 지원, 조각 모음, Btrfs 할당량 지원, 전체 트랜잭션 로그 지원, 윈도우 트랜잭션 지원.
설치
- 드라이버를 설치하려면 최신 릴리스를 다운로드하고 압축을 풀고, btrfs.inf 파일을 마우스 오른쪽 버튼으로 클릭하여 설치를 선택함.
- 드라이버는 서명되어 있어서 최신 버전의 윈도우에서 바로 작동함.
- 윈도우 10에서 Secure Boot를 사용하는 경우, 드라이버가 로드되도록 레지스트리 변경이 필요할 수 있음.
- Chocolatey와 Scoop 패키지 매니저에서도 WinBtrfs 사용 가능.
제거
- 제거하려면 명령 프롬프트에서 특정 명령을 실행하거나, 장치 관리자에서 "Btrfs 컨트롤러"를 찾아 제거를 선택함.
- 레지스트리를 통한 제거도 가능함.
컴파일
- Visual C++ 2019 또는 GCC on Linux를 사용하여 컴파일 가능함.
매핑
- 사용자 매핑은 레지스트리 키 HKLM\SYSTEM\CurrentControlSet\services\btrfs\Mappings에 저장됨.
- 윈도우 SID와 리눅스 uid를 매핑하여 드라이버가 로드될 때 적용됨.
LXSS 지원
- 드라이버는 LXSS의 최신 버전에 리눅스 메타데이터를 통과시키지만, 윈도우에서 이를 알도록 설정해야 함.
명령
- GUI 인터페이스를 제공하는 DLL 파일과 함께, 명령줄에서 일부 작업을 수행할 수 있는 rundll32.exe를 사용할 수 있음.
문제 해결
- 디버깅, 파일 이름 문제, Secure Boot 작동 문제, 드라이브 문자 변경, 포맷 문제, Synology NAS 및 Thecus NAS 마운트 문제, 드라이버 로드 문제 등 다양한 문제 해결 방법 제공.
변경 로그
- v1.9부터 v0.1까지의 변경 사항과 버그 수정 내역이 상세히 기록됨.
디버그 로그
- WinBtrfs는 세 가지 수준의 디버그 메시지를 제공하며, 릴리스 버전의 드라이버는 오류와 FIXME 메시지만 표시함.
마운트 옵션
- 드라이버는 마운트된 파일 시스템마다 레지스트리에 서브키를 생성하며, UUID를 기반으로 함.
- 각 볼륨에 대한 마운트 옵션을 이 서브키에 추가할 수 있음.
연락처
- 어떠한 피드백도 환영한다고 함: mark@harmstone.com.
저작권
- 이 코드는 Zlib, LZO, Zstd, BLAKE2, SHA256 등의 소프트웨어 부분을 포함함.
GN⁺의 의견
- WinBtrfs는 리눅스의 Btrfs 파일 시스템을 윈도우에서 사용할 수 있게 해주는 중요한 도구임. 이는 윈도우와 리눅스 간의 상호 운용성을 향상시키고, 리눅스 개발자나 사용자가 윈도우 환경에서도 Btrfs의 강력한 기능을 활용할 수 있게 해줌.
- 드라이버가 오픈소스로 제공되기 때문에, 사용자와 개발자는 소스 코드를 자유롭게 수정하고 개선할 수 있으며, 이는 커뮤니티 기반의 지속적인 개선을 가능하게 함.
- 설치 및 사용이 상대적으로 간단하며, 윈도우의 Secure Boot와 같은 보안 기능과의 호환성 문제에 대한 해결책도 제공함으로써 사용자가 보안을 유지하면서도 기능을 사용할 수 있게 함.
- 그러나 이 드라이버는 여전히 개발 중이며, 사용자는 자신의 데이터를 보호하기 위해 백업과 같은 안전 조치를 취해야 함을 명시하고 있음. 이는 소프트웨어가 아직 완전히 안정화되지 않았을 수 있음을 시사함.
- 윈도우에서 리눅스 파일 시스템을 사용하는 것은 드물지만, 이러한 도구는 특정 사용 사례에서 매우 유용할 수 있음. 예를 들어, 데이터 복구 전문가나 듀얼 부팅 시스템 사용자에게 필수적인 기능을 제공할 수 있음.
Hacker News 의견
-
사용자는 btrfs/zfs 드라이버를 사용하고 싶었으나, 깃허브 이슈를 보고 문제들(블루스크린, 시스템 정지, 사용량 급증, 데이터 손상) 때문에 사용하지 않기로 결정함. 안정적인 드라이버에 기꺼이 비용을 지불할 의향이 있음.
-
이 드라이버가 리눅스 코드 없이 완전히 재구현되었다는 점과 XP/2k3 및 ReactOS에서 사용 가능하다는 점이 매우 훌륭함. 사용자는 자신의 오래된 기기에서 이 드라이버를 시도해보고 싶어함.
-
관련 링크 제공: WinBtrfs – 다음 세대 리눅스 파일시스템 Btrfs의 윈도우 드라이버에 대한 논의 (2017년 9월, 100개의 댓글) 및 WinBtrfs v0.7에 대한 논의 (2016년 10월, 1개의 댓글).
-
사용자는 몇 주 전에 btrfs 하드 드라이브에서 이 드라이버를 사용해보려 했으나 작동하지 않았음. WSL을 사용하여 접근하는 것은 몇 번은 성공했지만 결국 실패함. 결국 리눅스 라이브 ISO를 부팅하여 파일을 윈도우 드라이브와 btrfs 드라이브 간에 복사/이동하는 방법을 사용하고 있음.
-
README를 모두 읽어볼 것을 추천함. 저자가 많은 질문에 답변하고 있음.
-
이 드라이버가 "기본 및 고급" RAID 5/6을 지원한다고 하는데, BTRFS 자체는 아직 지원하지 않는다는 의문을 제기함.
-
사용자는 듀얼 부팅을 하며 이전 버전의 드라이버를 사용해왔음. 문제가 있긴 하지만 작동함. 자주 윈도우를 부팅하지 않기 때문에 개인적으로는 괜찮지만 모든 사람에게 적합하지는 않을 수 있음. 새 버전이 더 적은 문제로 작동하기를 바람.
-
드라이버가 장기간 또는 생산 환경에서 어떻게 작동하는지 사용 경험이 있는 사람의 의견을 듣고 싶어함. TRIM 지원 여부와 드라이브 최적화 시 필요한 RETRIM(첫 번째 시도에서 TRIM되지 않은 영역을 해제하는 기능) 지원 여부에 대한 질문. 이 드라이버가 ReFS를 선호하지 않는 사람들에게 NTFS 대체재로서 데이터 패리티를 제공할 수 있는지, ZFS on Windows에 비해 얼마나 성숙한지에 대한 질문도 있음.
-
하드웨어 RAID를 여전히 사용하는 이유가 무엇인지, BTRFS와 ZFS가 있을 때 궁금함.
-
이 드라이버를 사용하면 Windows 10과 11을 btrfs로 포맷된 USB 스틱에서 부팅할 수 있는지에 대한 질문.