NTFSファイルシステムをオープンソースのBtrfsへインプレース変換するNtfs2btrfs技術
(github.com/maharmstone)Ntfs2btrfs
Ntfs2btrfsは、MicrosoftのNTFSファイルシステムをオープンソースのファイルシステムであるBtrfsへ変換するツール。ext2を変換するbtrfs-convertに似ている。変換後、元のイメージはimage/ntfs.imgとして保存され、変換結果を維持したい場合はこれを削除して空き容量を確保できる。安定していると思われるが、問題が発生した場合の責任は負わない。Windows向けBtrfsファイルシステムドライバであるWinBtrfsも興味深い。Eric Biggersに感謝する。彼はWindows 10の「WOF圧縮データ」のリバースエンジニアリングに成功しており、そのコードを使用している。
使い方
- Windows: 管理者コマンドプロンプトで
ntfs2btrfs.exe D:\を実行- ブートドライブ、または使用中のページファイルがあるドライブでは動作しない
- WinBtrfsを使用する場合、
imageサブボリュームの読み取り専用フラグを解除しないと削除できない
- Linux: root権限で
ntfs2btrfs /dev/sda1を実行
インストール
- Windows: Releasesページから最新のZipファイルをダウンロード、またはScoopを使用
- Linux:
- Arch
- Fedora (Conan-Kudoのおかげで利用可能)
- Gentoo - guruリポジトリのsys-fs/ntfs2btrfsとして利用可能
- Debian (alexmyczkoのおかげで利用可能)
- Ubuntu (alexmyczkoのおかげで利用可能)
- openSUSE (David Sterbaのおかげで利用可能)
- その他のディストリビューションやオペレーティングシステムでは、自分でコンパイルが必要
変更ログ
- 20240115
- GCC 14でのコンパイル問題を修正(
-Werror=incompatible-pointer-typesがデフォルトで有効化)
- GCC 14でのコンパイル問題を修正(
- 20230501
btrfs checkで診断されない順序の問題を修正- 誤ったレベル値でメタデータ項目が書き込まれる問題を修正
- 名前が長すぎるADSをスキップ
- 20220812
- チェックサム計算をスキップする
--no-datasumオプションを追加 - LXSS / WSLメタデータを保持
- 小文字のドライブレターが認識されない問題を修正
- ディスク最後の1メガバイトにファイルがあるときの破損問題を修正
- チェックサム計算をスキップする
- 20210923
- (Btrfs) 圧縮サポートを追加(zlib, lzo, zstd)
- 他のハッシュアルゴリズムのサポートを追加: xxhash, sha256, blake2
- NTFSへのロールバックのサポートを追加
- 多数のinodeがあるボリュームで変換速度を向上
- スーパーブロック位置に断片化ファイルがある場合のバグを修正
- セキュリティ記述子読み取り時のバッファオーバーフローを修正
btrfs checkで検出されないファイルシステム破損問題を修正
- 20210523
- 大きな圧縮ファイルの処理を改善
- 20210402 (ソースコード専用リリース)
- 非amd64アーキテクチャでのコンパイル問題を修正
- 20210105
- NTFS圧縮のサポートを追加
- 「WOF圧縮データ」のサポートを追加
- スパースファイルによる問題を修正
- その他のバグ修正
- 20201108
- エラー処理を改善
- NTFSが破損している、またはクリーンでない場合のメッセージを改善
- 再配置処理を改善
- 20200330
- 初回リリース
コンパイル
- Windows: 最新のMSVCバージョンでソースディレクトリを開き、CMakeLists.txtを右クリックしてコンパイル
- Linux:
mkdir buildcd buildcmake ..make- libfmtのインストールが必要 - パッケージマネージャにあるはず
- 圧縮サポートにはzlib、lzo、zstdが必要 - パッケージマネージャにあるはず。無効化するにはcmakeオプションWITH_ZLIB、WITH_LZO、WITH_ZSTDを参照
動作するもの
- ファイル
- ディレクトリ
- シンボリックリンク
- その他の再解析ポイント
- セキュリティ記述子
- 代替データストリーム
- DOS属性(隠し、システムなど)
- 元のNTFSイメージへのロールバック
- LXSSメタデータの保持
動作しないもの
- Windowsの古い拡張属性(未使用)
- 大きなADS(16KB超)(未使用)
- 大文字小文字の区別フラグの保持
- 非標準のクラスタサイズ(4KB以外)
- 暗号化ファイル
WindowsをBtrfsで起動できるか
- 可能だが、特定の条件を満たす必要がある。Quibbleを参照。
1件のコメント
Hacker Newsの意見
「hold-my-beer」度がかなり高い
以前試したときは読み取り専用ディスクになった
とてもクールだが、人々がこのニュースを知るまで少なくとも1週間はかかるだろう
ZFSに適用する方法を考えている
LZX圧縮が適用されたファイルをサポートするなら非常に驚くだろう
compact.exe /C /EXE:LZX (ファイル名)コマンドで有効化しなければならない機能NTFSは安定していて、btrfsより速く、同じ機能を備えている