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
andubtrfs.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ファイルをダウンロードして展開します。
▲中に含まれるbtrfs.infを右クリックして「インストール」を選択します。
▲セキュリティ警告が表示されたら「開く」ボタンをクリックします。
▲「このデバイスソフトウェアをインストールしますか?」では「インストール」をクリックします。
再起動すると使用準備は完了です。空のディスクをBtrfsでフォーマットしてみます。
▲フォーマットダイアログは使えないため、管理者権限でコマンドプロンプトを開き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で利用するためのドライバー。 |