WinBtrfs v1.9
- WinBtrfs は、次世代 Linux ファイルシステムである Btrfs 向けの Windows ドライバー。
- Linux カーネルのコードを使わずにゼロから再実装されており、Windows XP 以降のすべてのバージョンで動作する。
- フリーなオペレーティングシステムである ReactOS にも含まれている。
- Linux で作成された MD ソフトウェア RAID デバイス上に Btrfs ファイルシステムがある場合、Windows で認識させるには WinMD が必要。
機能
- Btrfs ファイルシステムの読み書きをサポート。
- 基本および高度な RAID のサポート、キャッシュ、Btrfs パーティションの検出、ACL の設定と取得、代替データストリーム、Linux ユーザーと Windows ユーザーのマッピング、シンボリックリンクおよびその他の再解析ポイント、ハードリンク、スパースファイル、空き領域キャッシュ、事前割り当て、非同期の読み書き、パーティションなしの Btrfs ボリューム、ボリュームごとのレジストリ マウントオプション、圧縮、LXSS サポート、バランシング、デバイスの追加と削除、新しいファイルシステムの作成、スクラブ、TRIM/DISCARD、Reflink コピー、サブボリュームの送受信、Degraded マウント、空き領域ツリー、ボリュームの縮小と拡張、LXSS 権限のパススルー、Zstd 圧縮、Windows 10 の大文字小文字を区別するディレクトリ フラグ、Oplocks、メタデータ UUID 不一致フラグ、新しいチェックサム型、ブロックグループツリーのサポート。
やること
- 完全な fs-verity サポート、Zoned サポート、デフラグ、Btrfs クォータのサポート、完全なトランザクションログのサポート、Windows トランザクションのサポート。
インストール
- ドライバーをインストールするには、最新リリースをダウンロードして展開し、
btrfs.inf ファイルを右クリックしてインストールを選択する。
- ドライバーには署名が付いているため、最新バージョンの Windows でそのまま動作する。
- Windows 10 で Secure Boot を使用している場合、ドライバーを読み込むためにレジストリの変更が必要になることがある。
- Chocolatey と Scoop パッケージマネージャーでも WinBtrfs を利用可能。
削除
- 削除するには、コマンドプロンプトで特定のコマンドを実行するか、デバイスマネージャーで「Btrfs コントローラー」を見つけて削除を選択する。
- レジストリ経由での削除も可能。
コンパイル
- Visual C++ 2019 または GCC on Linux を使ってコンパイル可能。
マッピング
- ユーザーマッピングはレジストリキー
HKLM\SYSTEM\CurrentControlSet\services\btrfs\Mappings に保存される。
- Windows SID と Linux uid をマッピングし、ドライバーのロード時に適用される。
LXSS サポート
- ドライバーは LXSS の最新バージョンに Linux メタデータをパススルーするが、そのことを Windows に認識させる設定が必要。
コマンド
- GUI インターフェースを提供する DLL ファイルに加えて、コマンドラインから一部の操作を実行できる
rundll32.exe を利用できる。
トラブルシューティング
- デバッグ、ファイル名の問題、Secure Boot の動作問題、ドライブ文字の変更、フォーマットの問題、Synology NAS および Thecus NAS のマウント問題、ドライバーのロード問題など、さまざまなトラブルシューティング方法を提供。
変更ログ
- v1.9 から v0.1 までの変更点とバグ修正履歴が詳細に記録されている。
デバッグログ
- WinBtrfs は 3 段階のデバッグメッセージを提供し、リリース版ドライバーはエラーと FIXME メッセージのみを表示する。
マウントオプション
- ドライバーはマウントされた各ファイルシステムごとに、UUID に基づくサブキーをレジストリに作成する。
- 各ボリュームのマウントオプションをこのサブキーに追加できる。
連絡先
- どのようなフィードバックも歓迎とのこと: mark@harmstone.com.
著作権
- このコードには、Zlib、LZO、Zstd、BLAKE2、SHA256 などのソフトウェアの一部が含まれている。
GN⁺ の意見
- WinBtrfs は、Linux の Btrfs ファイルシステムを Windows で使えるようにする重要なツール。これにより Windows と Linux 間の相互運用性が向上し、Linux 開発者やユーザーが Windows 環境でも Btrfs の強力な機能を活用できるようになる。
- ドライバーがオープンソースで提供されているため、ユーザーや開発者はソースコードを自由に修正・改善でき、コミュニティ主導の継続的な改善が可能になる。
- インストールと利用は比較的簡単で、Windows の Secure Boot のようなセキュリティ機能との互換性問題に対する解決策も提供されているため、セキュリティを維持しながら機能を利用できる。
- ただしこのドライバーはまだ開発中であり、データ保護のためにバックアップなどの安全対策を取るべきことが明記されている。これはソフトウェアがまだ完全には安定していない可能性を示している。
- Windows で Linux ファイルシステムを使うことはまれだが、このようなツールは特定のユースケースで非常に有用になりうる。たとえば、データ復旧の専門家やデュアルブート環境のユーザーにとって不可欠な機能を提供しうる。
1件のコメント
Hacker Newsの意見
ユーザーは btrfs/zfs ドライバーを使いたかったが、GitHub の issue を見て、問題点(ブルースクリーン、システム停止、使用量の急増、データ破損)のため使わないことにした。安定したドライバーには喜んで費用を支払うつもりがある。
このドライバーが Linux のコードなしで完全に再実装されている点と、XP/2k3 および ReactOS で利用可能な点は非常に素晴らしい。ユーザーは自分の古い機器でこのドライバーを試してみたいと思っている。
関連リンク: WinBtrfs – 次世代 Linux ファイルシステム Btrfs の Windows ドライバーについての議論(2017年9月、100件のコメント)および WinBtrfs v0.7 についての議論(2016年10月、1件のコメント)。
ユーザーは数週間前に btrfs ハードドライブでこのドライバーを使おうとしたが、動作しなかった。WSL を使ってアクセスすることには何度か成功したものの、最終的には失敗した。結局、Linux ライブ ISO を起動して、Windows ドライブと btrfs ドライブの間でファイルをコピー/移動する方法を使っている。
README を全部読むことを勧める。作者が多くの質問に答えている。
このドライバーは「基本および高度な」RAID 5/6 をサポートするとしているが、BTRFS 自体はまだサポートしていないのではないか、という疑問を呈している。
ユーザーはデュアルブート環境で以前のバージョンのドライバーを使ってきた。問題はあるが動作はする。頻繁に Windows を起動しないため個人的には問題ないが、すべての人に適しているわけではないかもしれない。新しいバージョンがより少ない問題で動作することを願っている。
このドライバーが長期間または本番環境でどのように動作するのか、実際の使用経験がある人の意見を聞きたい。TRIM のサポート有無や、ドライブ最適化時に必要な RETRIM(最初の試行で TRIM されなかった領域を解放する機能)のサポート有無についての質問。このドライバーが ReFS を好まない人たちにとって NTFS の代替としてデータパリティを提供できるのか、ZFS on Windows と比べてどれほど成熟しているのかという質問もある。
なぜ今でもハードウェア RAID を使うのか、BTRFS や ZFS があるのに不思議だという声。
このドライバーを使えば、Windows 10 と 11 を btrfs でフォーマットされた USB メモリから起動できるのか、という質問。