WinBtrfs - LinuxのBtrfsをWindowsで使用するためのドライバー

[PR]記事内のアフィリエイトリンクから収入を得る場合があります
  • URLをコピーしました!

S 20240407 203858

Windows、Linux、macOSはそれぞれ異なるファイルシステムを採用していますが、サードパーティ製ツールを利用すれば本来扱えないはずのファイルシステムを利用できる場合もあります。

本日紹介する「WinBtrfs」もそのようなソフトウェアの一種です。

Linuxの次世代ファイルシステム「Btrfs(B-tree file system)」をWindowsで読み書きするためのドライバーソフトで、オープンソースソフトウェアとして開発が進められています。

ゼロからの再実装でLinuxカーネルからのコードは含まれておらず、Windows XP以降のバージョンで動作します。オープンソースでWindows互換を目指す「ReactOS」にも含まれています。

Btrfsの読み書きのほか、RAIOD対応など以下のような特徴を持っています。

  • Reading and writing of Btrfs filesystems
  • Basic RAID: RAID0, RAID1, and RAID10
  • Advanced RAID: RAID5 and RAID6
  • Caching
  • Discovery of Btrfs partitions, even if Windows would normally ignore them
  • Getting and setting of Access Control Lists (ACLs), using the xattr security.NTACL
  • Alternate Data Streams (e.g. :Zone.Identifier is stored as the xattr user.Zone.Identifier)
  • Mappings from Linux users to Windows ones (see below)
  • Symlinks and other reparse points
  • Shell extension to identify and create subvolumes, including snapshots
  • Hard links
  • Sparse files
  • Free-space cache
  • Preallocation
  • Asynchronous reading and writing
  • Partition-less Btrfs volumes
  • Per-volume registry mount options (see below)
  • zlib compression
  • LZO compression
  • LXSS ("Ubuntu on Windows") support
  • Balancing (including resuming balances started on Linux)
  • Device addition and removal
  • Creation of new filesystems with mkbtrfs.exe and ubtrfs.dll
  • Scrubbing
  • TRIM/DISCARD
  • Reflink copy
  • Subvol send and receive
  • Degraded mounts
  • Free space tree (compat_ro flag free_space_cache)
  • Shrinking and expanding
  • Passthrough of permissions etc. for LXSS
  • Zstd compression
  • Windows 10 case-sensitive directory flag
  • Oplocks
  • Metadata UUID incompat flag (Linux 5.0)
  • Three- and four-disk RAID1 (Linux 5.5)
  • New checksum types (xxhash, sha256, blake2) (Linux 5.5)
  • Block group tree (Linux 6.1)

以下使用方法を説明します。

目次

WinBtrfsの使用方法

WinBtrfsを使用するにはドライバーをインストールする必要があります。GitHubから最新のzipファイルをダウンロードして展開します。

S 20240407 202122

▲中に含まれるbtrfs.infを右クリックして「インストール」を選択します。

S 20240407 202347

▲セキュリティ警告が表示されたら「開く」ボタンをクリックします。

S 20240407 202402

▲「このデバイスソフトウェアをインストールしますか?」では「インストール」をクリックします。

再起動すると使用準備は完了です。空のディスクをBtrfsでフォーマットしてみます。

S 20240407 210014

▲フォーマットダイアログは使えないため、管理者権限でコマンドプロンプトを開きformat /fs:btrfsを実行します(実際はこの後にドライブ名またはデバイスパスが必要です)。

フォーマット後、ドライブのプロパティを表示し「Btrfs」と表示されれば成功です。

formatのほか、mkbtrfs.exeを利用することもできます。デフォルトパラメーター以外を使用したい場合、mkbtrfs.exeを使用すると良いようです。

> mkbtrfs
Usage: mkbtrfs.exe device [label]

The device parameter can either be a drive letter, e.g. D:, or a device path,
such as \Device\Harddisk0\Partition2.

To format the whole of the first hard disk without using partitions, you would
need to use the parameter \Device\Harddisk0\Partition0.

Supported flags:

/sectorsize:num                     Sets the sector size. This must be a
                                    multiple of the size that the disk itself
                                    reports. The default is 4096, which should
                                    be used unless you have a good reason.

/nodesize:num                       Sets the node size, i.e. the size of the
                                    metadata trees. The default is 16384. This
                                    needs to either be the same as sector size,
                                    or a power of two multiple.

/csum:id                            Sets the checksum algorithm to use. Valid
                                    values are crc32c, xxhash, sha256, and
                                    blake2.

/mixed                              Enables or disables mixed block groups,
/notmixed                           which store data and and metadata in the
                                    same chunks. The default is disabled. This
                                    is only useful for very small filesystems.

/extiref                            Enables or disables extended inode refs,
/notextiref                         which increase the number of hardlinks
                                    allowed. The default is enabled.

/skinnymetadata                     Enables or disable skinny metadata, which
/notskinnymetadata                  allows more efficient storage of metadata
                                    refs. The default is enabled.

/noholes                            Enables or disables whether sparse extents
/notnoholes                         should be stored implicitly, which can save
                                    a little space. The default is enabled.

/freespacetree                      Enables or disables storing the free-space
/notfreespacetree                   cache in a tree rather than a blob.
                                    Supported from Linux 4.5. The default is
                                    enabled.

/blockgrouptree                     Enables or disables the block group tree,
/notblockgrouptree                  which can decrease mount times. Supported
                                    from Linux 6.1. The default is disabled.
                                    Implies /noholes and /freespacetree.

まとめ

BtrfsはLinuxの先進的なファイルシステムとして期待を集めており、WinBtrfsを利用することでWindowsでもBtrfsのメリットが得られることが期待できます。個人プロジェクトであり、使用にはファイルシステムの破損などのリスクが伴いますが、興味のある方は確認してみてはいかがでしょうか。

タイトル WinBtrfs
公式サイト https://github.com/maharmstone/btrfs
ソフトアンテナ https://softantenna.com/softwares/7763-win-btrfs
説明 Linux向けに開発されたBtrfsをWindowsで利用するためのドライバー。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次