KDE、DolphinにBtrfsスナップショットを統合。KIO Snapshot 1.0
KDE開発者のバラドワジ・ラジュ氏が現地時間8月20日、BtrfsスナップショットをDolphinに統合するKIO Snapshot 1.0をリリースした。ファイルの右クリックから過去バージョンを一覧表示でき、root権限も不要。
KDE開発者のバラドワジ・ラジュ氏が現地時間8月20日、BtrfsスナップショットをDolphinに統合するKIO Snapshot 1.0をリリースした。ファイルの右クリックから過去バージョンを一覧表示でき、root権限も不要。
ファイルの「過去」にDolphinから手が届く
macOSにはTime Machine(タイムマシン)があり、WindowsにはPrevious Versions(以前のバージョン)がある。ファイルの過去の状態を、ファイルブラウザから直接参照できる機能だ。
Linuxにも仕組みはあった。Btrfsのスナップショットはサブボリューム(ファイルシステム内で独立管理できるディレクトリツリー)単位で取得でき、データ領域を共有するため頻繁に取っても容量をほとんど消費しない。日常的な「元に戻す」機能の基盤になりうる。
だがこれまで、この能力をデスクトップの日常操作に持ち込む手段がなかった。Btrfs Assistantのような専用ツールは存在するものの、スナップショットの作成・管理が主眼でファイル操作とは切り離されている。「3日前のあのファイルに戻したい」と思っても、ターミナルか別のツールを開くしかない。
KIO Snapshot 1.0は、この欠落を埋める。KDE開発者のバラドワジ・ラジュ(Bharadwaj Raju)氏が開発し、現地時間8月20日に最初の安定版をリリースした。
Dolphinでファイルを右クリックすると、そのファイルの過去バージョンが仮想フォルダとして一覧される。当初はWindowsのPrevious Versionsに似たダイアログ形式で設計していたが、仮想フォルダ方式に切り替えた。

複数の過去バージョンを選んで比較ツールで開く、別の場所にコピーするといった操作を、通常のファイル操作と変わらない手順でこなせる。
サブボリューム単位の閲覧にも対応する。あるサブボリュームの全スナップショットが時系列で並び、各スナップショットのディレクトリツリーをそのままたどれる。
KIO Snapshotは閲覧専用だ。スナップショットの作成にはSnapper(スナップショット管理ツール)か手動操作が別途必要になる。Snapperを使う場合は設定ファイルのALLOW_USERSに自分のユーザー名を追加し、SYNC_ACL=yesを有効にしておくと、rootなしでスナップショットにアクセスできる。
root権限なしで動く設計
技術的に目を引くのは、KIO Snapshotがroot権限なしで動作する点だ。
BtrfsのAPIは、root以外のユーザーに対してかなり保守的だ。「このパスがどのサブボリュームに属しているか」すら、一般ユーザーには問い合わせられない。
ラジュ氏は当初、この制約を回避するためにシステムレベルのD-Bus(アプリケーション間の通信規格)サービスを作っていた。ユーザーが所有するファイルについての情報取得を中継する仕組みだ。動作はするが、root権限で動くプロセスを常駐させることになる。
転機になったのは、メヴェン・カー(Méven Car)氏の助言だった。BtrfsのAPIには、あるパス以下のサブボリューム一覧を(アクセス権がある範囲で)返す機能がある。
パスからサブボリュームIDを直接取得する方法は閉ざされていても、この一覧から必要な情報はすべて導出できる。root権限で動くプロセスは完全に不要になった。
この設計の上に、KIO Snapshotはsnapshot://プロトコルを処理するKIOワーカー(KDEの入出力プラグイン)として実装されている。KDE Frameworksの共通プロトコルであるため、Dolphinに限らずKDEソフト全般からスナップショットにアクセスできる。内部ではbtrfs-progsのlibbtrfsutilでBtrfsと通信し、KDE FrameworksのSolid(ハードウェア抽象化レイヤー)でファイルシステムやマウントの情報を取得している。
KDE Linuxで標準搭載へ
KDEが開発する独自ディストリビューションKDE Linuxは、SnapperとKIO Snapshotを標準搭載する予定だ。
ハディ・ショクル(Hadi Chokr)氏がこの統合を担当した。ファイルシステムのレイアウトを変更してすべてのユーザーホームをサブボリュームにし、Snapperの設定も全ユーザーに対して自動で行われるようにした。ユーザーがスナップショットの仕組みを意識しなくても、ファイルの過去バージョンが蓄積され、Dolphinからいつでも参照できる環境が最初から整う。
この取り組みはKDE Linuxにおけるデータバックアップ・復元の改善計画の一環であり、Kupバックアップシステムの改良も並行して進んでいる。
KIO SnapshotはKDEプロジェクトとしてリリースされており、各ディストリビューションへのパッケージ提供も比較的早く進む見込みだ。待てない場合はソースからのビルドも容易だという。
関連記事
- Linux 7.2最終RC、AI関連の修正提案が継続 採用状況を整理
- KDE Linux、Javaアプリ・DOSアプリの初回起動を自動化。ベータまで83%
- KDE、Dolphinのファイルコピーをcp並みに高速化。11年前のバグに決着
- Linux 7.2-rc5公開。パッチ量は膨張、中身は平穏
- Linuxカーネルが新ファイルシステムの受け入れ基準を明文化
- KDE Plasma 6.7リリース。21年越しの悲願と、X11最後の夏
- KDE Plasma、X11セッションのコードを正式削除
- KDE Linux、5月の大掃除でZenカーネル廃止
- Btrfsがhuge folios対応、Linux 7.2で投入へ
- Plasma Bigscreen、6.7ベータで好調復帰